diff --git a/argocd/app-of-apps/Chart.yaml b/argocd/app-of-apps/Chart.yaml new file mode 100644 index 0000000000..21cfe49977 --- /dev/null +++ b/argocd/app-of-apps/Chart.yaml @@ -0,0 +1,4 @@ +--- +apiVersion: "v2" +name: "app-of-apps" +version: "0" diff --git a/argocd/app-of-apps/templates/apps.yaml b/argocd/app-of-apps/templates/apps.yaml new file mode 100644 index 0000000000..6817725529 --- /dev/null +++ b/argocd/app-of-apps/templates/apps.yaml @@ -0,0 +1,23 @@ +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + annotations: + argocd.argoproj.io/sync-wave: "5" + name: apps + namespace: argocd +spec: + project: default + source: + path: argocd/apps + repoURL: {{ .Values.spec.source.repoURL }} + targetRevision: {{ .Values.spec.source.targetRevision }} + helm: + values: | + {{ toYaml .Values | nindent 8 }} + destination: + namespace: default + server: {{ .Values.spec.destination.server }} + syncPolicy: + automated: + selfHeal: true diff --git a/argocd/app-of-apps/values.yaml b/argocd/app-of-apps/values.yaml new file mode 100644 index 0000000000..ec6a7ca8a6 --- /dev/null +++ b/argocd/app-of-apps/values.yaml @@ -0,0 +1,7 @@ +--- +spec: + destination: + server: https://kubernetes.default.svc + source: + repoURL: ... + targetRevision: HEAD diff --git a/examples/k3s-docker-demo-app/terraform/main.tf b/examples/k3s-docker-demo-app/terraform/main.tf index 5ee00547f4..522c331ec2 100644 --- a/examples/k3s-docker-demo-app/terraform/main.tf +++ b/examples/k3s-docker-demo-app/terraform/main.tf @@ -1,6 +1,6 @@ locals { - repo_url = "https://github.com/camptocamp/camptocamp-devops-stack.git" - target_revision = "HEAD" + repo_url = "https://github.com/mcanevet/camptocamp-devops-stack.git" + target_revision = "no_kubernetes_alpha" base_domain = module.cluster.base_domain kubernetes_host = module.cluster.kubernetes_host @@ -11,7 +11,7 @@ locals { } module "cluster" { - source = "git::https://github.com/camptocamp/camptocamp-devops-stack.git//modules/k3s-docker?ref=HEAD" + source = "../../../modules/k3s-docker" cluster_name = terraform.workspace node_count = 1 diff --git a/modules/k3s-docker/main.tf b/modules/k3s-docker/main.tf index 274b1ee7c4..3a7bddf9b5 100644 --- a/modules/k3s-docker/main.tf +++ b/modules/k3s-docker/main.tf @@ -83,48 +83,23 @@ server: ] } -resource "kubernetes_manifest" "app_of_apps" { - provider = kubernetes-alpha - - manifest = { - "apiVersion" = "argoproj.io/v1alpha1" - "kind" = "Application" - "metadata" = { - "name" = "apps" - "namespace" = "argocd" - "annotations" = { - "argocd.argoproj.io/sync-wave" = "5" - } - } - "spec" = { - "project" = "default" - "source" = { - "path" = "argocd/apps" - "repoURL" = var.repo_url - "targetRevision" = var.target_revision - "helm" = { - "parameters" = var.app_of_apps_parameters - "values" = templatefile("${path.module}/values.tmpl.yaml", - { - cluster_name = var.cluster_name, - base_domain = local.base_domain, - repo_url = var.repo_url, - target_revision = var.target_revision, - } - ) - } - } - "destination" = { - "namespace" = "default" - "server" = "https://kubernetes.default.svc" - } - "syncPolicy" = { - "automated" = { - "selfHeal" = true - } +resource "helm_release" "app_of_apps" { + name = "app-of-apps" + chart = "${path.module}/../../argocd/app-of-apps" + namespace = "argocd" + dependency_update = true + create_namespace = true + + values = [ + templatefile("${path.module}/values.tmpl.yaml", + { + cluster_name = var.cluster_name, + base_domain = local.base_domain, + repo_url = var.repo_url, + target_revision = var.target_revision, } - } - } + ) + ] depends_on = [ helm_release.argocd, @@ -133,7 +108,7 @@ resource "kubernetes_manifest" "app_of_apps" { resource "null_resource" "wait_for_vault" { depends_on = [ - kubernetes_manifest.app_of_apps, + helm_release.app_of_apps, ] provisioner "local-exec" {