Skip to content

Instantly share code, notes, and snippets.

@kusznerr
Created December 27, 2021 17:37
Show Gist options
  • Save kusznerr/d1671f9ab382c3ea6622d256d5c59f7a to your computer and use it in GitHub Desktop.
Save kusznerr/d1671f9ab382c3ea6622d256d5c59f7a to your computer and use it in GitHub Desktop.
ArgoCD setup to be included in GKE installation
terraform {
required_providers {
kubectl = {
source = "gavinbunney/kubectl"
version = ">= 1.7.0"
}
}
}
data "terraform_remote_state" "gke" {
backend = "remote"
config = {
organization = "wabbit-dev"
workspaces = {
name = "wabbit-rk5-gke"
}
}
}
provider "kubectl" {
host = data.terraform_remote_state.gke.outputs.kubernetes_endpoint
cluster_ca_certificate = data.terraform_remote_state.gke.outputs.ca_certificate
token = data.terraform_remote_state.gke.outputs.client_token
load_config_file = false
}
data "kubectl_file_documents" "namespace" {
content = file("./yaml/namespace.yaml")
}
// install.yaml is a copy of https://github.com/argoproj/argo-cd/blob/master/manifests/install.yaml
data "kubectl_file_documents" "argocd" {
content = file("./yaml/install.yaml")
}
data "kubectl_file_documents" "root-app" {
content = file("./yaml/root-app.yaml")
}
resource "kubectl_manifest" "namespace" {
count = length(data.kubectl_file_documents.namespace.documents)
yaml_body = element(data.kubectl_file_documents.namespace.documents, count.index)
override_namespace = "argocd"
}
resource "kubectl_manifest" "argocd" {
depends_on = [
kubectl_manifest.namespace,
]
count = length(data.kubectl_file_documents.argocd.documents)
yaml_body = element(data.kubectl_file_documents.argocd.documents, count.index)
override_namespace = "argocd"
}
resource "kubectl_manifest" "root-app" {
depends_on = [
kubectl_manifest.argocd,
]
count = length(data.kubectl_file_documents.root-app.documents)
yaml_body = element(data.kubectl_file_documents.root-app.documents, count.index)
override_namespace = "argocd"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment