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