Skip to content

Commit 2191db6

Browse files
authored
Merge pull request k3s-io#434 from axivo/feature/chart-validation
feat: implement chart validation
2 parents 0a3b5f3 + d91cc12 commit 2191db6

10 files changed

Lines changed: 243 additions & 2 deletions

File tree

roles/argo-cd/tasks/validation.yaml

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,11 @@
4747
block:
4848
- name: Validate configuration params values
4949
ansible.builtin.debug:
50-
msg: "{{ lookup('ansible.builtin.template', 'config_params.j2') }}"
50+
msg: "{{ lookup('ansible.builtin.template', 'config_params.j2') | trim }}"
5151

5252
- name: Validate configuration rbac values
5353
ansible.builtin.debug:
54-
msg: "{{ lookup('ansible.builtin.template', 'config_rbac.j2') }}"
54+
msg: "{{ lookup('ansible.builtin.template', 'config_rbac.j2') | trim }}"
5555

5656
- name: Validate credentials values
5757
ansible.builtin.debug:
@@ -84,3 +84,27 @@
8484
- name: Validate postinstall chart values
8585
ansible.builtin.debug:
8686
msg: "{{ lookup('ansible.builtin.template', 'values.j2') }}"
87+
88+
- name: Add repository
89+
kubernetes.core.helm_repository:
90+
name: '{{ argocd_vars.kubernetes.helm.repository.org }}'
91+
repo_url: '{{ argocd_map.helm.repository.url }}'
92+
93+
- name: Simulate chart deployment
94+
ansible.builtin.command:
95+
cmd: >-
96+
helm diff upgrade {{ argocd_vars.kubernetes.helm.chart.name }} {{ argocd_map.helm.chart.reference }}
97+
--kubeconfig {{ k3s_project.cluster.kubeconfig }}
98+
--namespace {{ argocd_vars.kubernetes.namespace }}
99+
--version {{ argocd_vars.kubernetes.helm.chart.version }}
100+
--context 3 --values -
101+
stdin: "{{ lookup('ansible.builtin.template', 'values.j2') }}"
102+
register: result
103+
delay: 1
104+
retries: 3
105+
until: result is not failed
106+
changed_when: false
107+
108+
- name: Chart deployment simulation result
109+
ansible.builtin.debug:
110+
msg: "{{ result.stdout if result.stdout | length > 0 else 'No chart deployment errors found.' }}"

roles/cert-manager/tasks/validation.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,3 +63,27 @@
6363
- name: Validate postinstall chart values
6464
ansible.builtin.debug:
6565
msg: "{{ lookup('ansible.builtin.template', 'values.j2') }}"
66+
67+
- name: Add repository
68+
kubernetes.core.helm_repository:
69+
name: '{{ certmanager_vars.kubernetes.helm.repository.org }}'
70+
repo_url: '{{ certmanager_vars.kubernetes.helm.repository.url }}'
71+
72+
- name: Simulate chart deployment
73+
ansible.builtin.command:
74+
cmd: >-
75+
helm diff upgrade {{ certmanager_vars.kubernetes.helm.chart.name }} {{ certmanager_map.helm.chart.reference }}
76+
--kubeconfig {{ k3s_project.cluster.kubeconfig }}
77+
--namespace {{ certmanager_vars.kubernetes.namespace }}
78+
--version {{ certmanager_vars.kubernetes.helm.chart.version }}
79+
--context 3 --values -
80+
stdin: "{{ lookup('ansible.builtin.template', 'values.j2') }}"
81+
register: result
82+
delay: 1
83+
retries: 3
84+
until: result is not failed
85+
changed_when: false
86+
87+
- name: Chart deployment simulation result
88+
ansible.builtin.debug:
89+
msg: "{{ result.stdout if result.stdout | length > 0 else 'No chart deployment errors found.' }}"

roles/cilium/tasks/validation.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,3 +113,27 @@
113113
- name: Validate postinstall chart values
114114
ansible.builtin.debug:
115115
msg: "{{ lookup('ansible.builtin.template', 'values.j2') }}"
116+
117+
- name: Add repository
118+
kubernetes.core.helm_repository:
119+
name: '{{ cilium_vars.kubernetes.helm.repository.org }}'
120+
repo_url: '{{ cilium_map.helm.repository.url }}'
121+
122+
- name: Simulate chart deployment
123+
ansible.builtin.command:
124+
cmd: >-
125+
helm diff upgrade {{ cilium_vars.kubernetes.helm.chart.name }} {{ cilium_map.helm.chart.reference }}
126+
--kubeconfig {{ k3s_project.cluster.kubeconfig }}
127+
--namespace {{ cilium_vars.kubernetes.namespace }}
128+
--version {{ cilium_vars.kubernetes.helm.chart.version }}
129+
--context 3 --values -
130+
stdin: "{{ lookup('ansible.builtin.template', 'values.j2') }}"
131+
register: result
132+
delay: 1
133+
retries: 3
134+
until: result is not failed
135+
changed_when: false
136+
137+
- name: Chart deployment simulation result
138+
ansible.builtin.debug:
139+
msg: "{{ result.stdout if result.stdout | length > 0 else 'No chart deployment errors found.' }}"

roles/coredns/tasks/validation.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,27 @@
4141
- name: Validate postinstall chart values
4242
ansible.builtin.debug:
4343
msg: "{{ lookup('ansible.builtin.template', 'values.j2') }}"
44+
45+
- name: Add repository
46+
kubernetes.core.helm_repository:
47+
name: '{{ coredns_vars.kubernetes.helm.repository.org }}'
48+
repo_url: '{{ coredns_map.helm.repository.url }}'
49+
50+
- name: Simulate chart deployment
51+
ansible.builtin.command:
52+
cmd: >-
53+
helm diff upgrade {{ coredns_vars.kubernetes.helm.chart.name }} {{ coredns_map.helm.chart.reference }}
54+
--kubeconfig {{ k3s_project.cluster.kubeconfig }}
55+
--namespace {{ coredns_vars.kubernetes.namespace }}
56+
--version {{ coredns_vars.kubernetes.helm.chart.version }}
57+
--context 3 --values -
58+
stdin: "{{ lookup('ansible.builtin.template', 'values.j2') }}"
59+
register: result
60+
delay: 1
61+
retries: 3
62+
until: result is not failed
63+
changed_when: false
64+
65+
- name: Chart deployment simulation result
66+
ansible.builtin.debug:
67+
msg: "{{ result.stdout if result.stdout | length > 0 else 'No chart deployment errors found.' }}"

roles/external-dns/tasks/validation.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,27 @@
4949
- name: Validate postinstall chart values
5050
ansible.builtin.debug:
5151
msg: "{{ lookup('ansible.builtin.template', 'values.j2') }}"
52+
53+
- name: Add repository
54+
kubernetes.core.helm_repository:
55+
name: '{{ externaldns_vars.kubernetes.helm.repository.org }}'
56+
repo_url: '{{ externaldns_map.helm.repository.url }}'
57+
58+
- name: Simulate chart deployment
59+
ansible.builtin.command:
60+
cmd: >-
61+
helm diff upgrade {{ externaldns_vars.kubernetes.helm.chart.name }} {{ externaldns_map.helm.chart.reference }}
62+
--kubeconfig {{ k3s_project.cluster.kubeconfig }}
63+
--namespace {{ externaldns_vars.kubernetes.namespace }}
64+
--version {{ externaldns_vars.kubernetes.helm.chart.version }}
65+
--context 3 --values -
66+
stdin: "{{ lookup('ansible.builtin.template', 'values.j2') }}"
67+
register: result
68+
delay: 1
69+
retries: 3
70+
until: result is not failed
71+
changed_when: false
72+
73+
- name: Chart deployment simulation result
74+
ansible.builtin.debug:
75+
msg: "{{ result.stdout if result.stdout | length > 0 else 'No chart deployment errors found.' }}"

roles/kured/tasks/validation.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,27 @@
4141
- name: Validate postinstall chart values
4242
ansible.builtin.debug:
4343
msg: "{{ lookup('ansible.builtin.template', 'values.j2') }}"
44+
45+
- name: Add repository
46+
kubernetes.core.helm_repository:
47+
name: '{{ kured_vars.kubernetes.helm.repository.org }}'
48+
repo_url: '{{ kured_map.helm.repository.url }}'
49+
50+
- name: Simulate chart deployment
51+
ansible.builtin.command:
52+
cmd: >-
53+
helm diff upgrade {{ kured_vars.kubernetes.helm.chart.name }} {{ kured_map.helm.chart.reference }}
54+
--kubeconfig {{ k3s_project.cluster.kubeconfig }}
55+
--namespace {{ kured_vars.kubernetes.namespace }}
56+
--version {{ kured_vars.kubernetes.helm.chart.version }}
57+
--context 3 --values -
58+
stdin: "{{ lookup('ansible.builtin.template', 'values.j2') }}"
59+
register: result
60+
delay: 1
61+
retries: 3
62+
until: result is not failed
63+
changed_when: false
64+
65+
- name: Chart deployment simulation result
66+
ansible.builtin.debug:
67+
msg: "{{ result.stdout if result.stdout | length > 0 else 'No chart deployment errors found.' }}"

roles/longhorn/tasks/validation.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,3 +69,27 @@
6969
- name: Validate postinstall chart values
7070
ansible.builtin.debug:
7171
msg: "{{ lookup('ansible.builtin.template', 'values.j2') }}"
72+
73+
- name: Add repository
74+
kubernetes.core.helm_repository:
75+
name: '{{ longhorn_vars.kubernetes.helm.repository.org }}'
76+
repo_url: '{{ longhorn_vars.kubernetes.helm.repository.url }}'
77+
78+
- name: Simulate chart deployment
79+
ansible.builtin.command:
80+
cmd: >-
81+
helm diff upgrade {{ longhorn_vars.kubernetes.helm.chart.name }} {{ longhorn_map.helm.chart.reference }}
82+
--kubeconfig {{ k3s_project.cluster.kubeconfig }}
83+
--namespace {{ longhorn_vars.kubernetes.namespace }}
84+
--version {{ longhorn_vars.kubernetes.helm.chart.version }}
85+
--context 3 --values -
86+
stdin: "{{ lookup('ansible.builtin.template', 'values.j2') }}"
87+
register: result
88+
delay: 1
89+
retries: 3
90+
until: result is not failed
91+
changed_when: false
92+
93+
- name: Chart deployment simulation result
94+
ansible.builtin.debug:
95+
msg: "{{ result.stdout if result.stdout | length > 0 else 'No chart deployment errors found.' }}"

roles/metrics-server/tasks/validation.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,27 @@
4242
- name: Validate postinstall chart values
4343
ansible.builtin.debug:
4444
msg: "{{ lookup('ansible.builtin.template', 'values.j2') }}"
45+
46+
- name: Add repository
47+
kubernetes.core.helm_repository:
48+
name: '{{ metricsserver_vars.kubernetes.helm.repository.name }}'
49+
repo_url: '{{ metricsserver_map.helm.repository.url }}'
50+
51+
- name: Simulate chart deployment
52+
ansible.builtin.command:
53+
cmd: >-
54+
helm diff upgrade {{ metricsserver_vars.kubernetes.helm.chart.name }} {{ metricsserver_map.helm.chart.reference }}
55+
--kubeconfig {{ k3s_project.cluster.kubeconfig }}
56+
--namespace {{ metricsserver_vars.kubernetes.namespace }}
57+
--version {{ metricsserver_vars.kubernetes.helm.chart.version }}
58+
--context 3 --values -
59+
stdin: "{{ lookup('ansible.builtin.template', 'values.j2') }}"
60+
register: result
61+
delay: 1
62+
retries: 3
63+
until: result is not failed
64+
changed_when: false
65+
66+
- name: Chart deployment simulation result
67+
ansible.builtin.debug:
68+
msg: "{{ result.stdout if result.stdout | length > 0 else 'No chart deployment errors found.' }}"

roles/victoria-logs/tasks/validation.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,27 @@
4141
- name: Validate postinstall chart values
4242
ansible.builtin.debug:
4343
msg: "{{ lookup('ansible.builtin.template', 'values.j2') }}"
44+
45+
- name: Add repository
46+
kubernetes.core.helm_repository:
47+
name: '{{ victorialogs_vars.kubernetes.helm.repository.org }}'
48+
repo_url: '{{ victorialogs_map.helm.repository.url }}'
49+
50+
- name: Simulate chart deployment
51+
ansible.builtin.command:
52+
cmd: >-
53+
helm diff upgrade {{ victorialogs_vars.kubernetes.helm.chart.alias }} {{ victorialogs_map.helm.chart.reference }}
54+
--kubeconfig {{ k3s_project.cluster.kubeconfig }}
55+
--namespace {{ victorialogs_vars.kubernetes.namespace }}
56+
--version {{ victorialogs_vars.kubernetes.helm.chart.version }}
57+
--context 3 --values -
58+
stdin: "{{ lookup('ansible.builtin.template', 'values.j2') }}"
59+
register: result
60+
delay: 1
61+
retries: 3
62+
until: result is not failed
63+
changed_when: false
64+
65+
- name: Chart deployment simulation result
66+
ansible.builtin.debug:
67+
msg: "{{ result.stdout if result.stdout | length > 0 else 'No chart deployment errors found.' }}"

roles/victoria-metrics/tasks/validation.yaml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,28 @@
6060
- name: Validate chart values
6161
ansible.builtin.debug:
6262
msg: "{{ lookup('ansible.builtin.template', 'values.j2') }}"
63+
64+
- name: Add repository
65+
kubernetes.core.helm_repository:
66+
name: '{{ item.org }}'
67+
repo_url: '{{ item.url }}/{{ item.name }}'
68+
loop: '{{ victoriametrics_map.helm.repository }}'
69+
70+
- name: Simulate chart deployment
71+
ansible.builtin.command:
72+
cmd: >-
73+
helm diff upgrade {{ victoriametrics_vars.kubernetes.helm.chart.alias }} {{ victoriametrics_project.helm.chart.reference }}
74+
--kubeconfig {{ k3s_project.cluster.kubeconfig }}
75+
--namespace {{ victoriametrics_vars.kubernetes.namespace }}
76+
--version {{ victoriametrics_vars.kubernetes.helm.chart.version }}
77+
--context 3 --values -
78+
stdin: "{{ lookup('ansible.builtin.template', 'values.j2') }}"
79+
register: result
80+
delay: 1
81+
retries: 3
82+
until: result is not failed
83+
changed_when: false
84+
85+
- name: Chart deployment simulation result
86+
ansible.builtin.debug:
87+
msg: "{{ result.stdout if result.stdout | length > 0 else 'No chart deployment errors found.' }}"

0 commit comments

Comments
 (0)