<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ci-Cd on Nimbus</title><link>https://k-s-pavan-kumar.github.io/hugo-nimbus/tags/ci-cd/</link><description>Recent content in Ci-Cd on Nimbus</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sat, 01 Jun 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://k-s-pavan-kumar.github.io/hugo-nimbus/tags/ci-cd/index.xml" rel="self" type="application/rss+xml"/><item><title>Adopt GitOps for cluster configuration</title><link>https://k-s-pavan-kumar.github.io/hugo-nimbus/adr/0002-gitops-cluster-config/</link><pubDate>Sat, 01 Jun 2024 00:00:00 +0000</pubDate><guid>https://k-s-pavan-kumar.github.io/hugo-nimbus/adr/0002-gitops-cluster-config/</guid><description>&lt;h2 id="context"&gt;Context&lt;/h2&gt;
&lt;p&gt;Cluster configuration changes currently happen via direct &lt;code&gt;kubectl apply&lt;/code&gt;
from engineer laptops. We have no audit trail and drift between clusters is
common.&lt;/p&gt;
&lt;h2 id="decision"&gt;Decision&lt;/h2&gt;
&lt;p&gt;Adopt a GitOps workflow (Argo CD) where the Git repository is the single
source of truth for cluster state, and all changes go through pull request
review.&lt;/p&gt;
&lt;h2 id="consequences"&gt;Consequences&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Every config change is reviewable and revertible via Git history.&lt;/li&gt;
&lt;li&gt;Emergency changes need a documented break-glass procedure, since direct
&lt;code&gt;kubectl apply&lt;/code&gt; will be restricted in production namespaces.&lt;/li&gt;
&lt;li&gt;Requires migrating ~40 existing manifests into the GitOps repo before
enforcement can begin.&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>