main
  1<!DOCTYPE html>
  2<html lang="en">
  3<head>
  4<!-- Sep 03, 2024 -->
  5<meta charset="utf-8" />
  6<meta name="viewport" content="width=device-width, initial-scale=1" />
  7<title>GitOps</title>
  8<meta name="author" content="Vincent Demeester" />
  9<meta name="keywords" content="article" />
 10<meta name="generator" content="Org Mode" />
 11<link rel='icon' type='image/x-icon' href='/images/favicon.ico'/>
 12<meta name='viewport' content='width=device-width, initial-scale=1'>
 13<link rel='stylesheet' href='/css/new.css' type='text/css'/>
 14<link rel='stylesheet' href='/css/syntax.css' type='text/css'/>
 15<link href='/index.xml' rel='alternate' type='application/rss+xml' title='Vincent Demeester' />
 16</head>
 17<body>
 18<main id="content" class="content">
 19<header>
 20<h1 class="title">GitOps</h1>
 21</header><section id="outline-container-What%20is%20GitOps%3F" class="outline-2">
 22<h2 id="What%20is%20GitOps%3F">What is GitOps?</h2>
 23<div class="outline-text-2" id="text-What%20is%20GitOps%3F">
 24<p>
 25GitOps is an app dev and operations methodology that leverages
 26</p>
 27
 28<ul class="org-ul">
 29<li>an entire system that is described declaratively</li>
 30<li>code that is version controlled and</li>
 31<li>software agents that reconcile and ensure correctness (along with alerts, etc).</li>
 32</ul>
 33
 34<p>
 35GitOps is a paradigm, not a specific tool or technology. GitOps applies to everything and brings business value.
 36</p>
 37
 38<p>
 39Maya Kaczorowski adds that when you have everything “as code” with GitOps, you can make
 40your code as automated and error-free as possible. With GitOps, you push a change to code
 41that’s reviewed, and then you use automation to do the hard stuff of deploying,
 42monitoring, etc. You also have a pipeline where devs only need to focus on developing
 43their apps, and any operations or security control can be automatically verified or
 44enforced as part of that pipeline. Teams have a clear separation of responsibilities.
 45</p>
 46</div>
 47<div id="outline-container-The%204%20Principles%20of%20GitOps" class="outline-3">
 48<h3 id="The%204%20Principles%20of%20GitOps">The 4 Principles of GitOps</h3>
 49<div class="outline-text-3" id="text-The%204%20Principles%20of%20GitOps">
 50<ol class="org-ol">
 51<li>The entire system is described <b>declaratively</b></li>
 52<li>The canonical desired system is <b>versioned</b> in git</li>
 53<li>Approved changes can be <b>automatically applied</b> to the system</li>
 54<li><b>Software agents</b> ensure correctness and alert (diffs &amp; actions)</li>
 55</ol>
 56
 57<p>
 58Most importantly, these are principles, <b>not technologies</b>. You can apply the principles
 59across many of your existing technologies without replacing them.
 60</p>
 61
 62<p>
 63Also, <b>GitOps</b> is not constrained to Git. You can use whatever support version control.
 64</p>
 65</div>
 66</div>
 67<div id="outline-container-What%20is%20GitOps%20for%20Security%3F" class="outline-3">
 68<h3 id="What%20is%20GitOps%20for%20Security%3F">What is GitOps for Security?</h3>
 69<div class="outline-text-3" id="text-What%20is%20GitOps%20for%20Security%3F">
 70<p>
 71It provides
 72</p>
 73
 74<ol class="org-ol">
 75<li>Immutable infrastructure</li>
 76<li>Single source of truth</li>
 77<li>Dev velocity</li>
 78</ol>
 79</div>
 80</div>
 81<div id="outline-container-Transparency%20and%20Collaboration" class="outline-3">
 82<h3 id="Transparency%20and%20Collaboration">Transparency and Collaboration</h3>
 83<div class="outline-text-3" id="text-Transparency%20and%20Collaboration">
 84<ol class="org-ol">
 85<li><b>Reversibility</b>: You can do rollbacks, and lower mean time to resolving config-based
 86outages with version controlling.</li>
 87<li><b>Audit trails</b>: You can track the history of a repo, …</li>
 88</ol>
 89
 90<p>
 91This also helps to reduce the risk of relying on a single employee.
 92</p>
 93</div>
 94</div>
 95<div id="outline-container-What%20can%20you%20GitOps%3F" class="outline-3">
 96<h3 id="What%20can%20you%20GitOps%3F">What can you GitOps?</h3>
 97<div class="outline-text-3" id="text-What%20can%20you%20GitOps%3F">
 98<p>
 99You can GitOps not just apps, but infrastructure, things that go onto DNS and identity
100providers, Chaos experiments and Kubernetes Clusters, and more. You can GitOps all the
101things!
102</p>
103</div>
104</div>
105</section>
106<section id="outline-container-GitOps%20tools" class="outline-2">
107<h2 id="GitOps%20tools">GitOps tools</h2>
108<div class="outline-text-2" id="text-GitOps%20tools">
109<ul class="org-ul">
110<li><a href="https://www.ansible.com/">Ansible</a></li>
111<li><a href="https://argoproj.github.io/argo-cd/">ArgoCD</a></li>
112<li><a href="https://www.runatlantis.io/">Atlantis</a></li>
113<li><a href="https://www.chef.io/">Chef</a></li>
114<li><a href="https://draft.sh/">Draft</a></li>
115<li><a href="https://eksctl.io/">eksctl</a></li>
116<li><a href="https://fluxcd.io/">FluxCD</a></li>
117<li><a href="https://flagger.app/">Flagger</a></li>
118<li><a href="https://git-scm.com/">Git</a></li>
119<li><a href="https://gitkube.sh/">GitKube</a></li>
120<li><a href="https://toolkit.fluxcd.io/">GitOps Toolkit</a></li>
121<li><a href="https://helm.sh/">Helm</a></li>
122<li><a href="https://medium.com/keikoproj/keiko-running-kubernetes-at-scale-1178491c1440">Keiko</a></li>
123<li><a href="https://kubernetes.io/">Kubernetes</a></li>
124<li><a href="https://kustomize.io/">Kustomize</a></li>
125<li><a href="https://www.jenkins.io/">Jenkins</a></li>
126<li><a href="https://jenkins-x.io/">Jenkins X</a></li>
127<li><a href="https://www.pulumi.com/">Pulumi</a></li>
128<li><a href="https://puppet.com/">Puppet</a></li>
129<li><a href="http://salt.io/">Salt</a></li>
130<li><a href="https://skaffold.dev/">Skaffold</a></li>
131<li><a href="https://www.terraform.io/">Terraform</a></li>
132</ul>
133
134<p>
135One day, <a href="tekton.html">Tekton</a> components could be in that list
136</p>
137</div>
138</section>
139<section id="outline-container-References" class="outline-2">
140<h2 id="References">References</h2>
141<div class="outline-text-2" id="text-References">
142<ul class="org-ul">
143<li><a href="https://gitops-community.github.io/kit/#need-help-or-want-updates">GitOps Conversation Kit (beta) | GitOps Community</a></li>
144</ul>
145</div>
146</section>
147<section id="outline-container-Links" class="outline-2">
148<h2 id="Links">Links</h2>
149<div class="outline-text-2" id="text-Links">
150</div>
151<div id="outline-container-%5B%5Bhttps%3A%2F%2Fzwischenzugs.com%2F2020%2F11%2F30%2Fgitops-decisions%2F%5D%5BGitOps%20Decisions%20%E2%80%93%20zwischenzugs%5D%5D" class="outline-3">
152<h3 id="%5B%5Bhttps%3A%2F%2Fzwischenzugs.com%2F2020%2F11%2F30%2Fgitops-decisions%2F%5D%5BGitOps%20Decisions%20%E2%80%93%20zwischenzugs%5D%5D"><span class="todo TODO">TODO</span> <a href="https://zwischenzugs.com/2020/11/30/gitops-decisions/">GitOps Decisions – zwischenzugs</a></h3>
153<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fzwischenzugs.com%2F2020%2F11%2F30%2Fgitops-decisions%2F%5D%5BGitOps%20Decisions%20%E2%80%93%20zwischenzugs%5D%5D">
154<p>
155<span class="timestamp-wrapper"><span class="timestamp">[2020-12-02 Wed 10:57]</span></span>
156</p>
157</div>
158</div>
159</section>
160</main>
161<footer id="postamble" class="status">
162<footer>
163     <small><a href="/" rel="history">Index</a><a href="/sitemap.html">Sitemap</a><a href="https://dl.sbr.pm/">Files</a></small><br/>
164     <small class='questions'>Questions, comments ? Please use my <a href="https://lists.sr.ht/~vdemeester/public-inbox">public inbox</a> by sending a plain-text email to <a href="mailto:~vdemeester/public-inbox@lists.sr.ht">~vdemeester/public-inbox@lists.sr.ht</a>.</small><br/>
165     <small class='copyright'>
166      Content and design by Vincent Demeester
167      (<a rel='licence' href='http://creativecommons.org/licenses/by-nc-sa/3.0/'>Some rights reserved</a>)
168    </small><br />
169</footer>
170</footer>
171</body>
172</html>