Configuring Redis Shared Storage for Omni Gateway in Local Mode
|
Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain terms to avoid any effect on customer implementations. |
Enable Redis shared storage for distributed caching, gateway configuration caching (Connected Mode), and rate limiting policies.
Configure Redis shared storage if persistent storage is required when all replicas go down (scaled to zero replicas). If persistent shared storage isn’t required, configure distributed shared storage.
You configure shared storage via a storage YAML file.
The following steps demonstrate Redis-based storage support for Omni Gateway running in a Docker container, as a Linux service, or as a Kubernetes cluster.
To configure Redis Sentinel or a TLS connection to your Redis shared storage, see:
Configure Shared Storage for Omni Gateway as a Linux service
-
Create a folder in the
/usr/local/share/mulesoft/flex-gateway/conf.ddirectory and name itstorage:sudo mkdir /usr/local/share/mulesoft/flex-gateway/conf.d/storage -
Create a YAML configuration file in the
storagefolder:sudo touch /usr/local/share/mulesoft/flex-gateway/conf.d/storage/shared-storage-config.yaml -
Update the file with your Redis storage configuration details. For example:
sudo vi /usr/local/share/mulesoft/flex-gateway/conf.d/storage/shared-storage-config.yaml -
Apply this configuration to all Omni Gateway replicas for them to share data. Sample configuration for adding Redis-based shared storage:
apiVersion: gateway.mulesoft.com/v1alpha1 kind: Configuration metadata: name: shared-storage-redis spec: sharedStorage: redis: address: redis.e-commerce.svc:6379 username: ecomm-user password: ecomm-pwd-123 DB: 7
Configure Shared Storage for Omni Gateway in a Docker Container
| If you have already added a volume for a folder with your Omni Gateway configuration files, skip to the last step. |
-
Stop your Omni Gateway and any replicas.
-
Create a folder named
appin the directory with your Omni Gateway configuration files. -
Restart your Omni Gateway with an additional volume for the new
appdirectory:docker run --rm \ -v "$(pwd)":/usr/local/share/mulesoft/flex-gateway/conf.d \ -p 8080:8080 \ mulesoft/flex-gatewaySpecify an optional name you want to assign to your Omni Replica by including the following: -e FLEX_NAME=<name-for-flex-replica> \. -
Create and save a YAML configuration file in your
appfolder with your shared storage details. -
Apply this configuration to all Omni Gateway replicas for them to share data.
Sample configuration for adding Redis-based shared storage:
apiVersion: gateway.mulesoft.com/v1alpha1 kind: Configuration metadata: name: shared-storage-redis spec: sharedStorage: redis: address: redis.e-commerce.svc:6379 username: ecomm-user password: ecomm-pwd-123 DB: 7
Configure Shared Storage for Omni Gateway in a Kubernetes Cluster
-
Create a new resource using a YAML configuration file with your storage details.
-
Apply this configuration to all Omni Gateway replicas for them to share data.
Sample configuration for adding Redis-based shared storage:
apiVersion: gateway.mulesoft.com/v1alpha1
kind: Configuration
metadata:
name: shared-storage-redis
spec:
sharedStorage:
redis:
address: redis.e-commerce.svc:6379
username: ecomm-user
password: ecomm-pwd-123
DB: 7
Configure Redis Sentinel
Redis Sentinel provides high availability for Redis shared storage. For more information about Redis Sentinel, refer to Redi Sentinel.
Configure Redis Sentinel using the steps described in the previous sections.
Sample configuration for adding Redis Sentinel:
apiVersion: gateway.mulesoft.com/v1alpha1
kind: Configuration
metadata:
name: shared-storage
namespace: test-ns
spec:
sharedStorage:
redis:
username: "user"
password: "pass"
sentinel:
addresses:
- internal.redis.com:6379
masterName: "name"
password: "pass"
db: 0
Configure TLS for Redis-Based Shared Storage
Use TLS with Redis to ensure data security between Omni Gateway and the Redis instance. Configuring TLS enables you to protect sensitive data, prevent unauthorized access, and maintain the reliability of your services. Additionally, configuring TLS helps organizations meet compliance requirements and build trust with users.
TLS works with both Redis and Redis Sentinel.
Configure TLS for Redis-based shared storage using the steps described in the previous sections.
Sample configuration for adding Redis-based shared storage with TLS:
apiVersion: gateway.mulesoft.com/v1alpha1
kind: Configuration
metadata:
name: shared-storage-redis
spec:
sharedStorage:
redis:
address: internal.redis.com:6379
tls:
skipValidation: false
minVersion: "1.1"
maxVersion: "1.3"
alpn:
- h2
- http/1.1
ciphers:
- TLS_AES_128_GCM_SHA256
- TLS_AES_256_GCM_SHA384
- TLS_CHACHA20_POLY1305_SHA256
- TLS_RSA_WITH_3DES_EDE_CBC_SHA
- TLS_RSA_WITH_AES_128_CBC_SHA
- TLS_RSA_WITH_AES_256_CBC_SHA
- TLS_RSA_WITH_AES_128_CBC_SHA256
- TLS_RSA_WITH_AES_128_GCM_SHA256
- TLS_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
- TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
trustedCA: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
certificate:
keyPassphrase: "****"
key: |
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
crt: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
For information about configuration parameters, see the Declarative Configuration Reference (Shared Storage).






