Files
2024-06-01 15:08:02 +02:00

231 lines
7.8 KiB
HCL

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
}