Skip to content

Commit dadd6d9

Browse files
feat: Overlay Test Optimizations
1 parent 7a5391b commit dadd6d9

File tree

4 files changed

+66
-6
lines changed

4 files changed

+66
-6
lines changed

.tekton/ansible-check.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ metadata:
66
annotations:
77
pipelinesascode.tekton.dev/max-keep-runs: "1"
88
pipelinesascode.tekton.dev/on-cel-expression: |
9-
event == "pull_request" && target_branch == "main"
9+
event == "pull_request" && target_branch == "main" && ("ansible/***".pathChanged() || "machineConfigs/***".pathChanged())
1010
pipelinesascode.tekton.dev/target-namespace: "homelab"
1111
pipelinesascode.tekton.dev/task: "[tekton/base/ansible-task.yaml]"
1212
pipelinesascode.tekton.dev/task-1: "https://raw.githubusercontent.com/ArthurVardevanyan/HomeLab/main/tekton/tasks/git-clone/0.9.1/git-clone.yaml"

.tekton/ansible.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ metadata:
66
annotations:
77
pipelinesascode.tekton.dev/max-keep-runs: "1"
88
pipelinesascode.tekton.dev/on-cel-expression: |
9-
event == "push" && (target_branch == "refs/heads/production" || target_branch == "main")
9+
event == "push" && (target_branch == "refs/heads/production" || target_branch == "main") && ("ansible/***".pathChanged() || "machineConfigs/***".pathChanged())
1010
pipelinesascode.tekton.dev/target-namespace: "homelab"
1111
pipelinesascode.tekton.dev/task: "[tekton/base/ansible-task.yaml]"
1212
pipelinesascode.tekton.dev/task-1: "https://raw.githubusercontent.com/ArthurVardevanyan/HomeLab/main/tekton/tasks/git-clone/0.9.1/git-clone.yaml"

.tekton/overlay-test.yaml

+12-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ metadata:
66
annotations:
77
pipelinesascode.tekton.dev/max-keep-runs: "1"
88
pipelinesascode.tekton.dev/on-cel-expression: |
9-
target_branch == "main" && ("kubernetes/***".pathChanged() || "okd/***".pathChanged() || "task/***".pathChanged() || "tekton/***".pathChanged())
10-
# event == "pull_request" &&
9+
event == "pull_request" && target_branch == "main" && ("kubernetes/***".pathChanged() || "okd/***".pathChanged() || "task/***".pathChanged() || "tekton/***".pathChanged())
1110
pipelinesascode.tekton.dev/target-namespace: "homelab"
1211
pipelinesascode.tekton.dev/task: "[tekton/base/overlay-test.yaml]"
1312
pipelinesascode.tekton.dev/task-1: "https://raw.githubusercontent.com/ArthurVardevanyan/HomeLab/main/tekton/tasks/git-clone/0.9.1/git-clone.yaml"
@@ -19,6 +18,8 @@ spec:
1918
value: "{{ revision }}"
2019
- name: git-url
2120
value: "{{ repo_url }}"
21+
- name: git-pr-number
22+
value: "{{ pull_request_number }}"
2223

2324
pipelineSpec:
2425
params:
@@ -66,6 +67,13 @@ spec:
6667
workspace: git_auth_secret
6768

6869
- name: overlay-test
70+
params:
71+
- name: git-commit
72+
value: "$(params.git-commit)"
73+
- name: git-url
74+
value: $(params.git-url)"
75+
- name: git-pr-number
76+
value: $(params.git-pr-number)"
6977
runAfter:
7078
- git-clone
7179
- git-clone-json
@@ -77,6 +85,8 @@ spec:
7785
workspace: data
7886
- name: kubernetes-json-schema
7987
workspace: kubernetes-json-schema
88+
- name: basic-auth
89+
workspace: git_auth_secret
8090

8191
serviceAccountName: pipeline
8292
workspaces:

tekton/base/overlay-test.yaml

+52-2
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,17 @@ spec:
1313
- name: image
1414
type: string
1515
default: "registry.arthurvardevanyan.com/homelab/toolbox:not_latest"
16+
- name: git-commit
17+
type: string
18+
- name: git-url
19+
type: string
20+
- name: git-pr-number
21+
type: string
1622

1723
workspaces:
1824
- name: data
1925
- name: kubernetes-json-schema
26+
- name: basic-auth
2027

2128
steps:
2229
- name: overlay-test
@@ -43,9 +50,17 @@ spec:
4350
volumeMounts:
4451
- name: tmp
4552
mountPath: /tmp
53+
- name: test
54+
mountPath: /workspace/test
4655
env:
56+
- name: GIT_URL
57+
value: $(params.git-url)
58+
- name: GIT_PR_NUMBER
59+
value: $(params.git-pr-number)"
4760
- name: WORKSPACE_DATA_PATH
4861
value: $(workspaces.data.path)
62+
- name: WORKSPACE_BASIC_AUTH_PATH
63+
value: $(workspaces.data.path)
4964
script: |
5065
#!/bin/bash
5166
@@ -57,9 +72,44 @@ spec:
5772
export KUBERNETES_TOKEN="$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)"
5873
export VAULT_TOKEN="$(vault write -field=token auth/homelab/login role=homelab jwt=${KUBERNETES_TOKEN})"
5974
60-
cd $(workspaces.data.path)
61-
./main.bash test_overlays
75+
cd "${WORKSPACE_DATA_PATH}"
76+
77+
sleep infinity
78+
gh auth login --with-token <"/${WORKSPACE_BASIC_AUTH_PATH}/git-provider-token"
79+
80+
WHATS_CHANGED=$(gh pr diff --repo "${GIT_URL}" "48" --name-only)
81+
82+
for FILE_PATH in ${WHATS_CHANGED}; do
83+
echo "${FILE_PATH}" | cut -d'/' -f1,2 >>/tmp/files_changed.log
84+
done
85+
86+
export FOLDER_LIST
87+
FOLDER_LIST=$(sort -u /tmp/files_changed.log | grep -E "kubernetes/|okd/")
88+
echo "${FOLDER_LIST}"
89+
90+
DIR="/tmp/yaml"
91+
rm -rf /tmp/yaml
92+
mkdir -p /tmp/yaml
93+
echo "Build Yaml's"
94+
95+
for FOLDER in ${FOLDER_LIST}; do
96+
for OVERLAY in ./${FOLDER}/overlays/*; do
97+
if [[ ${OVERLAY} != *"k3s"* ]];then
98+
echo "${OVERLAY}"
99+
OUTPUT=$(echo "${OVERLAY}" | sed 's/\.//g' | sed 's/\//_/g')
100+
kubectl kustomize "${OVERLAY}" | argocd-vault-plugin generate - >"${DIR}/${OUTPUT}.yaml"
101+
fi
102+
done
103+
done
104+
105+
kubeconform -n 16 -verbose --summary -ignore-missing-schemas \
106+
-schema-location="../kubernetes-json-schema/master-standalone-strict/{{.ResourceKind}}{{.KindSuffix}}.json" \
107+
-output text "${DIR}" | grep -v "is valid"
108+
62109
volumes:
63110
- name: tmp
64111
emptyDir:
65112
sizeLimit: 10Mi
113+
- name: test
114+
emptyDir:
115+
sizeLimit: 10Mi

0 commit comments

Comments
 (0)