Building a Bridge between Terraform and ArgoCD

CarlosSantana1 413 views 34 slides Nov 08, 2023
Slide 1
Slide 1 of 34
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34

About This Presentation

Building a Bridge between Terraform and ArgoCD


Slide Content

Carlos Santana
Sr. Specialist SA
CNCF Ambassador
AWS
Building a Bridge Between
Argo CD and Terraform
Nov 6, 2023 | 9:50AM - 10:15AM CST
https://sched.co/1Rj1I
Nicholas Morey
Developer Advocate
Akuity

Building a Bridge Between
Argo CD and Terraform
The GitOps Bridge Project
gitops-bridge.dev

Nicholas Morey
Developer Advocate
Akuity
Building a Bridge Between
Argo CD and Terraform
November 6, 2023 | Chicago, Illinois
Carlos Santana
Sr. Specialist SA
CNCF Ambassador
AWS

Infrastructure as Code
Continuously Build and Integrations Continuous Delivery
ArgoCD Flux
Jenkins
Crossplane
AWS
CodePipeline
Github
Actions
GitOps
Flagger AWS
CodeCommit
AWS
CodeBuild
git helm
Terraform CDK Ansible Pulumi
Amazon
ECR
CAPA/CAPI Bicep

Infrastructure as Code
Continuous Delivery
Terraform
ArgoCD

Infrastructure as Code
Continuous Delivery
Terraform
ArgoCD

Infrastructure as Code
Continuous Delivery
Terraform
ArgoCD

Infrastructure as Code
Continuous Delivery
Terraform
Addons (helm charts)
external-dns
ingress-controller
ArgoCD

Infrastructure as Code
Continuous Delivery
Terraform
Addons (helm charts)
External-dns (metadata)
Ingress-controller (metadata)
ArgoCD

Infrastructure as Code
Continuous Delivery
Terraform
Addons (helm charts)
External-dns (metadata)
Ingress-controller (metadata)
external-dns
ingress-controller
Addons ApplicationSets
ArgoCD

Infrastructure as Code
Continuous Delivery
Terraform
Addons (helm charts)
External-dns (metadata)
Ingress-controller (metadata)
external-dns
ingress-controller
Addons ApplicationSets
ArgoCD

Infrastructure as Code
Continuous Delivery
Terraform
Addons (helm charts)
External-dns (metadata)
Ingress-controller (metadata)
external-dns
ingress-controller
Addons ApplicationSets
ArgoCD

Infrastructure as Code
Continuous Delivery
Terraform
Addons (helm charts)
External-dns (metadata)
Ingress-controller (metadata)
external-dns
ingress-controller
Addons ApplicationSets
ArgoCD

Infrastructure as Code
Continuous Delivery
Terraform
Addons (helm charts)
External-dns (metadata)
Ingress-controller (metadata)
external-dns
ingress-controller
Addons ApplicationSets
ArgoCD

Infrastructure as Code
Continuous Delivery
Terraform
Addons (helm charts)
External-dns (metadata)
Ingress-controller (metadata)
external-dns
ingress-controller
Addons ApplicationSets
Cluster Secret
metadata: ..
labels: …
ArgoCD

Infrastructure as Code
Continuous Delivery
Terraform
Addons (helm charts)
External-dns (metadata)
Ingress-controller (metadata)
external-dns
ingress-controller
Addons ApplicationSets
Cluster Secret
metadata: ..
labels: …
ArgoCD

Infrastructure as Code
Continuous Delivery
Terraform
Addons (helm charts)
External-dns (metadata)
Ingress-controller (metadata)
external-dns
ingress-controller
Addons ApplicationSets
Cluster Secret
metadata: ..
labels: …
git provider
ArgoCD

Infrastructure as Code
Continuous Delivery
Terraform
Addons (helm charts)
External-dns (metadata)
Ingress-controller (metadata)
external-dns
ingress-controller
Addons ApplicationSets
Cluster Secret
metadata: ..
labels: …
git provider
argocd provider
ArgoCD

Infrastructure as Code
Continuous Delivery
Terraform
Addons (helm charts)
External-dns (metadata)
Ingress-controller (metadata)
external-dns
ingress-controller
Addons ApplicationSets
Cluster Secret
metadata: ..
labels: …
git provider
argocd provider
external secret provider
ArgoCD

Infrastructure as Code
Continuous Delivery
Terraform
Addons (helm charts)
External-dns (metadata)
Ingress-controller (metadata)
external-dns
ingress-controller
Addons ApplicationSets
Cluster Secret
metadata: ..
labels: …
git provider
argocd provider
external secret provider
akp provider
ArgoCD

Infrastructure as Code
Continuous Delivery
Terraform
Addons (helm charts)
External-dns (metadata)
Ingress-controller (metadata)
external-dns
ingress-controller
Addons ApplicationSets
Cluster Secret
metadata: ..
labels: …
kubernetes provider
git provider
argocd provider
external secret provider
akp provider
ArgoCD

Infrastructure as Code
Continuous Delivery
ArgoCD
Terraform
Addons (helm charts)
External-dns (metadata)
Ingress-controller (metadata)
external-dns
ingress-controller
Addons ApplicationSets
Cluster Secret
metadata: ..
labels: …
Application
name: bootstrap
source: …

Infrastructure as Code
Continuous Delivery
ArgoCD
Terraform
Addons (helm charts)
External-dns (metadata)
Ingress-controller (metadata)
external-dns
ingress-controller
Addons ApplicationSets
Cluster Secret
metadata: ..
labels: …
Application
name: bootstrap
source: …

Infrastructure as Code
Continuous Delivery
ArgoCD
Terraform
Addons (helm charts)
External-dns (metadata)
Ingress-controller (metadata)
external-dns
ingress-controller
Addons ApplicationSets
Cluster Secret
metadata: ..
labels: …
git provider
Application
name: bootstrap
source: …

Infrastructure as Code
Continuous Delivery
ArgoCD
Terraform
Addons (helm charts)
External-dns (metadata)
Ingress-controller (metadata)
external-dns
ingress-controller
Addons ApplicationSets
Cluster Secret
metadata: ..
labels: …
git provider
argocd provider
Application
name: bootstrap
source: …

Infrastructure as Code
Continuous Delivery
ArgoCD
Terraform
Addons (helm charts)
External-dns (metadata)
Ingress-controller (metadata)
external-dns
ingress-controller
Addons ApplicationSets
Cluster Secret
metadata: ..
labels: …
kubernetes provider
git provider
argocd provider
Application
name: bootstrap
source: …

Infrastructure as Code
Continuous Delivery
ArgoCD (Addon)
Terraform
Addons (helm charts)
External-dns (metadata)
Ingress-controller (metadata)
external-dns
ingress-controller
Addons ApplicationSets
Cluster Secret
metadata: ..
labels: …
kubernetes provider
git provider
argocd provider
Application
name: bootstrap
source: …

Infrastructure as Code
Continuous Delivery
ArgoCD (Addon)
Terraform
Addons (helm charts)
External-dns (metadata)
Ingress-controller (metadata)
external-dns
ingress-controller
Addons ApplicationSets
Cluster Secret
metadata: ..
labels: …
gitops-bridge module
Application
name: bootstrap
source: …
EKS + Argo CD in Cluster
DEMO 1
eks module
eks-blueprints-addons
1
3
2
EKS

Infrastructure as Code
Continuous Delivery
ArgoCD (Addon)
Terraform
Addons (helm charts)
External-dns (metadata)
Ingress-controller (metadata)
external-dns
ingress-controller
Addons ApplicationSets
Cluster Secret
metadata: ..
labels: …
argocd module
Application
name: bootstrap
source: …
GKE + Argo CD in Akuity
DEMO 2
gke module
akp gitops-bridge
1
3
2
GKE

Key Takeaways
●Don’t use Terraform to manage Kubernetes resources
●Terraform is the source of truth for cloud metadata
●Leverage ApplicationSets to extract metadata for Applications
●Group clusters by label to manage multiple clusters

Call to Action
Try the Demo github.com/gitops-bridge-dev

Scaling Multi-cluster Management
with Argo CD and Application Sets
Workshop
W185 - 3:50pm - 5:20pm

Thank You!
Rate this talk
Nicholas Morey
Developer Advocate
Akuity
Carlos Santana
Sr. Specialist SA
CNCF Ambassador
AWS
csantanapr
nicholas-morey
Tags