11# This pushes out the HUB's Certificate Authorities on to the imported clusters
22{{- if .Values.clusterGroup.isHubCluster }}
3- {{- if (eq (((.Values.global).secretStore).backend) "vault") }}
3+ {{- range .Values.clusterGroup.managedClusterGroups }}
4+ {{- $group := . }}
45---
56apiVersion : policy.open-cluster-management.io/v1
67kind : Policy
78metadata :
8- name : acm- hub-ca -policy
9+ name : hub-argo-ca-{{ .name }} -policy
910 annotations :
1011 argocd.argoproj.io/sync-options : SkipDryRunOnMissingResource=true
1112 argocd.argoproj.io/compare-options : IgnoreExtraneous
@@ -17,32 +18,21 @@ spec:
1718 apiVersion : policy.open-cluster-management.io/v1
1819 kind : ConfigurationPolicy
1920 metadata :
20- name : acm- hub-ca-config-policy
21+ name : hub-argo- ca-{{ .name }}-config
2122 spec :
2223 remediationAction : enforce
2324 severity : medium
2425 namespaceSelector :
2526 include :
2627 - default
2728 object-templates :
28- - complianceType : mustonlyhave
29- objectDefinition :
30- kind : Secret
31- apiVersion : v1
32- type : Opaque
33- metadata :
34- name : hub-ca
35- namespace : golang-external-secrets
36- data :
37- hub-kube-root-ca.crt : ' {{ `{{hub fromConfigMap "" "kube-root-ca.crt" "ca.crt" | base64enc hub}}` }}'
38- hub-openshift-service-ca.crt : ' {{ `{{hub fromConfigMap "" "openshift-service-ca.crt" "service-ca.crt" | base64enc hub}}` }}'
3929 - complianceType : mustonlyhave
4030 objectDefinition :
4131 kind : ConfigMap
4232 apiVersion : v1
4333 metadata :
4434 name : trusted-hub-bundle
45- namespace : imperative
35+ namespace : {{ $.Values.global.pattern }}-{{ .name }}
4636 data :
4737 hub-kube-root-ca.crt : |
4838 {{ `{{hub fromConfigMap "" "kube-root-ca.crt" "ca.crt" | autoindent hub}}` }}
@@ -52,39 +42,38 @@ spec:
5242apiVersion : policy.open-cluster-management.io/v1
5343kind : PlacementBinding
5444metadata :
55- name : acm- hub-ca-policy -placement-binding
45+ name : hub-argo- ca-{{ .name }} -placement-binding
5646 annotations :
5747 argocd.argoproj.io/sync-options : SkipDryRunOnMissingResource=true
5848placementRef :
59- name : acm- hub-ca-policy -placement
49+ name : hub-argo- ca-{{ .name }} -placement
6050 kind : PlacementRule
6151 apiGroup : apps.open-cluster-management.io
6252subjects :
63- - name : acm- hub-ca -policy
53+ - name : hub-argo-ca-{{ .name }} -policy
6454 kind : Policy
6555 apiGroup : policy.open-cluster-management.io
6656---
6757apiVersion : apps.open-cluster-management.io/v1
6858kind : PlacementRule
6959metadata :
70- name : acm- hub-ca-policy -placement
60+ name : hub-argo- ca-{{ .name }} -placement
7161 annotations :
7262 argocd.argoproj.io/sync-options : SkipDryRunOnMissingResource=true
7363spec :
7464 clusterConditions :
7565 - status : ' True'
7666 type : ManagedClusterConditionAvailable
77- clusterSelector :
78- matchExpressions :
79- - key : local-cluster
80- operator : NotIn
81- values :
82- - ' true'
67+ {{- include "acm.app.clusterSelector" (dict
68+ " clusterSelector" .clusterSelector
69+ " group" $group
70+ ) | nindent 2 }}
71+ {{- if (eq ((($.Values.global).secretStore).backend) "vault") }}
8372---
8473apiVersion : policy.open-cluster-management.io/v1
8574kind : Policy
8675metadata :
87- name : hub-argo-ca-openshift-gitops -policy
76+ name : {{ .name }}-acm-hub-ca -policy
8877 annotations :
8978 argocd.argoproj.io/sync-options : SkipDryRunOnMissingResource=true
9079 argocd.argoproj.io/compare-options : IgnoreExtraneous
@@ -96,21 +85,32 @@ spec:
9685 apiVersion : policy.open-cluster-management.io/v1
9786 kind : ConfigurationPolicy
9887 metadata :
99- name : hub-argo- ca-openshift-gitops- config
88+ name : {{ .name }}-acm-hub- ca-config-policy
10089 spec :
10190 remediationAction : enforce
10291 severity : medium
10392 namespaceSelector :
10493 include :
10594 - default
10695 object-templates :
96+ - complianceType : mustonlyhave
97+ objectDefinition :
98+ kind : Secret
99+ apiVersion : v1
100+ type : Opaque
101+ metadata :
102+ name : hub-ca
103+ namespace : golang-external-secrets
104+ data :
105+ hub-kube-root-ca.crt : ' {{ `{{hub fromConfigMap "" "kube-root-ca.crt" "ca.crt" | base64enc hub}}` }}'
106+ hub-openshift-service-ca.crt : ' {{ `{{hub fromConfigMap "" "openshift-service-ca.crt" "service-ca.crt" | base64enc hub}}` }}'
107107 - complianceType : mustonlyhave
108108 objectDefinition :
109109 kind : ConfigMap
110110 apiVersion : v1
111111 metadata :
112112 name : trusted-hub-bundle
113- namespace : openshift-gitops
113+ namespace : imperative
114114 data :
115115 hub-kube-root-ca.crt : |
116116 {{ `{{hub fromConfigMap "" "kube-root-ca.crt" "ca.crt" | autoindent hub}}` }}
@@ -120,43 +120,37 @@ spec:
120120apiVersion : policy.open-cluster-management.io/v1
121121kind : PlacementBinding
122122metadata :
123- name : hub-argo- ca-openshift-gitops- policy-binding
123+ name : {{ .name }}-acm-hub- ca-policy-placement -binding
124124 annotations :
125125 argocd.argoproj.io/sync-options : SkipDryRunOnMissingResource=true
126126placementRef :
127- name : hub-argo-ca-openshift-gitops -policy-placement
127+ name : {{ .name }}-acm-hub-ca -policy-placement
128128 kind : PlacementRule
129129 apiGroup : apps.open-cluster-management.io
130130subjects :
131- - name : hub-argo-ca-openshift-gitops -policy
131+ - name : {{ .name }}-acm-hub-ca -policy
132132 kind : Policy
133133 apiGroup : policy.open-cluster-management.io
134134---
135135apiVersion : apps.open-cluster-management.io/v1
136136kind : PlacementRule
137137metadata :
138- name : hub-argo-ca-openshift-gitops -policy-placement
138+ name : {{ .name }}-acm-hub-ca -policy-placement
139139 annotations :
140140 argocd.argoproj.io/sync-options : SkipDryRunOnMissingResource=true
141141spec :
142142 clusterConditions :
143143 - status : ' True'
144144 type : ManagedClusterConditionAvailable
145- clusterSelector :
146- matchExpressions :
147- - key : local-cluster
148- operator : NotIn
149- values :
150- - ' true'
151-
152- {{- end }}{{/* if (eq (((.Values.global).secretStore).backend) "vault") */}}
153- {{- range .Values.clusterGroup.managedClusterGroups }}
154- {{- $group := . }}
145+ {{- include "acm.app.clusterSelector" (dict
146+ " clusterSelector" .clusterSelector
147+ " group" $group
148+ ) | nindent 2 }}
155149---
156150apiVersion : policy.open-cluster-management.io/v1
157151kind : Policy
158152metadata :
159- name : hub-argo-ca- {{ .name }}-policy
153+ name : {{ .name }}-hub-argo-ca-gitops -policy
160154 annotations :
161155 argocd.argoproj.io/sync-options : SkipDryRunOnMissingResource=true
162156 argocd.argoproj.io/compare-options : IgnoreExtraneous
@@ -168,7 +162,7 @@ spec:
168162 apiVersion : policy.open-cluster-management.io/v1
169163 kind : ConfigurationPolicy
170164 metadata :
171- name : hub-argo-ca- {{ .name }}-config
165+ name : {{ .name }}-hub-argo-ca-gitops -config
172166 spec :
173167 remediationAction : enforce
174168 severity : medium
@@ -182,7 +176,7 @@ spec:
182176 apiVersion : v1
183177 metadata :
184178 name : trusted-hub-bundle
185- namespace : {{ $.Values.global.pattern }}-{{ .name }}
179+ namespace : openshift-gitops
186180 data :
187181 hub-kube-root-ca.crt : |
188182 {{ `{{hub fromConfigMap "" "kube-root-ca.crt" "ca.crt" | autoindent hub}}` }}
@@ -192,33 +186,33 @@ spec:
192186apiVersion : policy.open-cluster-management.io/v1
193187kind : PlacementBinding
194188metadata :
195- name : hub-argo-ca- {{ .name }}-placement -binding
189+ name : {{ .name }}-hub-argo-ca-gitops-policy -binding
196190 annotations :
197191 argocd.argoproj.io/sync-options : SkipDryRunOnMissingResource=true
198192placementRef :
199- name : hub-argo-ca- {{ .name }}-placement
193+ name : {{ .name }}-hub-argo-ca-gitops-policy -placement
200194 kind : PlacementRule
201195 apiGroup : apps.open-cluster-management.io
202196subjects :
203- - name : hub-argo-ca- {{ .name }}-policy
197+ - name : {{ .name }}-hub-argo-ca-gitops -policy
204198 kind : Policy
205199 apiGroup : policy.open-cluster-management.io
206200---
207201apiVersion : apps.open-cluster-management.io/v1
208202kind : PlacementRule
209203metadata :
210- name : hub-argo-ca- {{ .name }}-placement
204+ name : {{ .name }}-hub-argo-ca-gitops-policy -placement
211205 annotations :
212206 argocd.argoproj.io/sync-options : SkipDryRunOnMissingResource=true
213207spec :
214208 clusterConditions :
215209 - status : ' True'
216210 type : ManagedClusterConditionAvailable
217- clusterSelector :
218- matchExpressions :
219- - key : local-cluster
220- operator : NotIn
221- values :
222- - ' true '
211+ {{- include "acm.app. clusterSelector" (dict
212+ " clusterSelector " .clusterSelector
213+ " group " $group
214+ ) | nindent 2 }}
215+
216+ {{- end }}{{/* if (eq ((($.Values.global).secretStore).backend) "vault") */}}
223217{{- end }}{{/* range .Values.clusterGroup.managedClusterGroups */}}
224218{{- end }}{{/* isHubCluster */}}
0 commit comments