Skip to content

Commit e402714

Browse files
committed
Add EndpointSlices permissions for Azure
1 parent 247c501 commit e402714

6 files changed

Lines changed: 46 additions & 3 deletions

manifests/0000_26_cloud-controller-manager-operator_02_rbac_operator.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,17 @@ rules:
148148
verbs:
149149
- update
150150

151+
# azure requires additional permissions on the openshift-cloud-controller-manager/cloud-controller-manager service account.
152+
# The operator must have these permissions to then grant them to the azure cloud controller manager.
153+
- apiGroups:
154+
- "discovery.k8s.io"
155+
resources:
156+
- endpointslices
157+
verbs:
158+
- get
159+
- list
160+
- watch
161+
151162
---
152163
apiVersion: rbac.authorization.k8s.io/v1
153164
kind: Role
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: ClusterRole
3+
metadata:
4+
name: azure-cloud-controller-manager
5+
rules:
6+
- apiGroups:
7+
- "discovery.k8s.io"
8+
resources:
9+
- endpointslices
10+
verbs:
11+
- get
12+
- list
13+
- watch
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: ClusterRoleBinding
3+
metadata:
4+
name: cloud-controller-manager:azure-cloud-controller-manager
5+
roleRef:
6+
kind: ClusterRole
7+
name: azure-cloud-controller-manager
8+
apiGroup: rbac.authorization.k8s.io
9+
subjects:
10+
- kind: ServiceAccount
11+
namespace: openshift-cloud-controller-manager
12+
name: cloud-controller-manager

pkg/cloud/azure/azure.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"github.com/asaskevich/govalidator"
1111
configv1 "github.com/openshift/api/config/v1"
1212
appsv1 "k8s.io/api/apps/v1"
13+
rbacv1 "k8s.io/api/rbac/v1"
1314
"k8s.io/apimachinery/pkg/util/validation/field"
1415
"sigs.k8s.io/controller-runtime/pkg/client"
1516

@@ -28,6 +29,8 @@ var (
2829
templates = []common.TemplateSource{
2930
{ReferenceObject: &appsv1.Deployment{}, EmbedFsPath: "assets/cloud-controller-manager-deployment.yaml"},
3031
{ReferenceObject: &appsv1.DaemonSet{}, EmbedFsPath: "assets/cloud-node-manager-daemonset.yaml"},
32+
{ReferenceObject: &rbacv1.ClusterRole{}, EmbedFsPath: "assets/azure-cloud-controller-manager-clusterrole.yaml"},
33+
{ReferenceObject: &rbacv1.ClusterRoleBinding{}, EmbedFsPath: "assets/azure-cloud-controller-manager-clusterrolebinding.yaml"},
3134
}
3235
)
3336

pkg/cloud/azure/azure_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ func TestResourcesRenderingSmoke(t *testing.T) {
9090
}
9191

9292
resources := assets.GetRenderedResources()
93-
assert.Len(t, resources, 2)
93+
assert.Len(t, resources, 4)
9494
})
9595
}
9696
}

pkg/cloud/cloud_test.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,20 +177,24 @@ func TestGetResources(t *testing.T) {
177177
}, {
178178
name: "Azure resources returned as expected",
179179
testPlatform: platformsMap[string(configv1.AzurePlatformType)],
180-
expectedResourceCount: 3,
180+
expectedResourceCount: 5,
181181
expectedResourcesKindName: []string{
182182
"Deployment/azure-cloud-controller-manager",
183183
"DaemonSet/azure-cloud-node-manager",
184+
"ClusterRole/azure-cloud-controller-manager",
185+
"ClusterRoleBinding/cloud-controller-manager:azure-cloud-controller-manager",
184186
"PodDisruptionBudget/azure-cloud-controller-manager",
185187
},
186188
}, {
187189
name: "Azure resources returned as expected with single node cluster",
188190
testPlatform: platformsMap[string(configv1.AzurePlatformType)],
189-
expectedResourceCount: 2,
191+
expectedResourceCount: 4,
190192
singleReplica: true,
191193
expectedResourcesKindName: []string{
192194
"Deployment/azure-cloud-controller-manager",
193195
"DaemonSet/azure-cloud-node-manager",
196+
"ClusterRole/azure-cloud-controller-manager",
197+
"ClusterRoleBinding/cloud-controller-manager:azure-cloud-controller-manager",
194198
},
195199
}, {
196200
name: "Azure Stack resources returned as expected",

0 commit comments

Comments
 (0)