[{"title":"Multi-Tenant Argo CD: Apps in Any Namespace","description":"Every team piling Applications into argocd creates name collisions, bloated RBAC, and noisy events. Apps in Any Namespace lets each team own their Applications while keeping a shared control plane.","url":"/blog/argo-cd-apps-in-any-namespace/","date":"April 10, 2026","isoDate":"2026-04-10","tags":["kubernetes","argo-cd","gitops","multi-tenancy"],"image":"/blog/images/apps-any-namespace-hero.svg","readingTime":"12 min read"},{"title":"Fix Phantom Drift: Argo CD Diffing and Ignore Differences","description":"Your app just synced but it's already OutOfSync. Mutating webhooks, defaulting controllers, and HPA all cause phantom drift. Here's how to fix it with ignoreDifferences, diff strategies, and server-side diff.","url":"/blog/argo-cd-diffing-customization/","date":"April 6, 2026","isoDate":"2026-04-06","tags":["kubernetes","argo-cd","gitops","diffing"],"image":"/blog/images/git-compare.svg","readingTime":"13 min read"},{"title":"Why Your CRDs Show Healthy When They're Broken: Argo CD Custom Health Checks","description":"Argo CD marks unknown CRDs as Healthy by default, hiding failures behind a green dashboard. Learn how to write Lua health checks that surface real status for cert-manager, Crossplane, and your own custom resources.","url":"/blog/argo-cd-custom-health-checks/","date":"April 4, 2026","isoDate":"2026-04-04","tags":["kubernetes","argo-cd","gitops","health-checks"],"image":"/blog/images/lua-logo.svg","readingTime":"15 min read"},{"title":"Beyond Helm and Kustomize: Writing Custom Argo CD Config Management Plugins","description":"Using CUE, Tanka, or another tool Argo CD doesn't support natively? Config Management Plugins let you plug in anything. Learn the sidecar architecture, discovery rules, and how to debug when things go wrong.","url":"/blog/argo-cd-config-management-plugins/","date":"April 3, 2026","isoDate":"2026-04-03","tags":["kubernetes","argo-cd","gitops","config-management"],"image":"/blog/images/tanka.svg","readingTime":"15 min read"},{"title":"Kargo Promotion Steps: Conditionals, Error Handling, and Reusable Tasks","description":"Kargo's built-in steps handle the basics, but real pipelines need conditionals, retries, and shared tasks. Learn how to combine the step library, expression language, and PromotionTasks into production-ready workflows.","url":"/blog/kargo-promotion-steps/","date":"April 2, 2026","isoDate":"2026-04-02","tags":["kubernetes","kargo","gitops","argo-cd","automation"],"image":"/blog/images/kargo-logo.svg","readingTime":"19 min read"},{"title":"How to Lock Down Argo CD for Multiple Teams with AppProjects and RBAC","description":"Sharing one Argo CD instance across teams without proper isolation is asking for trouble. Learn how to scope access with AppProjects, Casbin policies, and OIDC role bindings.","url":"/blog/argo-cd-appprojects-rbac/","date":"March 30, 2026","isoDate":"2026-03-30","tags":["kubernetes","argo-cd","gitops","security","multi-tenancy"],"image":"/blog/images/appproject-rbac-hero.svg","readingTime":"16 min read"},{"title":"Argo CD Multi-Source Apps: Use Helm Charts with Your Own Values Files","description":"Want to use an upstream Helm chart but keep your values in a separate Git repo? Multi-source Applications solve this cleanly, from ref fields and manifest layering to scaling across environments with ApplicationSets.","url":"/blog/argo-cd-multi-source/","date":"March 28, 2026","isoDate":"2026-03-28","tags":["kubernetes","argo-cd","gitops","helm"],"image":"/blog/images/multi-source-hero.svg","readingTime":"9 min read"},{"title":"Run Migrations Before Deploys: Argo CD Sync Waves and Hooks Explained","description":"Need database migrations to run before your app deploys? Sync waves and hooks give you precise ordering control, from PreSync jobs and wave numbering to PostSync smoke tests and SyncFail cleanup.","url":"/blog/argo-cd-sync-waves-and-hooks/","date":"March 27, 2026","isoDate":"2026-03-27","tags":["kubernetes","argo-cd","gitops","automation"],"image":"/blog/images/sync-waves-hero.svg","readingTime":"12 min read"},{"title":"Kargo v1.9: The Biggest Release Since v1.0 and Why It Matters","description":"Kargo v1.9 adds a REST API, JWT tokens for automation, and Warehouse caching that cuts artifact discovery time significantly. Here's what shipped and how to take advantage of it.","url":"/blog/kargo-v1-9/","date":"March 26, 2026","isoDate":"2026-03-26","tags":["kubernetes","kargo","gitops","argo-cd","automation"],"image":"/blog/images/kargo-logo.svg","readingTime":"11 min read"},{"title":"Replace Polling with Push: Kargo Webhook Receivers for Faster Promotions","description":"Kargo polls your registries by default, but webhooks are faster and lighter. Set up push-based triggers from GitHub, GitLab, or Docker Hub to kick off promotions instantly.","url":"/blog/kargo-webhooks/","date":"March 25, 2026","isoDate":"2026-03-25","tags":["kubernetes","kargo","gitops","webhooks","automation"],"image":"/blog/images/webhook.svg","readingTime":"9 min read"},{"title":"Resize Running Pods Without Restarting Them (Kubernetes v1.35 GA)","description":"No more restarts just to change CPU or memory limits. In-Place Pod Resize is now GA in Kubernetes v1.35. Here's how it works, including resize policies, VPA integration, and real-world patterns.","url":"/blog/k8s-in-place-pod-resize/","date":"March 24, 2026","isoDate":"2026-03-24","tags":["kubernetes","scaling","resource-management"],"image":"/blog/images/vpa.svg","readingTime":"9 min read"},{"title":"Don't Promote Blind: Kargo Verification, Soak Times, and Reusable Tasks","description":"Promoting without verification is a production incident waiting to happen. Learn how to add AnalysisTemplates, soak time gates, and reusable PromotionTasks to your Kargo pipelines.","url":"/blog/kargo-verification/","date":"March 23, 2026","isoDate":"2026-03-23","tags":["kubernetes","kargo","gitops","argo-cd","argo-rollouts"],"image":"/blog/images/kargo-logo.svg","readingTime":"11 min read"},{"title":"I Migrated 16 Services from NGINX Ingress to Envoy Gateway: What Broke","description":"A real migration story with real problems. HTTPRoute gotchas, TLS backend surprises, and missing NGINX annotations. Here's everything I hit moving 16 services to Envoy Gateway.","url":"/blog/nginx-to-gateway-api/","date":"March 22, 2026","isoDate":"2026-03-22","tags":["kubernetes","gateway-api","envoy","gitops","networking"],"image":"/blog/images/gateway-api-migration-hero.svg","readingTime":"13 min read"},{"title":"Auto-Deploy New Container Images with Argo CD Image Updater","description":"Push a new image tag and let Argo CD deploy it automatically. Image Updater watches your registries, picks up new versions, and writes the change back to Git for you.","url":"/blog/argo-cd-image-updater/","date":"March 21, 2026","isoDate":"2026-03-21","tags":["kubernetes","argo-cd","gitops","containers","automation"],"image":"/blog/images/argo-cd-logo.svg","readingTime":"18 min read"},{"title":"Stop Watching the Argo CD Dashboard: Set Up Slack and PagerDuty Notifications","description":"Get Slack alerts when apps go OutOfSync and PagerDuty pages when they degrade. Set up triggers, templates, and service integrations in minutes with Argo CD's built-in notification engine.","url":"/blog/argo-cd-notifications/","date":"March 20, 2026","isoDate":"2026-03-20","tags":["kubernetes","argo-cd","gitops","notifications","observability"],"image":"/blog/images/notifications-hero.webp","readingTime":"11 min read"},{"title":"How to Manage Kubernetes Secrets in GitOps Without Committing Them to Git","description":"GitOps says everything belongs in Git, but secrets clearly don't. External Secrets Operator bridges the gap by syncing from Vault, AWS, and GCP into Kubernetes automatically.","url":"/blog/external-secrets-operator/","date":"March 19, 2026","isoDate":"2026-03-19","tags":["kubernetes","gitops","secrets","argo-cd","external-secrets-operator"],"image":"/blog/images/eso-logo.svg","readingTime":"12 min read"},{"title":"Canary and Blue-Green Deploys on Kubernetes with Argo Rollouts","description":"Kubernetes Deployments are all-or-nothing. Argo Rollouts adds canary percentages, blue-green cutover, and automated analysis so you can catch bad releases before your users do.","url":"/blog/argo-rollouts/","date":"March 18, 2026","isoDate":"2026-03-18","tags":["kubernetes","argo-cd","argo-rollouts","gitops","progressive-delivery"],"image":"/blog/images/argo-rollouts-hero.svg","readingTime":"12 min read"},{"title":"Argo CD 3.3: The Features Worth Upgrading For","description":"PreDelete hooks, shallow Git cloning, and Source Hydrator upgrades make Argo CD 3.3 a meaningful release. Here's what changed, why it matters, and what to watch out for when upgrading.","url":"/blog/argo-cd-3-3/","date":"March 17, 2026","isoDate":"2026-03-17","tags":["kubernetes","argo-cd","gitops"],"image":"/blog/images/argo-cd-3-3-hero.svg","readingTime":"8 min read"},{"title":"One Manifest, Hundreds of Apps: How Argo CD ApplicationSets Work","description":"Stop copy-pasting Application YAMLs. ApplicationSets let you generate and manage hundreds of Argo CD apps from a single template using generators, progressive sync, and more.","url":"/blog/argo-cd-applicationsets/","date":"March 17, 2026","isoDate":"2026-03-17","tags":["kubernetes","argo-cd","gitops","applicationsets"],"image":"/blog/images/applicationsets-hero.svg","readingTime":"9 min read"},{"title":"Kargo Explained: How Warehouses, Freight, and Stages Replace Manual Promotions","description":"Tired of manually promoting between environments? Kargo automates the dev-to-prod pipeline natively in Kubernetes. Here's how Warehouses, Freight, and Stages work together.","url":"/blog/kargo/","date":"March 17, 2026","isoDate":"2026-03-17","tags":["kubernetes","kargo","gitops","argo-cd"],"image":"/blog/images/kargo-logo.svg","readingTime":"8 min read"},{"title":"How to Set Up Argo CD in 2026: Install, Deploy, and Go GitOps","description":"Skip the docs rabbit hole. This guide walks you through installing Argo CD, deploying your first app, and avoiding the gotchas that trip up most teams new to GitOps.","url":"/blog/argo-cd/","date":"March 16, 2026","isoDate":"2026-03-16","tags":["kubernetes","argo-cd","gitops"],"image":"/blog/images/argo-cd-logo.svg","readingTime":"5 min read"}]
