Skip to content

Commit 703cc70

Browse files
authored
Merge pull request #11106 from muraee/fix-finalizer-rbac
🐛 re-add /finalizers subresource RBAC
2 parents 11dd018 + 1fbc138 commit 703cc70

File tree

20 files changed

+44
-16
lines changed

20 files changed

+44
-16
lines changed

bootstrap/kubeadm/config/rbac/role.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ rules:
3333
- bootstrap.cluster.x-k8s.io
3434
resources:
3535
- kubeadmconfigs
36+
- kubeadmconfigs/finalizers
3637
- kubeadmconfigs/status
3738
verbs:
3839
- create

bootstrap/kubeadm/internal/controllers/kubeadmconfig_controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ type InitLocker interface {
7474
Unlock(ctx context.Context, cluster *clusterv1.Cluster) bool
7575
}
7676

77-
// +kubebuilder:rbac:groups=bootstrap.cluster.x-k8s.io,resources=kubeadmconfigs;kubeadmconfigs/status,verbs=get;list;watch;create;update;patch;delete
77+
// +kubebuilder:rbac:groups=bootstrap.cluster.x-k8s.io,resources=kubeadmconfigs;kubeadmconfigs/status;kubeadmconfigs/finalizers,verbs=get;list;watch;create;update;patch;delete
7878
// +kubebuilder:rbac:groups=cluster.x-k8s.io,resources=clusters;clusters/status;machinesets;machines;machines/status;machinepools;machinepools/status,verbs=get;list;watch
7979
// +kubebuilder:rbac:groups="",resources=secrets;configmaps,verbs=get;list;watch;create;update;patch;delete
8080
// +kubebuilder:rbac:groups=core,resources=events,verbs=create;patch

config/rbac/role.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ rules:
1515
- apiGroups:
1616
- addons.cluster.x-k8s.io
1717
resources:
18+
- clusterresourcesets/finalizers
1819
- clusterresourcesets/status
1920
verbs:
2021
- get
@@ -61,7 +62,9 @@ rules:
6162
- clusterclasses
6263
- clusterclasses/status
6364
- clusters
65+
- clusters/finalizers
6466
- clusters/status
67+
- machinehealthchecks/finalizers
6568
- machinehealthchecks/status
6669
verbs:
6770
- get
@@ -73,13 +76,17 @@ rules:
7376
- cluster.x-k8s.io
7477
resources:
7578
- machinedeployments
79+
- machinedeployments/finalizers
7680
- machinedeployments/status
7781
- machinehealthchecks
7882
- machinepools
83+
- machinepools/finalizers
7984
- machinepools/status
8085
- machines
86+
- machines/finalizers
8187
- machines/status
8288
- machinesets
89+
- machinesets/finalizers
8390
- machinesets/status
8491
verbs:
8592
- create

exp/addons/internal/controllers/clusterresourceset_controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ var ErrSecretTypeNotSupported = errors.New("unsupported secret type")
5656
// +kubebuilder:rbac:groups=core,resources=secrets,verbs=get;list;watch;patch
5757
// +kubebuilder:rbac:groups=core,resources=configmaps,verbs=get;list;watch;patch;update
5858
// +kubebuilder:rbac:groups=addons.cluster.x-k8s.io,resources=*,verbs=get;list;watch;create;update;patch;delete
59-
// +kubebuilder:rbac:groups=addons.cluster.x-k8s.io,resources=clusterresourcesets/status,verbs=get;update;patch
59+
// +kubebuilder:rbac:groups=addons.cluster.x-k8s.io,resources=clusterresourcesets/status;clusterresourcesets/finalizers,verbs=get;update;patch
6060

6161
// ClusterResourceSetReconciler reconciles a ClusterResourceSet object.
6262
type ClusterResourceSetReconciler struct {

exp/internal/controllers/machinepool_controller.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,13 @@ import (
5050
"sigs.k8s.io/cluster-api/util/predicates"
5151
)
5252

53+
// Update permissions on /finalizers subresrouce is required on management clusters with 'OwnerReferencesPermissionEnforcement' plugin enabled.
54+
// See: https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement
55+
//
5356
// +kubebuilder:rbac:groups=core,resources=events,verbs=create;patch
5457
// +kubebuilder:rbac:groups=core,resources=secrets,verbs=get;list;watch
5558
// +kubebuilder:rbac:groups=infrastructure.cluster.x-k8s.io;bootstrap.cluster.x-k8s.io,resources=*,verbs=get;list;watch;create;update;patch;delete
56-
// +kubebuilder:rbac:groups=cluster.x-k8s.io,resources=machinepools;machinepools/status,verbs=get;list;watch;create;update;patch;delete
59+
// +kubebuilder:rbac:groups=cluster.x-k8s.io,resources=machinepools;machinepools/status;machinepools/finalizers,verbs=get;list;watch;create;update;patch;delete
5760

5861
var (
5962
// machinePoolKind contains the schema.GroupVersionKind for the MachinePool type.

internal/controllers/cluster/cluster_controller.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,13 @@ const (
5858
deleteRequeueAfter = 5 * time.Second
5959
)
6060

61+
// Update permissions on /finalizers subresrouce is required on management clusters with 'OwnerReferencesPermissionEnforcement' plugin enabled.
62+
// See: https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement
63+
//
6164
// +kubebuilder:rbac:groups=core,resources=events,verbs=create;patch
6265
// +kubebuilder:rbac:groups=core,resources=secrets,verbs=get;list;watch;create;patch;update
6366
// +kubebuilder:rbac:groups=infrastructure.cluster.x-k8s.io;bootstrap.cluster.x-k8s.io;controlplane.cluster.x-k8s.io,resources=*,verbs=get;list;watch;create;update;patch;delete
64-
// +kubebuilder:rbac:groups=cluster.x-k8s.io,resources=clusters;clusters/status,verbs=get;list;watch;update;patch
67+
// +kubebuilder:rbac:groups=cluster.x-k8s.io,resources=clusters;clusters/status;clusters/finalizers,verbs=get;list;watch;update;patch
6568
// +kubebuilder:rbac:groups=apiextensions.k8s.io,resources=customresourcedefinitions,verbs=get;list;watch
6669

6770
// Reconciler reconciles a Cluster object.

internal/controllers/machine/machine_controller.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,13 @@ var (
6565
errControlPlaneIsBeingDeleted = errors.New("control plane is being deleted")
6666
)
6767

68+
// Update permissions on /finalizers subresrouce is required on management clusters with 'OwnerReferencesPermissionEnforcement' plugin enabled.
69+
// See: https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement
70+
//
6871
// +kubebuilder:rbac:groups=core,resources=events,verbs=create;patch
6972
// +kubebuilder:rbac:groups=core,resources=secrets,verbs=get;list;watch
7073
// +kubebuilder:rbac:groups=infrastructure.cluster.x-k8s.io;bootstrap.cluster.x-k8s.io,resources=*,verbs=get;list;watch;create;update;patch;delete
71-
// +kubebuilder:rbac:groups=cluster.x-k8s.io,resources=machines;machines/status,verbs=get;list;watch;create;update;patch;delete
74+
// +kubebuilder:rbac:groups=cluster.x-k8s.io,resources=machines;machines/status;machines/finalizers,verbs=get;list;watch;create;update;patch;delete
7275
// +kubebuilder:rbac:groups=apiextensions.k8s.io,resources=customresourcedefinitions,verbs=get;list;watch
7376

7477
// Reconciler reconciles a Machine object.

internal/controllers/machinedeployment/machinedeployment_controller.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,13 @@ var (
5555
// in the MachineDeployment controller.
5656
const machineDeploymentManagerName = "capi-machinedeployment"
5757

58+
// Update permissions on /finalizers subresrouce is required on management clusters with 'OwnerReferencesPermissionEnforcement' plugin enabled.
59+
// See: https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement
60+
//
5861
// +kubebuilder:rbac:groups=core,resources=events,verbs=create;patch
5962
// +kubebuilder:rbac:groups=core,resources=secrets,verbs=get;list;watch
6063
// +kubebuilder:rbac:groups=infrastructure.cluster.x-k8s.io;bootstrap.cluster.x-k8s.io,resources=*,verbs=get;list;watch;create;update;patch;delete
61-
// +kubebuilder:rbac:groups=cluster.x-k8s.io,resources=machinedeployments;machinedeployments/status,verbs=get;list;watch;create;update;patch;delete
64+
// +kubebuilder:rbac:groups=cluster.x-k8s.io,resources=machinedeployments;machinedeployments/status;machinedeployments/finalizers,verbs=get;list;watch;create;update;patch;delete
6265

6366
// Reconciler reconciles a MachineDeployment object.
6467
type Reconciler struct {

internal/controllers/machinehealthcheck/machinehealthcheck_controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ const (
7070
// +kubebuilder:rbac:groups=core,resources=events,verbs=create;patch
7171
// +kubebuilder:rbac:groups=core,resources=secrets,verbs=get;list;watch
7272
// +kubebuilder:rbac:groups=cluster.x-k8s.io,resources=machines;machines/status,verbs=get;list;watch;delete
73-
// +kubebuilder:rbac:groups=cluster.x-k8s.io,resources=machinehealthchecks;machinehealthchecks/status,verbs=get;list;watch;update;patch
73+
// +kubebuilder:rbac:groups=cluster.x-k8s.io,resources=machinehealthchecks;machinehealthchecks/status;machinehealthchecks/finalizers,verbs=get;list;watch;update;patch
7474

7575
// Reconciler reconciles a MachineHealthCheck object.
7676
type Reconciler struct {

internal/controllers/machineset/machineset_controller.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,13 @@ var (
7575

7676
const machineSetManagerName = "capi-machineset"
7777

78+
// Update permissions on /finalizers subresrouce is required on management clusters with 'OwnerReferencesPermissionEnforcement' plugin enabled.
79+
// See: https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement
80+
//
7881
// +kubebuilder:rbac:groups=core,resources=events,verbs=create;patch
7982
// +kubebuilder:rbac:groups=core,resources=secrets,verbs=get;list;watch
8083
// +kubebuilder:rbac:groups=infrastructure.cluster.x-k8s.io;bootstrap.cluster.x-k8s.io,resources=*,verbs=get;list;watch;create;update;patch;delete
81-
// +kubebuilder:rbac:groups=cluster.x-k8s.io,resources=machinesets;machinesets/status,verbs=get;list;watch;create;update;patch;delete
84+
// +kubebuilder:rbac:groups=cluster.x-k8s.io,resources=machinesets;machinesets/status;machinesets/finalizers,verbs=get;list;watch;create;update;patch;delete
8285

8386
// Reconciler reconciles a MachineSet object.
8487
type Reconciler struct {

0 commit comments

Comments
 (0)