Skip to content

Commit 0fe7744

Browse files
Fix the bug where raw is abead of obj-temp
When raw-template manifest is ahead of obj-temp manifest, the numbering of policyName doesn't work properly Signed-off-by: yiraeChristineKim <[email protected]>
1 parent dd1f91f commit 0fe7744

File tree

5 files changed

+357
-135
lines changed

5 files changed

+357
-135
lines changed

internal/ordering_test.go

Lines changed: 53 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -252,12 +252,12 @@ policies:
252252
remediationAction: inform
253253
name: bird
254254
extraDependencies:
255-
- name: tiger2
256-
kind: ConfigurationPolicy
257-
compliance: "Compliant"
258-
- name: lion2
259-
kind: ConfigurationPolicy
260-
compliance: "Compliant"
255+
- name: tiger2
256+
kind: ConfigurationPolicy
257+
compliance: "Compliant"
258+
- name: lion2
259+
kind: ConfigurationPolicy
260+
compliance: "Compliant"
261261
`,
262262
wantFile: "testdata/ordering/manifest-level-name.yaml",
263263
wantErr: "",
@@ -283,7 +283,7 @@ policies:
283283
wantFile: "testdata/ordering/manifest-level-name-raw-consolidate-false.yaml",
284284
wantErr: "",
285285
},
286-
"complicated raw policies with consolidateManifests true": {
286+
"consolidateManifests true and objTemplate with raw": {
287287
tmpDir: tmpDir,
288288
generator: `
289289
apiVersion: policy.open-cluster-management.io/v1
@@ -297,16 +297,58 @@ policyDefaults:
297297
policies:
298298
- name: one
299299
manifests:
300+
- path: {{printf "%v/%v" .Dir "object-templates-raw.yaml"}}
301+
name: bird
300302
- path: {{printf "%v/%v" .Dir "configmap.yaml"}}
301303
name: tiger
302-
- path: {{printf "%v/%v" .Dir "configmap.yaml"}}
303-
name: rabbit
304+
`,
305+
wantFile: "testdata/ordering/manifest-level-name-raw-consolidate-true.yaml",
306+
wantErr: "",
307+
},
308+
"consolidateManifests true and objTemplate with empty name": {
309+
tmpDir: tmpDir,
310+
generator: `
311+
apiVersion: policy.open-cluster-management.io/v1
312+
kind: PolicyGenerator
313+
metadata:
314+
name: test
315+
policyDefaults:
316+
orderPolicies: true
317+
namespace: my-policies
318+
consolidateManifests: true
319+
policies:
320+
- name: one
321+
manifests:
304322
- path: {{printf "%v/%v" .Dir "object-templates-raw.yaml"}}
305-
name: bird
306323
- path: {{printf "%v/%v" .Dir "object-templates-raw.yaml"}}
324+
name: bird
325+
- path: {{printf "%v/%v" .Dir "configmap.yaml"}}
326+
- path: {{printf "%v/%v" .Dir "configmap.yaml"}}
327+
`,
328+
wantFile: "testdata/ordering/manifest-level-name-raw-consolidate-true-empty-name.yaml",
329+
wantErr: "",
330+
},
331+
"consolidateManifests true and objTemplate with name": {
332+
tmpDir: tmpDir,
333+
generator: `
334+
apiVersion: policy.open-cluster-management.io/v1
335+
kind: PolicyGenerator
336+
metadata:
337+
name: test
338+
policyDefaults:
339+
orderPolicies: true
340+
namespace: my-policies
341+
consolidateManifests: true
342+
policies:
343+
- name: one
344+
manifests:
307345
- path: {{printf "%v/%v" .Dir "object-templates-raw.yaml"}}
346+
name: bird
347+
- path: {{printf "%v/%v" .Dir "configmap.yaml"}}
348+
- path: {{printf "%v/%v" .Dir "configmap.yaml"}}
349+
name: tiger
308350
`,
309-
wantFile: "testdata/ordering/manifest-level-name-raw-consolidate-true.yaml",
351+
wantFile: "testdata/ordering/manifest-level-name-raw-consolidate-true-with-name.yaml",
310352
wantErr: "",
311353
},
312354
}
Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
---
2+
apiVersion: policy.open-cluster-management.io/v1
3+
kind: Policy
4+
metadata:
5+
annotations:
6+
policy.open-cluster-management.io/categories: CM Configuration Management
7+
policy.open-cluster-management.io/controls: CM-2 Baseline Configuration
8+
policy.open-cluster-management.io/description: ""
9+
policy.open-cluster-management.io/standards: NIST SP 800-53
10+
name: one
11+
namespace: my-policies
12+
spec:
13+
disabled: false
14+
policy-templates:
15+
- objectDefinition:
16+
apiVersion: policy.open-cluster-management.io/v1
17+
kind: ConfigurationPolicy
18+
metadata:
19+
name: one
20+
spec:
21+
object-templates-raw: |-
22+
- complianceType: musthave
23+
objectDefinition:
24+
apiVersion: v1
25+
kind: ConfigMap
26+
metadata:
27+
name: example
28+
namespace: default
29+
data:
30+
extraData: data
31+
remediationAction: inform
32+
severity: low
33+
- objectDefinition:
34+
apiVersion: policy.open-cluster-management.io/v1
35+
kind: ConfigurationPolicy
36+
metadata:
37+
name: one2
38+
spec:
39+
object-templates-raw: |-
40+
- complianceType: musthave
41+
objectDefinition:
42+
apiVersion: v1
43+
kind: ConfigMap
44+
metadata:
45+
name: example
46+
namespace: default
47+
data:
48+
extraData: data
49+
remediationAction: inform
50+
severity: low
51+
- objectDefinition:
52+
apiVersion: policy.open-cluster-management.io/v1
53+
kind: ConfigurationPolicy
54+
metadata:
55+
name: bird
56+
spec:
57+
object-templates-raw: |-
58+
- complianceType: musthave
59+
objectDefinition:
60+
apiVersion: v1
61+
kind: ConfigMap
62+
metadata:
63+
name: example
64+
namespace: default
65+
data:
66+
extraData: data
67+
remediationAction: inform
68+
severity: low
69+
- objectDefinition:
70+
apiVersion: policy.open-cluster-management.io/v1
71+
kind: ConfigurationPolicy
72+
metadata:
73+
name: bird2
74+
spec:
75+
object-templates-raw: |-
76+
- complianceType: musthave
77+
objectDefinition:
78+
apiVersion: v1
79+
kind: ConfigMap
80+
metadata:
81+
name: example
82+
namespace: default
83+
data:
84+
extraData: data
85+
remediationAction: inform
86+
severity: low
87+
- objectDefinition:
88+
apiVersion: policy.open-cluster-management.io/v1
89+
kind: ConfigurationPolicy
90+
metadata:
91+
name: one3
92+
spec:
93+
object-templates:
94+
- complianceType: musthave
95+
objectDefinition:
96+
apiVersion: v1
97+
data:
98+
game.properties: enemies=potato
99+
kind: ConfigMap
100+
metadata:
101+
name: my-configmap
102+
- complianceType: musthave
103+
objectDefinition:
104+
apiVersion: v1
105+
data:
106+
game.properties: enemies=cabbage
107+
kind: ConfigMap
108+
metadata:
109+
name: config-2
110+
- complianceType: musthave
111+
objectDefinition:
112+
apiVersion: v1
113+
data:
114+
game.properties: enemies=potato
115+
kind: ConfigMap
116+
metadata:
117+
name: my-configmap
118+
- complianceType: musthave
119+
objectDefinition:
120+
apiVersion: v1
121+
data:
122+
game.properties: enemies=cabbage
123+
kind: ConfigMap
124+
metadata:
125+
name: config-2
126+
remediationAction: inform
127+
severity: low
128+
remediationAction: inform
129+
---
130+
apiVersion: cluster.open-cluster-management.io/v1beta1
131+
kind: Placement
132+
metadata:
133+
name: placement-one
134+
namespace: my-policies
135+
spec:
136+
predicates:
137+
- requiredClusterSelector:
138+
labelSelector:
139+
matchExpressions: []
140+
tolerations:
141+
- key: cluster.open-cluster-management.io/unavailable
142+
operator: Exists
143+
- key: cluster.open-cluster-management.io/unreachable
144+
operator: Exists
145+
---
146+
apiVersion: policy.open-cluster-management.io/v1
147+
kind: PlacementBinding
148+
metadata:
149+
name: binding-one
150+
namespace: my-policies
151+
placementRef:
152+
apiGroup: cluster.open-cluster-management.io
153+
kind: Placement
154+
name: placement-one
155+
subjects:
156+
- apiGroup: policy.open-cluster-management.io
157+
kind: Policy
158+
name: one
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
---
2+
apiVersion: policy.open-cluster-management.io/v1
3+
kind: Policy
4+
metadata:
5+
annotations:
6+
policy.open-cluster-management.io/categories: CM Configuration Management
7+
policy.open-cluster-management.io/controls: CM-2 Baseline Configuration
8+
policy.open-cluster-management.io/description: ""
9+
policy.open-cluster-management.io/standards: NIST SP 800-53
10+
name: one
11+
namespace: my-policies
12+
spec:
13+
disabled: false
14+
policy-templates:
15+
- objectDefinition:
16+
apiVersion: policy.open-cluster-management.io/v1
17+
kind: ConfigurationPolicy
18+
metadata:
19+
name: bird
20+
spec:
21+
object-templates-raw: |-
22+
- complianceType: musthave
23+
objectDefinition:
24+
apiVersion: v1
25+
kind: ConfigMap
26+
metadata:
27+
name: example
28+
namespace: default
29+
data:
30+
extraData: data
31+
remediationAction: inform
32+
severity: low
33+
- objectDefinition:
34+
apiVersion: policy.open-cluster-management.io/v1
35+
kind: ConfigurationPolicy
36+
metadata:
37+
name: bird2
38+
spec:
39+
object-templates-raw: |-
40+
- complianceType: musthave
41+
objectDefinition:
42+
apiVersion: v1
43+
kind: ConfigMap
44+
metadata:
45+
name: example
46+
namespace: default
47+
data:
48+
extraData: data
49+
remediationAction: inform
50+
severity: low
51+
- objectDefinition:
52+
apiVersion: policy.open-cluster-management.io/v1
53+
kind: ConfigurationPolicy
54+
metadata:
55+
name: tiger
56+
spec:
57+
object-templates:
58+
- complianceType: musthave
59+
objectDefinition:
60+
apiVersion: v1
61+
data:
62+
game.properties: enemies=potato
63+
kind: ConfigMap
64+
metadata:
65+
name: my-configmap
66+
- complianceType: musthave
67+
objectDefinition:
68+
apiVersion: v1
69+
data:
70+
game.properties: enemies=cabbage
71+
kind: ConfigMap
72+
metadata:
73+
name: config-2
74+
- complianceType: musthave
75+
objectDefinition:
76+
apiVersion: v1
77+
data:
78+
game.properties: enemies=potato
79+
kind: ConfigMap
80+
metadata:
81+
name: my-configmap
82+
- complianceType: musthave
83+
objectDefinition:
84+
apiVersion: v1
85+
data:
86+
game.properties: enemies=cabbage
87+
kind: ConfigMap
88+
metadata:
89+
name: config-2
90+
remediationAction: inform
91+
severity: low
92+
remediationAction: inform
93+
---
94+
apiVersion: cluster.open-cluster-management.io/v1beta1
95+
kind: Placement
96+
metadata:
97+
name: placement-one
98+
namespace: my-policies
99+
spec:
100+
predicates:
101+
- requiredClusterSelector:
102+
labelSelector:
103+
matchExpressions: []
104+
tolerations:
105+
- key: cluster.open-cluster-management.io/unavailable
106+
operator: Exists
107+
- key: cluster.open-cluster-management.io/unreachable
108+
operator: Exists
109+
---
110+
apiVersion: policy.open-cluster-management.io/v1
111+
kind: PlacementBinding
112+
metadata:
113+
name: binding-one
114+
namespace: my-policies
115+
placementRef:
116+
apiGroup: cluster.open-cluster-management.io
117+
kind: Placement
118+
name: placement-one
119+
subjects:
120+
- apiGroup: policy.open-cluster-management.io
121+
kind: Policy
122+
name: one

0 commit comments

Comments
 (0)