FME Flow: 2025.0
Deploying with an External Database
The FME Flow Database is a critical part of any FME Flow deployment. In a default Kubernetes deployment, it is a single point of failure. If it fails, FME Flow stops functioning. For a highly available deployment of FME Flow, we recommend that you use a highly available PostgreSQL database. For example, if you are deploying on AWS, you may want to use Amazon Relational Database Service (RDS), which is a highly available and scalable managed database.
To use an external database outside of the Kubernetes cluster, perform the following:
- Provision the database and take note of the host, master username, and master password.
- Ensure the cluster has access on port 5432.
- Create a secret in your cluster in the namespace where you will deploy that contains the admin password for the database. The password must be base64-encoded.
- Create a secrets.yaml file similar to the following:
- Run: kubectl create -f secrets.yaml
- Note the secret name and the name of the key that holds the value of the password.
- Run the Helm chart, setting the following values:
- deployment.deployPostgresql (required): Set to false to use an external database.
- fmeflow.database.host (required): The host name of the external database
- fmeflow.database.adminUser (optional): The default is postgres. If the master user of the external database is not called this, you must set it.
- fmeflow.database.adminPasswordSecret (required): The name of the secret you created.
- fmeflow.database.adminPasswordSecretKey (required): The name of the key in the secret that holds the value of the base64-encoded password.
- fmeflow.database.port (optional): The default port is 5432. If the external database runs on another port, you must set this.
apiVersion: v1
kind: Secret
metadata:
name: fmeflowsecret
type: Opaque
data:
password: Zm15473ja3M
When FME Flow is deployed, one of the containers will connect to the external database and run all of the SQL setup scripts.