Skip to content

Commit 7532f1c

Browse files
JustinKuliopenshift-merge-robot
authored andcommitted
Add policy ordering tests
I wanted (basically) end to end tests for the ordering, since the settings can affect multiple policies and manifests. These tests take the generator config inline as YAML, and compare the output of the plugin with a desired file. It's slightly repetitive, but I think it's easier to read and write. Refs: - stolostron/backlog#26183 Signed-off-by: Justin Kulikauskas <[email protected]>
1 parent 8763934 commit 7532f1c

17 files changed

+2278
-0
lines changed

internal/ordering_test.go

Lines changed: 653 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
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/standards: NIST SP 800-53
9+
name: one
10+
namespace: my-policies
11+
spec:
12+
disabled: false
13+
dependencies:
14+
- apiVersion: policy.open-cluster-management.io/v1
15+
compliance: Compliant
16+
kind: Policy
17+
name: foo
18+
namespace: my-policies
19+
policy-templates:
20+
- objectDefinition:
21+
apiVersion: policy.open-cluster-management.io/v1
22+
kind: ConfigurationPolicy
23+
metadata:
24+
name: one
25+
spec:
26+
object-templates:
27+
- complianceType: musthave
28+
objectDefinition:
29+
apiVersion: v1
30+
data:
31+
game.properties: enemies=potato
32+
kind: ConfigMap
33+
metadata:
34+
name: my-configmap
35+
remediationAction: inform
36+
severity: low
37+
remediationAction: inform
38+
---
39+
apiVersion: policy.open-cluster-management.io/v1
40+
kind: Policy
41+
metadata:
42+
annotations:
43+
policy.open-cluster-management.io/categories: CM Configuration Management
44+
policy.open-cluster-management.io/controls: CM-2 Baseline Configuration
45+
policy.open-cluster-management.io/standards: NIST SP 800-53
46+
name: two
47+
namespace: my-policies
48+
spec:
49+
disabled: false
50+
dependencies:
51+
- apiVersion: policy.open-cluster-management.io/v1
52+
compliance: Compliant
53+
kind: Policy
54+
name: foo
55+
namespace: my-policies
56+
policy-templates:
57+
- objectDefinition:
58+
apiVersion: policy.open-cluster-management.io/v1
59+
kind: ConfigurationPolicy
60+
metadata:
61+
name: two
62+
spec:
63+
object-templates:
64+
- complianceType: musthave
65+
objectDefinition:
66+
apiVersion: v1
67+
data:
68+
game.properties: enemies=potato
69+
kind: ConfigMap
70+
metadata:
71+
name: my-configmap
72+
remediationAction: inform
73+
severity: low
74+
remediationAction: inform
75+
---
76+
apiVersion: apps.open-cluster-management.io/v1
77+
kind: PlacementRule
78+
metadata:
79+
name: placement-one
80+
namespace: my-policies
81+
spec:
82+
clusterSelector:
83+
matchExpressions: []
84+
---
85+
apiVersion: apps.open-cluster-management.io/v1
86+
kind: PlacementRule
87+
metadata:
88+
name: placement-two
89+
namespace: my-policies
90+
spec:
91+
clusterSelector:
92+
matchExpressions: []
93+
---
94+
apiVersion: policy.open-cluster-management.io/v1
95+
kind: PlacementBinding
96+
metadata:
97+
name: binding-one
98+
namespace: my-policies
99+
placementRef:
100+
apiGroup: apps.open-cluster-management.io
101+
kind: PlacementRule
102+
name: placement-one
103+
subjects:
104+
- apiGroup: policy.open-cluster-management.io
105+
kind: Policy
106+
name: one
107+
---
108+
apiVersion: policy.open-cluster-management.io/v1
109+
kind: PlacementBinding
110+
metadata:
111+
name: binding-two
112+
namespace: my-policies
113+
placementRef:
114+
apiGroup: apps.open-cluster-management.io
115+
kind: PlacementRule
116+
name: placement-two
117+
subjects:
118+
- apiGroup: policy.open-cluster-management.io
119+
kind: Policy
120+
name: two
Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
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/standards: NIST SP 800-53
9+
name: one
10+
namespace: my-policies
11+
spec:
12+
disabled: false
13+
policy-templates:
14+
- extraDependencies:
15+
- apiVersion: policy.open-cluster-management.io/v1
16+
compliance: Compliant
17+
kind: Policy
18+
name: manifestextra
19+
namespace: my-policies
20+
objectDefinition:
21+
apiVersion: policy.open-cluster-management.io/v1
22+
kind: ConfigurationPolicy
23+
metadata:
24+
name: one
25+
spec:
26+
object-templates:
27+
- complianceType: musthave
28+
objectDefinition:
29+
apiVersion: v1
30+
data:
31+
game.properties: enemies=potato
32+
kind: ConfigMap
33+
metadata:
34+
name: my-configmap
35+
remediationAction: inform
36+
severity: low
37+
- extraDependencies:
38+
- apiVersion: policy.open-cluster-management.io/v1
39+
compliance: Compliant
40+
kind: Policy
41+
name: defaultextradep
42+
namespace: my-policies
43+
objectDefinition:
44+
apiVersion: policy.open-cluster-management.io/v1
45+
kind: ConfigurationPolicy
46+
metadata:
47+
name: one2
48+
spec:
49+
object-templates:
50+
- complianceType: musthave
51+
objectDefinition:
52+
apiVersion: v1
53+
data:
54+
game.properties: enemies=potato
55+
kind: ConfigMap
56+
metadata:
57+
name: my-configmap
58+
remediationAction: inform
59+
severity: low
60+
remediationAction: inform
61+
---
62+
apiVersion: policy.open-cluster-management.io/v1
63+
kind: Policy
64+
metadata:
65+
annotations:
66+
policy.open-cluster-management.io/categories: CM Configuration Management
67+
policy.open-cluster-management.io/controls: CM-2 Baseline Configuration
68+
policy.open-cluster-management.io/standards: NIST SP 800-53
69+
name: two
70+
namespace: my-policies
71+
spec:
72+
disabled: false
73+
policy-templates:
74+
- extraDependencies:
75+
- apiVersion: policy.open-cluster-management.io/v1
76+
compliance: Compliant
77+
kind: Policy
78+
name: policyextra
79+
namespace: my-policies
80+
objectDefinition:
81+
apiVersion: policy.open-cluster-management.io/v1
82+
kind: ConfigurationPolicy
83+
metadata:
84+
name: two
85+
spec:
86+
object-templates:
87+
- complianceType: musthave
88+
objectDefinition:
89+
apiVersion: v1
90+
data:
91+
game.properties: enemies=potato
92+
kind: ConfigMap
93+
metadata:
94+
name: my-configmap
95+
remediationAction: inform
96+
severity: low
97+
remediationAction: inform
98+
---
99+
apiVersion: apps.open-cluster-management.io/v1
100+
kind: PlacementRule
101+
metadata:
102+
name: placement-one
103+
namespace: my-policies
104+
spec:
105+
clusterSelector:
106+
matchExpressions: []
107+
---
108+
apiVersion: apps.open-cluster-management.io/v1
109+
kind: PlacementRule
110+
metadata:
111+
name: placement-two
112+
namespace: my-policies
113+
spec:
114+
clusterSelector:
115+
matchExpressions: []
116+
---
117+
apiVersion: policy.open-cluster-management.io/v1
118+
kind: PlacementBinding
119+
metadata:
120+
name: binding-one
121+
namespace: my-policies
122+
placementRef:
123+
apiGroup: apps.open-cluster-management.io
124+
kind: PlacementRule
125+
name: placement-one
126+
subjects:
127+
- apiGroup: policy.open-cluster-management.io
128+
kind: Policy
129+
name: one
130+
---
131+
apiVersion: policy.open-cluster-management.io/v1
132+
kind: PlacementBinding
133+
metadata:
134+
name: binding-two
135+
namespace: my-policies
136+
placementRef:
137+
apiGroup: apps.open-cluster-management.io
138+
kind: PlacementRule
139+
name: placement-two
140+
subjects:
141+
- apiGroup: policy.open-cluster-management.io
142+
kind: Policy
143+
name: two

0 commit comments

Comments
 (0)