Posts

Showing posts from June, 2026

Environment Promotion Strategies for GitOps Pipelines: Branches, Paths, Tags, and Digests

Image
Environment Promotion Strategies for GitOps Pipelines: Branches, Paths, Tags, and Digests GitOps promotion is a data-model problem before it is a tooling problem. This guide compares branches, directories, tags, image digests, Flux automation, and Argo CD Image Updater trade-offs. TL;DR A reliable GitOps promotion strategy makes the promoted artifact, environment-specific configuration, approval record, and rollback target explicit. Directory-per-environment models are simple and auditable, branch-per-environment models isolate change history but create merge drift, tag or SHA promotion improves reproducibility, and image-digest promotion closes supply-chain gaps. Flux Image Automation and Argo CD Image Updater can reduce toil, but production promotion still needs protected branches, signed commits or tags, policy gates, drift detection, and a clear handoff to progressive delivery across clusters safely. Promotion is the movement of a reviewed artifact through explicit environment s...

Multi-Tenant GitOps with Argo CD: Isolation Patterns That Survive Production

Image
Multi-Tenant GitOps with Argo CD: Isolation Patterns That Survive Production Multi-tenant Argo CD is not just RBAC. This deep dive shows how to combine AppProjects, namespaces, OIDC groups, sync controls, and policy gates into a safer GitOps platform. TL;DR Multi-tenant Argo CD works only when tenancy is enforced at several layers at once: Git repository boundaries, AppProject source and destination rules, Kubernetes namespaces, OIDC-backed RBAC, admission policy, and deletion controls. The practical model is to give each tenant a narrow AppProject, generate applications from approved repository paths, constrain sync and prune behavior, and let Kubernetes enforce runtime quotas and policy. This keeps GitOps self-service useful in production without turning the Argo CD control plane into a shared cluster-admin escape hatch. A production Argo CD tenant boundary is layered: Git path, AppProject, identity group, namespace, policy, and runtime quota all carry part of the isolation model....