Immuta in Production
This guide highlights best practices when deploying Immuta in a production environment.
Kubernetes namespace
The following section(s) presume the Immuta Enterprise Helm chart was deployed into namespace immuta
and that the current namespace is immuta
.
Helm values
Back up or source control your immuta-values.yaml
Helm values file.
Kubernetes resource requests and limits
Assign memory resource limits to pods.
Edit Helm values
Edit immuta-values.yaml
to include the following Helm values. Update all placeholder values with your own values.
audit:
deployment:
resources:
limits:
memory: <number>Mi
secure:
web:
resources:
limits:
memory: <number>Mi
discover:
deployment:
resources:
limits:
memory: <number>Mi
cache:
deployment:
resources:
limits:
memory: <number>Mi
Kubernetes secrets
Use Kubernetes secrets in the immuta-values.yaml
file instead of passwords and tokens. The following section demonstrates how to create a secret and reference it in the Helm values file.
Create secret
-
Create a file named
secret-data.env
with the following content.secret-data.env# audit ELASTICSEARCH_USERNAME=<elasticsearch-username> ELASTICSEARCH_PASSWORD=<elasticsearch-password> # PostgreSQL connection string used by audit for the metadata database # postgresql://<user>:<password>@<postgres-fqdn>:5432/<database>?schema=audit # # More info # https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING DATABASE_CONNECTION_STRING=postgresql://immuta:<postgres-password>@<postgres-fqdn>:5432/immuta?schema=audit # secure IMMUTA_DATABASES_IMMUTA_CONNECTIONS_IMMUTADB_PASSWORD=<postgres-password>
-
Create secret named
immuta-secret
from filesecret-data.env
.kubectl create secret generic immuta-secret --from-env-file=secret-data.env
-
Delete file
secret-data.env
, as it's no longer needed.rm -i secret-data.env
Edit Helm values
-
Edit
immuta-values.yaml
to include the following Helm values.immuta-values.yamlaudit: deployment: existingSecret: immuta-secret export: cronJob: existingSecret: immuta-secret secure: existingSecret: name: immuta-secret # Optional. Map expected keys with keys in existing secret # keyMapping: {}
-
Remove any sensitive key-value pairs from the
immuta-values.yaml
Helm values that were made redundant after the secret was created.
Apply Helm values
Perform a Helm upgrade to apply the changes made to immuta-values.yaml
.
helm upgrade <release-name> oci://ocir.immuta.com/stable/immuta-enterprise --values immuta-values.yaml --version 2024.2.3