Skip to content

Commit 812631f

Browse files
dhaiducekopenshift-merge-bot[bot]
authored andcommitted
Make Placement the default
`PlacementRule` is deprecated ref: https://issues.redhat.com/browse/ACM-1286 Signed-off-by: Dale Haiducek <[email protected]>
1 parent a129c41 commit 812631f

24 files changed

+303
-234
lines changed

docs/policygenerator.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ set `placement.name` along with `placement.clusterSelector`. When the PlacementB
2323
this way, `placementBindingDefaults.name` must be specified so that the generator can create unique
2424
names for the bindings.
2525

26-
The PlacementRule kind in the `apps.open-cluster-management.io` API group is used by default if no
27-
placement is given. However, you can use the Placement kind in the
28-
`cluster.open-cluster-management.io` API group by specifying a Placement manifest in
29-
`placement.placementPath` or specifying labels in `placement.labelSelector`.
26+
The Placement kind in the `cluster.open-cluster-management.io` API group is used by default if no
27+
placement is given. However, you can use the deprecated PlacementRule kind in the
28+
`apps.open-cluster-management.io` API group by specifying a PlacementRule manifest in
29+
`placement.placementRulePath` or specifying labels in `placement.clusterSelector`.
3030

3131
## Policy expanders
3232

examples/input/placementrule.yaml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@ metadata:
66
name: placement-red-hat-cloud
77
namespace: my-policies
88
spec:
9-
clusterConditions:
10-
- status: "True"
11-
type: ManagedClusterConditionAvailable
129
clusterSelector:
1310
matchExpressions:
1411
- key: cloud

examples/policyGenerator-kustomize.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ policyDefaults:
88
consolidateManifests: false
99
# Use the name of an existing placement rule
1010
placement:
11-
placementRuleName: placement-red-hat-cloud
11+
placementName: placement-red-hat-cloud
1212
policies:
1313
- name: myapp
1414
manifests:

examples/policyGenerator.yaml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ policyDefaults:
1010
controls:
1111
- PR.DS-1 Data-at-rest
1212
namespace: my-policies
13-
# Use an existing placement rule so that placement bindings can be consolidated
13+
# Use an existing placement so that placement bindings can be consolidated
1414
placement:
15-
placementRulePath: input/placementrule.yaml
16-
# Example of using clusterSelectors to generate a placement rule
15+
placementPath: input/placement.yaml
16+
# Example of using labelSelector to generate a placement
1717
# placement:
18-
# clusterSelector:
18+
# labelSelector:
1919
# matchLabels:
2020
# cloud: red hat
2121
remediationAction: inform
@@ -75,10 +75,10 @@ policySets:
7575
policies:
7676
- pre-exists-kyverno-policy
7777
placement:
78-
placementRulePath: input/placementrule.yaml
78+
placementPath: input/placement.yaml
7979
- name: policyset-gatekeeper
8080
description: this is a gatekeeper policy set.
8181
placement:
82-
placementRulePath: input/placementrule.yaml
82+
placementPath: input/placement.yaml
8383
- name: policyset-iam
84-
description: this is a iam policy set.
84+
description: this is a iam policy set.

internal/plugin.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1141,7 +1141,7 @@ func (p *Plugin) assertValidConfig() error {
11411141
)
11421142
}
11431143

1144-
p.usingPlR = plCount.plc == 0
1144+
p.usingPlR = plCount.plr != 0
11451145

11461146
return nil
11471147
}

internal/plugin_test.go

Lines changed: 42 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func TestGenerate(t *testing.T) {
3939
}
4040

4141
p.PlacementBindingDefaults.Name = "my-placement-binding"
42-
p.PolicyDefaults.Placement.Name = "my-placement-rule"
42+
p.PolicyDefaults.Placement.Name = "my-placement"
4343
p.PolicyDefaults.Namespace = "my-policies"
4444
p.PolicyDefaults.MetadataComplianceType = "musthave"
4545
p.PolicyDefaults.PruneObjectBehavior = "DeleteAll"
@@ -154,24 +154,26 @@ spec:
154154
severity: low
155155
remediationAction: inform
156156
---
157-
apiVersion: apps.open-cluster-management.io/v1
158-
kind: PlacementRule
157+
apiVersion: cluster.open-cluster-management.io/v1beta1
158+
kind: Placement
159159
metadata:
160-
name: my-placement-rule
160+
name: my-placement
161161
namespace: my-policies
162162
spec:
163-
clusterSelector:
164-
matchExpressions: []
163+
predicates:
164+
- requiredClusterSelector:
165+
labelSelector:
166+
matchExpressions: []
165167
---
166168
apiVersion: policy.open-cluster-management.io/v1
167169
kind: PlacementBinding
168170
metadata:
169171
name: my-placement-binding
170172
namespace: my-policies
171173
placementRef:
172-
apiGroup: apps.open-cluster-management.io
173-
kind: PlacementRule
174-
name: my-placement-rule
174+
apiGroup: cluster.open-cluster-management.io
175+
kind: Placement
176+
name: my-placement
175177
subjects:
176178
- apiGroup: policy.open-cluster-management.io
177179
kind: Policy
@@ -747,32 +749,36 @@ spec:
747749
severity: low
748750
remediationAction: inform
749751
---
750-
apiVersion: apps.open-cluster-management.io/v1
751-
kind: PlacementRule
752+
apiVersion: cluster.open-cluster-management.io/v1beta1
753+
kind: Placement
752754
metadata:
753755
name: placement-policy-app-config
754756
namespace: my-policies
755757
spec:
756-
clusterSelector:
757-
matchExpressions: []
758+
predicates:
759+
- requiredClusterSelector:
760+
labelSelector:
761+
matchExpressions: []
758762
---
759-
apiVersion: apps.open-cluster-management.io/v1
760-
kind: PlacementRule
763+
apiVersion: cluster.open-cluster-management.io/v1beta1
764+
kind: Placement
761765
metadata:
762766
name: placement-policy-app-config2
763767
namespace: my-policies
764768
spec:
765-
clusterSelector:
766-
matchExpressions: []
769+
predicates:
770+
- requiredClusterSelector:
771+
labelSelector:
772+
matchExpressions: []
767773
---
768774
apiVersion: policy.open-cluster-management.io/v1
769775
kind: PlacementBinding
770776
metadata:
771777
name: binding-policy-app-config
772778
namespace: my-policies
773779
placementRef:
774-
apiGroup: apps.open-cluster-management.io
775-
kind: PlacementRule
780+
apiGroup: cluster.open-cluster-management.io
781+
kind: Placement
776782
name: placement-policy-app-config
777783
subjects:
778784
- apiGroup: policy.open-cluster-management.io
@@ -785,8 +791,8 @@ metadata:
785791
name: binding-policy-app-config2
786792
namespace: my-policies
787793
placementRef:
788-
apiGroup: apps.open-cluster-management.io
789-
kind: PlacementRule
794+
apiGroup: cluster.open-cluster-management.io
795+
kind: Placement
790796
name: placement-policy-app-config2
791797
subjects:
792798
- apiGroup: policy.open-cluster-management.io
@@ -1836,8 +1842,10 @@ kind: PlacementRule
18361842
metadata:
18371843
namespace: my-policies
18381844
spec:
1839-
clusterSelector:
1840-
matchExpressions: []
1845+
predicates:
1846+
- requiredClusterSelector:
1847+
labelSelector:
1848+
matchExpressions: []
18411849
`
18421850
p, plrPath := plPathHelper(t, plrYAML, true)
18431851

@@ -2387,7 +2395,7 @@ func TestGeneratePolicySetsWithPlacement(t *testing.T) {
23872395
}
23882396

23892397
p.PlacementBindingDefaults.Name = "my-placement-binding"
2390-
p.PolicyDefaults.Placement.Name = "my-placement-rule"
2398+
p.PolicyDefaults.Placement.Name = "my-placement"
23912399
p.PolicyDefaults.Namespace = "my-policies"
23922400

23932401
policyConf := types.PolicyConfig{
@@ -2452,24 +2460,26 @@ spec:
24522460
policies:
24532461
- policy-app-config
24542462
---
2455-
apiVersion: apps.open-cluster-management.io/v1
2456-
kind: PlacementRule
2463+
apiVersion: cluster.open-cluster-management.io/v1beta1
2464+
kind: Placement
24572465
metadata:
2458-
name: my-placement-rule
2466+
name: my-placement
24592467
namespace: my-policies
24602468
spec:
2461-
clusterSelector:
2462-
matchExpressions: []
2469+
predicates:
2470+
- requiredClusterSelector:
2471+
labelSelector:
2472+
matchExpressions: []
24632473
---
24642474
apiVersion: policy.open-cluster-management.io/v1
24652475
kind: PlacementBinding
24662476
metadata:
24672477
name: my-placement-binding
24682478
namespace: my-policies
24692479
placementRef:
2470-
apiGroup: apps.open-cluster-management.io
2471-
kind: PlacementRule
2472-
name: my-placement-rule
2480+
apiGroup: cluster.open-cluster-management.io
2481+
kind: Placement
2482+
name: my-placement
24732483
subjects:
24742484
- apiGroup: policy.open-cluster-management.io
24752485
kind: PolicySet

internal/testdata/ordering/default-deps-propagated.yaml

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -73,32 +73,36 @@ spec:
7373
severity: low
7474
remediationAction: inform
7575
---
76-
apiVersion: apps.open-cluster-management.io/v1
77-
kind: PlacementRule
76+
apiVersion: cluster.open-cluster-management.io/v1beta1
77+
kind: Placement
7878
metadata:
7979
name: placement-one
8080
namespace: my-policies
8181
spec:
82-
clusterSelector:
83-
matchExpressions: []
82+
predicates:
83+
- requiredClusterSelector:
84+
labelSelector:
85+
matchExpressions: []
8486
---
85-
apiVersion: apps.open-cluster-management.io/v1
86-
kind: PlacementRule
87+
apiVersion: cluster.open-cluster-management.io/v1beta1
88+
kind: Placement
8789
metadata:
8890
name: placement-two
8991
namespace: my-policies
9092
spec:
91-
clusterSelector:
92-
matchExpressions: []
93+
predicates:
94+
- requiredClusterSelector:
95+
labelSelector:
96+
matchExpressions: []
9397
---
9498
apiVersion: policy.open-cluster-management.io/v1
9599
kind: PlacementBinding
96100
metadata:
97101
name: binding-one
98102
namespace: my-policies
99103
placementRef:
100-
apiGroup: apps.open-cluster-management.io
101-
kind: PlacementRule
104+
apiGroup: cluster.open-cluster-management.io
105+
kind: Placement
102106
name: placement-one
103107
subjects:
104108
- apiGroup: policy.open-cluster-management.io
@@ -111,8 +115,8 @@ metadata:
111115
name: binding-two
112116
namespace: my-policies
113117
placementRef:
114-
apiGroup: apps.open-cluster-management.io
115-
kind: PlacementRule
118+
apiGroup: cluster.open-cluster-management.io
119+
kind: Placement
116120
name: placement-two
117121
subjects:
118122
- apiGroup: policy.open-cluster-management.io

internal/testdata/ordering/default-extradeps-consolidated.yaml

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -81,32 +81,36 @@ spec:
8181
severity: low
8282
remediationAction: inform
8383
---
84-
apiVersion: apps.open-cluster-management.io/v1
85-
kind: PlacementRule
84+
apiVersion: cluster.open-cluster-management.io/v1beta1
85+
kind: Placement
8686
metadata:
8787
name: placement-one
8888
namespace: my-policies
8989
spec:
90-
clusterSelector:
91-
matchExpressions: []
90+
predicates:
91+
- requiredClusterSelector:
92+
labelSelector:
93+
matchExpressions: []
9294
---
93-
apiVersion: apps.open-cluster-management.io/v1
94-
kind: PlacementRule
95+
apiVersion: cluster.open-cluster-management.io/v1beta1
96+
kind: Placement
9597
metadata:
9698
name: placement-two
9799
namespace: my-policies
98100
spec:
99-
clusterSelector:
100-
matchExpressions: []
101+
predicates:
102+
- requiredClusterSelector:
103+
labelSelector:
104+
matchExpressions: []
101105
---
102106
apiVersion: policy.open-cluster-management.io/v1
103107
kind: PlacementBinding
104108
metadata:
105109
name: binding-one
106110
namespace: my-policies
107111
placementRef:
108-
apiGroup: apps.open-cluster-management.io
109-
kind: PlacementRule
112+
apiGroup: cluster.open-cluster-management.io
113+
kind: Placement
110114
name: placement-one
111115
subjects:
112116
- apiGroup: policy.open-cluster-management.io
@@ -119,8 +123,8 @@ metadata:
119123
name: binding-two
120124
namespace: my-policies
121125
placementRef:
122-
apiGroup: apps.open-cluster-management.io
123-
kind: PlacementRule
126+
apiGroup: cluster.open-cluster-management.io
127+
kind: Placement
124128
name: placement-two
125129
subjects:
126130
- apiGroup: policy.open-cluster-management.io

0 commit comments

Comments
 (0)