GitOps on scale
with ArgoCD
Table of Contents
GitOps Overview
Observable
Standard enforcer
Relatively young
DevOps native
Scalable
We love GitOps because it’s…
Git-centric
Universal
Rollback-capable
The GitOps terms
The GitOps Principles
An Example GitOps Workflow
ArgoCD Overview
We should evaluate ArgoCD because it’s…
Observable
Kubernetes native
Minimalistic
Configurable
Fully declarative
Scalable
Both CD and CD capable
A part of an ecosystem
The ”App of Apps” Pattern
Apps of Apps (one per cluster). Usually gets synced by one more app.
Base applications to be deployed.
Cluster-specific overlays, i.e., ‘.spec.destination.name’.
The ”App of Apps” Pattern
Base Application
Cluster-level global overlay
.spec.destination.name is a placeholder
that MUST be overridden by a cluster-specific overlay
.spec.source.targetRevision can be overridden on demand
Cluster-level application overlay
Overrides .spec.destination.name
Overrides .spec.source.targetRevision
The ”App of Apps” Pattern
�Pros:
�Cons:
The ”Application Set” Pattern
An Application Set resource. Generates Applications based on Generators’ output.
The ”Application Set” Pattern
ApplicationSet
Enable Go Template for this Application Set
Fetch all clusters matched by matchLabel
Extract the value of the annotation as a variable,
provide a default value if not set
Generate an Application for each element of the resulting list:
- name: demo-worker1
values:
chartVersion: 7.1.256 ( the default value )
- name: demo-worker2
values:
chartVersion: 6.1.47 ( via the annotation )
The ”Application Set” Pattern
�Pros:
�Cons:
Demo
Demo Environment
�Tech Stack:
Links
Boston SoftDesign, Inc.�233 Needham Street, Suite 550
Newton Upper Falls, MA 02464-1605
Office: +1 (617) 546-8088
E-mail: info@bostonsd.com
Thank you!