locals { create-labels = merge(local.common-labels, { "type" = "repo-new" }) activate-labels = merge(local.common-labels, { "type" = "package-new" }) delete-labels = merge(local.common-labels, { "type" = "repo-delete" }) } resource "kubectl_manifest" "cd-trigger-create" { count = var.autoCD?1:0 yaml_body = <<-EOF apiVersion: triggers.tekton.dev/v1beta1 kind: Trigger metadata: name: "${var.instance}-${var.component}-auto-create" namespace: "${var.namespace}" labels: ${jsonencode(local.create-labels)} spec: bindings: - name: artifactory-url value: "$(extensions.artifactory-url)" - name: project-name value: "$(extensions.project-name)" - name: project-path value: "$(extensions.project-path)" - name: git-repository-url value: "$(extensions.git-repository-url)" - name: deploy-url value: $(extensions.deploy-url) template: spec: params: - name: artifactory-url description: The url of the current artifactory - name: project-name description: The git repository name - name: project-path description: The path of the current project - name: git-repository-url description: The git repository url - name: deploy-url description: The git repository url for the deploy project resourcetemplates: - apiVersion: tekton.dev/v1beta1 kind: TaskRun metadata: generateName: auto-cd-create-$(tt.params.project-name)- annotations: "mayfly.cloud.namecheap.com/expire": "336h" # 2 weeks spec: taskRef: name: "auto-cd-create" params: - name: artifactory-url value: $(tt.params.artifactory-url) - name: project-name value: $(tt.params.project-name) - name: project-path value: $(tt.params.project-path) - name: git-repository-url value: $(tt.params.git-repository-url) - name: deploy-url value: $(tt.params.deploy-url) workspaces: - name: source persistentVolumeClaim: claimName: source subPath: "$(extensions.git-revision)-cd" - name: ssh-directory secret: secretName: ssh-credentials items: - key: "known_hosts" path: "known_hosts" - key: "ssh-privatekey" path: "id_rsa" - key: "ssh-publickey" path: "id_rsa.pub" EOF } resource "kubectl_manifest" "cd-trigger-activate" { count = var.autoCD?1:0 yaml_body = <<-EOF apiVersion: triggers.tekton.dev/v1beta1 kind: Trigger metadata: name: "${var.instance}-${var.component}-auto-activate" namespace: "${var.namespace}" labels: ${jsonencode(local.activate-labels)} spec: bindings: - name: artifactory-url value: "$(extensions.artifactory-url)" - name: project-name value: "$(extensions.project-name)" - name: project-path value: "$(extensions.project-path)" - name: git-repository-url value: "$(extensions.git-repository-url)" - name: deploy-url value: $(extensions.deploy-url) template: spec: params: - name: artifactory-url description: The url of the current artifactory - name: project-name description: The git repository name - name: project-path description: The path of the current project - name: git-repository-url description: The git repository url - name: deploy-url description: The git repository url for the deploy project resourcetemplates: - apiVersion: tekton.dev/v1beta1 kind: TaskRun metadata: generateName: auto-cd-activate-$(tt.params.project-name)- annotations: "mayfly.cloud.namecheap.com/expire": "336h" # 2 weeks spec: taskRef: name: "auto-cd-activate" params: - name: artifactory-url value: $(tt.params.artifactory-url) - name: project-name value: $(tt.params.project-name) - name: project-path value: $(tt.params.project-path) - name: git-repository-url value: $(tt.params.git-repository-url) - name: deploy-url value: $(tt.params.deploy-url) workspaces: - name: source persistentVolumeClaim: claimName: source subPath: "$(extensions.git-revision)-cd" - name: ssh-directory secret: secretName: ssh-credentials items: - key: "known_hosts" path: "known_hosts" - key: "ssh-privatekey" path: "id_rsa" - key: "ssh-publickey" path: "id_rsa.pub" EOF } resource "kubectl_manifest" "ci-trigger-delete" { count = var.autoCD?1:0 yaml_body = <<-EOF apiVersion: triggers.tekton.dev/v1beta1 kind: Trigger metadata: name: "${var.instance}-${var.component}-auto-delete" namespace: "${var.namespace}" labels: ${jsonencode(local.delete-labels)} spec: bindings: - name: artifactory-url value: "$(extensions.artifactory-url)" - name: project-name value: "$(extensions.project-name)" - name: project-path value: "$(extensions.project-path)" - name: git-repository-url value: "$(extensions.git-repository-url)" - name: deploy-url value: $(extensions.deploy-url) template: spec: params: - name: artifactory-url description: The url of the current artifactory - name: project-name description: The git repository name - name: project-path description: The path of the current project - name: git-repository-url description: The git repository url - name: deploy-url description: The git repository url for the deploy project resourcetemplates: - apiVersion: tekton.dev/v1beta1 kind: TaskRun metadata: generateName: auto-cd-delete-$(tt.params.project-name)- annotations: "mayfly.cloud.namecheap.com/expire": "336h" # 2 weeks spec: taskRef: name: "auto-cd-delete" params: - name: artifactory-url value: $(tt.params.artifactory-url) - name: project-name value: $(tt.params.project-name) - name: project-path value: $(tt.params.project-path) - name: git-repository-url value: $(tt.params.git-repository-url) - name: deploy-url value: $(tt.params.deploy-url) workspaces: - name: source persistentVolumeClaim: claimName: source subPath: "$(extensions.git-revision)-cd" - name: ssh-directory secret: secretName: ssh-credentials items: - key: "known_hosts" path: "known_hosts" - key: "ssh-privatekey" path: "id_rsa" - key: "ssh-publickey" path: "id_rsa.pub" EOF }