You know the feeling: your cluster is ready to go, the pipeline looks clean, and then someone asks for a new secret. Suddenly you are in GitOps purgatory, editing sealed YAML and praying you did not paste the wrong token. That is where combining 1Password and FluxCD earns its keep.
FluxCD brings declarative GitOps and automated deployment to Kubernetes. It watches your repository and syncs changes to your cluster. 1Password, on the other hand, manages credentials and secrets with proper encryption, versioning, and audit trails. When they work together, secrets flow safely and automatically from your vault into your deployments without exposing them in plaintext or passing them around Slack.
The integration idea is simple: FluxCD pulls configuration, 1Password supplies ephemeral secrets. Instead of storing them in Git, FluxCD references identities and environment variables fetched securely from the 1Password CLI or Connect API. The mapping fits neatly with Kubernetes service accounts and OIDC identities, so every secret has a traceable owner. You get least privilege without another homegrown tool.
To wire them up, treat 1Password as your source of truth for sensitive values. Store things like tokens, database passwords, or cloud keys in shared vaults. Then point your FluxCD manifests at these vault entries instead of the raw data. During reconciliation, FluxCD can retrieve those secrets and render them directly into the cluster, keeping the Git repo clean. The logic is that Git tracks intent, not the contents of your S3 keys.
A few best practices make this smoother. Rotate secrets often and label them with expiry. Map RBAC so only Flux bots can request them from 1Password. Keep Connect Service behind your network perimeter and validate output with kubectl diff before syncing. That extra discipline pays off the next time auditors come knocking.