Skip to main content

Operator Installation

Installation of the Atlas Operator is typically done using Helm.

To install the Operator run:

helm install atlas-operator oci://ghcr.io/ariga/charts/atlas-operator

Configuration

The Operator's behavior can be modified by providing a custom values.yaml file and referring to it when running the install or upgrade commands. For example:

helm install atlas-operator oci://ghcr.io/ariga/charts/atlas-operator -f values.yaml

Supported values

To configure the operator, you can set the following values in the values.yaml file:

  • prewarmDevDB: The Operator tries to mantain a Dev Database Pod around to speed up the migration process. Set this to false to disable this feature.

  • extraEnvs: Used to set environment variables for the operator.

  extraEnvs: []
# extraEnvs:
# - name: MSSQL_ACCEPT_EULA
# value: "Y"
# - name: MSSQL_PID
# value: "Developer"
# - name: ATLAS_TOKEN
# valueFrom:
# secretKeyRef:
# key: ATLAS_TOKEN
# name: atlas-token-secret
# - name: BAZ
# valueFrom:
# configMapKeyRef:
# key: BAZ
# name: configmap-resource
  • extraVolumes: Used to mount additional volumes to the operator
  extraVolumes: []
# extraVolumes:
# - name: my-volume
# secret:
# secretName: my-secret
# - name: my-volume
# configMap:
# name: my-configmap
  • extraVolumeMounts: Used to mount additional volumes to the Operator Pod.
  extraVolumeMounts: []
# extraVolumeMounts:
# - name: my-volume
# mountPath: /path/to/mount
# - name: my-volume
# mountPath: /path/to/mount
  • persistence: Optional PersistentVolumeClaim for Atlas CLI data, including the cached Atlas Cloud grant (.atlas). When enabled, the chart mounts the volume at persistence.mountPath (default /data) and sets DATA_DIR so the operator keeps grant state across pod restarts. Each AtlasSchema / AtlasMigration resource uses a dedicated subdirectory under that path. See Offline Access for background.
persistence:
enabled: true
size: 1Gi
accessModes:
- ReadWriteOnce
mountPath: /data
# storageClassName: standard
# annotations: {}

Using Atlas Pro features

By default, the Atlas Operator does not have access to Atlas Pro features.

If you want use use any feature that requires logging in (triggers, functions, procedures, sequence support or SQL Server, ClickHouse, and Redshift drivers), you need to provide the operator with an Atlas token.

You can do this by creating a secret with the token:

kubectl create secret generic atlas-token-secret \
--from-literal=ATLAS_TOKEN='aci_xxxxxxx'

Then set the ATLAS_TOKEN environment variable in the Operator's deployment manifest:

extraEnvs:
- name: ATLAS_TOKEN
valueFrom:
secretKeyRef:
key: ATLAS_TOKEN
name: atlas-token-secret

Persisting the Atlas grant cache

With ATLAS_TOKEN set, the operator runs atlas login --token --grant-only and stores Atlas CLI state (including the cached grant under .atlas) on disk. Without a persistent volume, that data is lost when the operator pod is replaced.

Enable Helm persistence (see Supported values above): the chart creates a PVC, mounts it at persistence.mountPath (default /data), and sets DATA_DIR. The controller then sets HOME to a per-resource path under that mount (namespace/name) so each AtlasSchema and AtlasMigration keeps its own Atlas data on the volume.

For the broader offline-access model, see Offline Access.

Using Microsoft SQL Server

Atlas routinely spins up a Dev Database for various calculations and validations.

The container image provided by Microsoft for SQL Server requires that you accept Microsoft EULA before using it. To accept the license, set the MSSQL_ACCEPT_EULA and MSSQL_PID environment variables to the appropriate values.

extraEnvs:
- name: MSSQL_ACCEPT_EULA
value: "Y"
- name: MSSQL_PID
value: "Developer"