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 & 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>