Documentation Index
Fetch the complete documentation index at: https://docs.emergence.ai/llms.txt
Use this file to discover all available pages before exploring further.
Secrets Infrastructure
This guide covers deploying and configuring the secrets management backend for CRAFT. Two options are supported, choose based on your deployment environment.For a comparison of the two backends and guidance on which to choose, see Secrets Management.
Option A: ESO + GCP Secret Manager
For GKE and GCP-based deployments. Infrastructure is provisioned by Terraform; Kubernetes resources are managed by ArgoCD.Prerequisites
- GKE cluster with Workload Identity enabled
- Terraform-provisioned GCP infrastructure
- ArgoCD deployed and managing the cluster
1. Terraform Provisions GCP Secrets
Thegke Terraform module automatically creates the required secrets in GCP Secret Manager when you run terraform apply. No manual secret creation is needed for infrastructure secrets, the module provisions them with placeholder values that you update after provisioning.
After running Terraform:
- Navigate to GCP Secret Manager in your project
- Update each provisioned secret with its actual value
- ESO will sync the updated values into Kubernetes on the next sync cycle
2. Install External Secrets Operator
ESO can be installed as an ArgoCD-managed application or deployed manually:3. ClusterSecretStore
ESO requires aClusterSecretStore that configures how to authenticate to GCP Secret Manager. This is provisioned by Terraform/ArgoCD:
4. ExternalSecret Resources
Each service hasExternalSecret resources that map GCP SM secrets to K8s Secrets. These are managed by ArgoCD in the kubernetes/em-runtime/ directory:
5. Install Stakater Reloader
Reloader watches K8s Secrets for changes and triggers rolling restarts of annotated pods:6. Verify Sync
Manual Sync (Immediate Rotation)
To force an immediate sync without waiting for the refresh interval:Option B: Infisical
For on-premises and cloud-agnostic deployments. Infisical runs as a Helm subchart within em-runtime.Prerequisites
- Kubernetes cluster (any CNCF-conformant distribution)
- Helm chart deployed with Infisical subchart enabled
1. Enable Infisical in Helm Values
Infisical is enabled by default. Verify in your values file:2. Bootstrap Infisical
On first deployment, Infisical initializes with the admin email configured in Helm:3. Create Machine Identity
Create a Kubernetes machine identity in Infisical for each service that needs secret access:- In the Infisical UI, navigate to Project → Access Control → Machine Identities
- Create a machine identity with the Kubernetes authentication method
- Configure the service account name and namespace
4. Inject Credentials
Infisical credentials are passed to services via environment variables in Helm values:5. Verify
Backup and Recovery
ESO + GCP Secret Manager
GCP Secret Manager has built-in version history. To recover a previous secret value:Infisical
Back up the Infisical PostgreSQL database (infisical database) using standard PostgreSQL backup tools:
Next Steps
Secrets Management Overview
Concepts, architecture, and backend comparison.
Backup and Restore
Full backup procedures including secrets backends.

