diff --git a/examples/.terraform.lock.hcl b/examples/.terraform.lock.hcl new file mode 100644 index 0000000..ed77a31 --- /dev/null +++ b/examples/.terraform.lock.hcl @@ -0,0 +1,19 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/oboukili/argocd" { + version = "6.0.1" + constraints = "6.0.1" + hashes = [ + "h1:eHML0bkbdfQE2YGiRq7gUQ06euIWx8KqVJOLAZiD3ZI=", + "zh:3cf08902df7eb452f33456076acf08e01d026e854824507c1ae3290d249f0cbd", + "zh:5a44f1d8f3ac153837b73a0c0d42ed9e559fbbb87b0a780af5525de4077a2ee4", + "zh:7cf42c6af5c395b4ae99d9ecdc1cec1bdd6b6cbfcee573a1ee2ae03fd4048e2e", + "zh:99412d15994442274716228990ef3a29aeebd56c2d45786c4b6443b7ddfb8e48", + "zh:99c13b2372fc4fb31e2ae77b73a37ec3bcdffb2bafa8a23bc5da7c7e5026ee7c", + "zh:b50e2b3cc653e35b7c4f4521602524781010f0f3a76285a7e1e08a7db308cd5c", + "zh:ca04f381e10bb8ba93e8bd6cbf88ec5b06dc21789f4f3b1c95cc9e87977224b0", + "zh:dbad7c9f5bc0e8eddf9304f027e5b7e4527a88da7223181b1eb7828c7c005b3f", + "zh:e1b0cbd1a9a2ccef34188cab7de783a2c33aa88e042ad6d3fbcb9b88f80b5d2c", + ] +} diff --git a/examples/main.tf b/examples/main.tf new file mode 100644 index 0000000..3721cdd --- /dev/null +++ b/examples/main.tf @@ -0,0 +1,37 @@ +module "example" { + source = "../" + + name = "example" + project_name = "example" + generator = { + git = { + repo_url = "https://github.com/urbanmedia/example-deployment.git" + revision = "main" + files = [ + "argo/*/*/example.yaml" + ] + } + } + manifest_source = { + helm = { + chart = "example" + release_name = "example" + repo_url = "ghcr.io/urbanmedia/example-deployment" + target_revision = "1.1.16" + } + } + generator_segment_index_overwrite = 1 + application_name_suffix = "{{ index .path.segments 2 }}" + annotations = { + "argocd.argoproj.io/sync-wave" = "2", + } + sync_options = [ + "Validate=false", + "ApplyOutOfSyncOnly=true", + ] + sync_policy = { + prune = true + self_heal = true + allow_empty = true + } +} diff --git a/main.tf b/main.tf index ad15fba..a83ba98 100644 --- a/main.tf +++ b/main.tf @@ -1,6 +1,6 @@ locals { cluster_identifier = var.generator_segment_index_overwrite == null ? ".path.basenameNormalized" : "(index .path.segments ${var.generator_segment_index_overwrite})" - resource_name = "${local.cluster_identifier}${var.application_name_suffix != "" ? "-${var.application_name_suffix}" : ""}" + resource_name = "{{ ${local.cluster_identifier} }}${var.application_name_suffix != "" ? "-${var.application_name_suffix}" : ""}" } resource "argocd_application_set" "this" { @@ -53,7 +53,7 @@ resource "argocd_application_set" "this" { metadata { // application names are in the format: - // e.g. prometheus-staging - name = "${var.name}-{{ ${local.resource_name} }}" + name = "${var.name}-${local.resource_name}" annotations = merge( var.annotations, { @@ -110,7 +110,7 @@ resource "argocd_application_set" "this" { // (e.g. background-staging (assuming "background" is the project and "staging" the folder name)) // otherwise we use the namespace_overwrite provided by the developer // (e.g. background-staging-v2 (assuming "background" is the project and "staging-v2" the namespace_overwrite)) - namespace = var.target_namespace_overwrite != "" ? var.target_namespace_overwrite : "{{ if not .namespace_overwrite }}${var.project_name}-{{ ${local.resource_name} }}{{ else }}${var.project_name}-{{ .namespace_overwrite }}{{ end }}" + namespace = var.target_namespace_overwrite != "" ? var.target_namespace_overwrite : "{{ if not .namespace_overwrite }}${var.project_name}-${local.resource_name}{{ else }}${var.project_name}-{{ .namespace_overwrite }}{{ end }}" } sync_policy { dynamic "automated" {