External Secrets Operator
Operator that syncs secrets from 1Password (via Connect) into Kubernetes Secrets. Runs in the external-secrets namespace on ringtail’s k3s cluster.
Quick Reference
| Property | Value |
|---|---|
| Namespace | external-secrets |
| Image | registry.ops.eblu.me/blumeops/external-secrets (tag pinned in argocd/manifests/external-secrets-ringtail/kustomization.yaml) |
| Operator app | external-secrets-ringtail (auto-sync) |
| CRDs app | external-secrets-crds-ringtail (manual sync, CRDs first) |
Deployment context
- Image: built in blumeops —
containers/external-secrets/default.nixcompiles the forge mirror (mirrors/external-secrets) with theall_providersbuild tag. A merge to main touchingcontainers/**builds and pushes the image; horkos opens the kustomization pin PR for the new tag. - Manifests: static kustomize rendered from the upstream Helm chart, in
argocd/manifests/external-secrets/(base, kept in lockstep with the indri line) with theexternal-secrets-ringtailoverlay. - CRDs: from
config/crds/basesat the mirror’shelm-chart-X.Y.Ztag, via the deliberately manualexternal-secrets-crds-ringtailapp. It must sync before the operator app so the CRD schema leads the operator binary; the two are deployed as a matched pair. The CRDs half of an upgrade is a two-warrant sequence:argocd-sync-apps.yamlso the live Application picks up the new tag, thenargocd-deploy.yamlwith-i app=external-secrets-crds-ringtail -i revision=declared. - Consumers: services define
ExternalSecretobjects against the 1Password ConnectClusterSecretStore.
Related
- 1password - Credential management (Connect server under
argocd/manifests/1password-connect/) - External Secrets - usage notes in
docs/reference/kubernetes/