19th and 20th of May 2023 by Milan Skuhra
ArgoCD
practical usage
About Me
DevOps engineer @solargis
ArgoCD Workshop
Web-base Terminal
User Management and RBAG
soon...
What is ArgoCD?
Argo CD is an open-source GitOps continuous delivery tool. It monitors your cluster and your declaratively-defined infrastructure stored in a Git repository and resolves differences between the two — effectively automating an application deployment.
Turning “ClickOps” into GitOps
Application
Project
GitOps Pipeline
GitOps Pipeline
Phases:
Each phase can have one or more waves
Waves are defined by annotations
argocd.argoproj.io/sync-wave: "-1"
argocd.argoproj.io/sync-wave: "0"
argocd.argoproj.io/sync-wave: "5"
* are applicable for individual resources
(*) are applicable for application and idividual resources
PrunePropagationPolicy=foreground|baground|orphan
PruneLast=true(*)
Prune=false*
Delete=false*
Validate=false*
SkipDryRunOnMissingResource=true*
Replace=true(*)
* are applicable for individual resources
(*) are applicable for application and idividual resources
Generating Applications with ApplicationSet
Generators
Primary generators
Combining generators
Secret Management
apiVersion: v1
kind: Secret
metadata:
name: example-database
annotations:
avp.kubernetes.io/path: "apps/data/database"
avp.kubernetes.io/secret-version: "2"
stringData:
username: <username>
password: <password>
inlined: <path:kv/data/mysql#user>:<path:kv/data/mysql#user#2>
Argo CD Vault Plugin
avp.kubernetes.io/ignore: "true" avp.kubernetes.io/remove-missing: "true"
<key|base64encode|base64decode|jsonParse |jsonPath {.username}{': '}{.password} |yamlParse|indent 3|sha256sum>
Supported secret providers
Install ArgoCD
export GIT_REPO=https://github.com/owner/name export GIT_TOKEN=ghp_PcZ...IP0 argocd-autopilot repo bootstrap
Prerequisites:
When should to use autopilot?
How to recover cluster without argocd-autopilot?
Demo
Where to start
Questions?