231 lines
7.8 KiB
HCL
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
|
|
}
|