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.

Note  PostgreSQL is the recommended database server with FME Flow, offering enhanced performance and stability through targeted optimizations.

To use an external database outside of the Kubernetes cluster, perform the following:

  1. Provision the database and take note of the host, master username, and master password.
  2. Ensure the cluster has access on port 5432.
  3. 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.
    1. Create a secrets.yaml file similar to the following:
    2. Note  You must manually encode the password in base64.

      apiVersion: v1

      kind: Secret

      metadata:

      name: fmeflowsecret

      type: Opaque

      data:

      password: Zm15473ja3M

    3. Run: kubectl create -f secrets.yaml
    4. Note the secret name and the name of the key that holds the value of the password.
  4. 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.

When FME Flow is deployed, one of the containers will connect to the external database and run all of the SQL setup scripts.