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 tofalseto 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 atpersistence.mountPath(default/data) and setsDATA_DIRso the operator keeps grant state across pod restarts. EachAtlasSchema/AtlasMigrationresource 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"