Skip to content

Commit 306a0ea

Browse files
committed
Fix clustergroup from git on spokes
This allows us to test clustergroup chart from git on spokes as well
1 parent cbd270f commit 306a0ea

File tree

2 files changed

+117
-2
lines changed

2 files changed

+117
-2
lines changed

templates/policies/application-policies.yaml

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,22 @@ spec:
4040
- repoURL: {{ coalesce .repoURL $.Values.global.repoURL }}
4141
targetRevision: {{ coalesce .targetRevision $.Values.global.targetRevision }}
4242
ref: patternref
43-
- repoURL: {{ $.Values.global.multiSourceRepoUrl }}
44-
targetRevision: {{ $.Values.global.multiSourceTargetRevision }}
43+
{{/* If we're using the clustergroup chart from a git repo let's use those */}}
44+
{{- $clusterGroupGitRepoUrl := "" }}
45+
{{- if and $.Values.main $.Values.main.multiSourceConfig }}
46+
{{- $clusterGroupGitRepoUrl = $.Values.main.multiSourceConfig.clusterGroupGitRepoUrl }}
47+
{{- end }}
48+
{{- $clusterGroupChartGitRevision := "" }}
49+
{{- if and $.Values.main $.Values.main.multiSourceConfig }}
50+
{{- $clusterGroupChartGitRevision = $.Values.main.multiSourceConfig.clusterGroupChartGitRevision }}
51+
{{- end }}
52+
- repoURL: {{ coalesce $clusterGroupGitRepoUrl $.Values.global.multiSourceRepoUrl }}
53+
targetRevision: {{ coalesce $clusterGroupChartGitRevision $.Values.global.multiSourceTargetRevision }}
54+
{{- if and $.Values.main $.Values.main.multiSourceConfig (hasKey $.Values.main.multiSourceConfig "clusterGroupGitRepoUrl") }}
55+
path: "."
56+
{{- else }}
4557
chart: clustergroup
58+
{{- end }}
4659
helm:
4760
ignoreMissingValueFiles: true
4861
values: |

tests/application_policy_test.yaml

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,3 +87,105 @@ tests:
8787
path: spec.clusterSelector.matchLabels.clusterGroup
8888
value: group-two
8989

90+
# Tests for clusterGroupGitRepoUrl and clusterGroupChartGitRevision
91+
- it: Should use chart clustergroup when clusterGroupGitRepoUrl is not set
92+
values:
93+
- ./clusterselector_values.yaml
94+
set:
95+
global:
96+
multiSourceSupport: true
97+
multiSourceRepoUrl: "https://charts.example.com"
98+
multiSourceTargetRevision: "0.1.0"
99+
asserts:
100+
- documentSelector:
101+
path: metadata.name
102+
value: group-one-clustergroup-policy
103+
equal:
104+
path: spec.policy-templates[0].objectDefinition.spec.object-templates[0].objectDefinition.spec.sources[1].chart
105+
value: clustergroup
106+
- documentSelector:
107+
path: metadata.name
108+
value: group-one-clustergroup-policy
109+
equal:
110+
path: spec.policy-templates[0].objectDefinition.spec.object-templates[0].objectDefinition.spec.sources[1].repoURL
111+
value: "https://charts.example.com"
112+
- documentSelector:
113+
path: metadata.name
114+
value: group-one-clustergroup-policy
115+
equal:
116+
path: spec.policy-templates[0].objectDefinition.spec.object-templates[0].objectDefinition.spec.sources[1].targetRevision
117+
value: "0.1.0"
118+
- documentSelector:
119+
path: metadata.name
120+
value: group-one-clustergroup-policy
121+
isNull:
122+
path: spec.policy-templates[0].objectDefinition.spec.object-templates[0].objectDefinition.spec.sources[1].path
123+
124+
- it: Should use path when clusterGroupGitRepoUrl is set
125+
values:
126+
- ./clusterselector_values.yaml
127+
set:
128+
global:
129+
multiSourceSupport: true
130+
multiSourceRepoUrl: "https://charts.example.com"
131+
multiSourceTargetRevision: "0.1.0"
132+
main:
133+
multiSourceConfig:
134+
clusterGroupGitRepoUrl: "https://github.com/example/clustergroup-chart"
135+
clusterGroupChartGitRevision: "feature-branch"
136+
asserts:
137+
- documentSelector:
138+
path: metadata.name
139+
value: group-one-clustergroup-policy
140+
equal:
141+
path: spec.policy-templates[0].objectDefinition.spec.object-templates[0].objectDefinition.spec.sources[1].path
142+
value: "."
143+
- documentSelector:
144+
path: metadata.name
145+
value: group-one-clustergroup-policy
146+
equal:
147+
path: spec.policy-templates[0].objectDefinition.spec.object-templates[0].objectDefinition.spec.sources[1].repoURL
148+
value: "https://github.com/example/clustergroup-chart"
149+
- documentSelector:
150+
path: metadata.name
151+
value: group-one-clustergroup-policy
152+
equal:
153+
path: spec.policy-templates[0].objectDefinition.spec.object-templates[0].objectDefinition.spec.sources[1].targetRevision
154+
value: "feature-branch"
155+
- documentSelector:
156+
path: metadata.name
157+
value: group-one-clustergroup-policy
158+
isNull:
159+
path: spec.policy-templates[0].objectDefinition.spec.object-templates[0].objectDefinition.spec.sources[1].chart
160+
161+
- it: Should use clusterGroupGitRepoUrl with fallback to multiSourceTargetRevision when only clusterGroupGitRepoUrl is set
162+
values:
163+
- ./clusterselector_values.yaml
164+
set:
165+
global:
166+
multiSourceSupport: true
167+
multiSourceRepoUrl: "https://charts.example.com"
168+
multiSourceTargetRevision: "0.1.0"
169+
main:
170+
multiSourceConfig:
171+
clusterGroupGitRepoUrl: "https://github.com/example/clustergroup-chart"
172+
asserts:
173+
- documentSelector:
174+
path: metadata.name
175+
value: group-one-clustergroup-policy
176+
equal:
177+
path: spec.policy-templates[0].objectDefinition.spec.object-templates[0].objectDefinition.spec.sources[1].path
178+
value: "."
179+
- documentSelector:
180+
path: metadata.name
181+
value: group-one-clustergroup-policy
182+
equal:
183+
path: spec.policy-templates[0].objectDefinition.spec.object-templates[0].objectDefinition.spec.sources[1].repoURL
184+
value: "https://github.com/example/clustergroup-chart"
185+
- documentSelector:
186+
path: metadata.name
187+
value: group-one-clustergroup-policy
188+
equal:
189+
path: spec.policy-templates[0].objectDefinition.spec.object-templates[0].objectDefinition.spec.sources[1].targetRevision
190+
value: "0.1.0"
191+

0 commit comments

Comments
 (0)