Installation
Add the Formal Helm repository:- Install the CRDs (FormalResource, FormalListener, FormalNativeUser, FormalPolicy)
- Create a ServiceAccount with the necessary RBAC permissions
- Deploy the operator
formalAPIKey or oidc.
Configuration
Default resource requests and limits:
Image pull credentials
Azure AKS
On AKS, installazure-gar-cred before the operator.
First complete the AKS identity setup.
ECR outside AWS
Installecr-cred before the operator when the cluster lacks native ECR access.
Set pullWithCredentials=true on the operator chart.
Do not install ecr-cred and azure-gar-cred in the same namespace.
Configuration file
The chart mounts a ConfigMap at/etc/formal/config.yaml and sets FORMAL_CONFIG. The file holds non-secret settings:
FORMAL_API_KEY stays in a Secret. Helm adds a checksum/config annotation so ConfigMap changes roll the pod.
Verify: The pod has FORMAL_CONFIG=/etc/formal/config.yaml and the mounted file matches your values.
Authentication
Use an API key or OIDC. Do not set both.AWS OIDC
FORMAL_API_KEY.
Azure OIDC
Use theazure token source on AKS with Workload Identity or on Azure compute with managed identity. Set the integration ID to the ID of your Formal OIDC integration.
oidc.azure labels the pod with azure.workload.identity/use=true.
This token source does not support Azure DevOps Pipelines.
Verify: The operator pod starts and reconciles without FORMAL_API_KEY.