Configuring Shared Storage for Flex Gateway in Local Mode
Anypoint Flex Gateway enables you to configure shared storage for distributed caching and rate limiting policies.
Production workflows should use Redis, though defining it is optional. If Redis is not defined, shared storage services at port 4000 are still available but will use an in-memory implementation.
You configure shared storage via a custom YAML file.
The following steps demonstrate Redis-based storage support for Flex Gateway running in a Docker container, as a Linux Service, or as a Kubernetes Ingress controller.
Before You Begin
Before configuring shared storage for Flex Gateway, complete the following tasks:
Configure Shared Storage for Flex Gateway as a Linux Service
-
Create a folder in the
/etc/mulesoft/flex-gateway/conf.d
directory and name itcustom
:sudo mkdir /etc/mulesoft/flex-gateway/conf.d/custom
ssh -
Create a YAML configuration file in the
custom
folder:sudo touch /etc/mulesoft/flex-gateway/conf.d/custom/shared-storage-config.yaml
ssh -
Update the file with your Redis storage configuration details. For example:
sudo vi /etc/mulesoft/flex-gateway/conf.d/custom/shared-storage-config.yaml
sshSample 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
yaml
Configure Shared Storage for Flex Gateway in a Docker Container
If you have already added a volume for a folder with your Flex Gateway configuration files, go to the last step. |
-
Stop your Flex Gateway and any replicas, using Ctrl+C.
-
Create a folder in the directory with your Flex Gateway configuration files and name it
app
. -
Restart your Flex Gateway with an additional volume for the new
app
directory:docker run --rm \ -v <absolute-path-to-directory-with-gateway-files>/:/usr/local/share/mulesoft/flex-gateway/conf.d \ -p 8080:8080 \ mulesoft/flex-gateway
sshSpecify an optional name you want to assign to your Flex Replica by including the following: -e FLEX_NAME=<name-for-flex-replica> \
.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
yaml
Configure Shared Storage for Flex Gateway as a Kubernetes Ingress Controller
To configure shared storage for Flex Gateway, create a new resource using a YAML configuration file with your storage details.
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
yaml