Skip to content

Commit 56fed5d

Browse files
jichenjcpierreprinetti
authored andcommitted
move rbac from hard code to generate (openshift#189)
* move rbac from hard code to generate use control-gen tool to generate rbac/rbac_role*.yaml files instead of hard code them Fixes openshift#155 * make crd file generated automatically use go run vendor/sigs.k8s.io/controller-tools/cmd/controller-gen/main.go crd to create instead of using hard code
1 parent 5f4d563 commit 56fed5d

File tree

9 files changed

+115
-69
lines changed

9 files changed

+115
-69
lines changed

Makefile

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -128,12 +128,16 @@ shell:
128128
$(SHELL) -i
129129

130130
# Generate code
131-
generate:
131+
generate: manifests
132132
go generate ./pkg/... ./cmd/...
133133

134-
images: openstack-cluster-api-controller
134+
manifests:
135+
go run vendor/sigs.k8s.io/controller-tools/cmd/controller-gen/main.go --name openstack-provider-manager rbac
136+
go run vendor/sigs.k8s.io/controller-tools/cmd/controller-gen/main.go crd
135137

136-
openstack-cluster-api-controller: depend manager
138+
images: openstack-cluster-api-controller manifests
139+
140+
openstack-cluster-api-controller: depend manager manifests
137141
ifeq ($(GOOS),linux)
138142
cp bin/manager cmd/manager
139143
docker build -t $(REGISTRY)/openstack-cluster-api-controller:$(VERSION) cmd/manager
@@ -169,4 +173,4 @@ dist: build-cross
169173
)
170174

171175
.PHONY: build clean cover depend docs fmt functional lint realclean \
172-
relnotes test translation version build-cross dist
176+
relnotes test translation version build-cross dist manifests

PROJECT

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version: "1"
2+
domain: k8s.io
3+
repo: sigs.k8s.io/cluster-api-provider-openstack

cmd/clusterctl/examples/openstack/generate-yaml.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ PWD=$(cd `dirname $0`; pwd)
108108
TEMPLATES_PATH=${TEMPLATES_PATH:-$PWD/$SUPPORTED_PROVIDER_OS}
109109
HOME_DIR=${PWD%%/cmd/clusterctl/examples/*}
110110
OUTPUT_DIR="${TEMPLATES_PATH}/out"
111-
PROVIDER_CRD_DIR="${HOME_DIR}/config/crd"
111+
PROVIDER_CRD_DIR="${HOME_DIR}/config/crds"
112112
PROVIDER_RBAC_DIR="${HOME_DIR}/config/rbac"
113113
PROVIDER_MANAGER_DIR="${HOME_DIR}/config/manager"
114114
CLUSTER_CRD_DIR="${HOME_DIR}/vendor/sigs.k8s.io/cluster-api/config/crds"

config/crd/openstackproviderconfig_v1alpha1.yaml

Lines changed: 0 additions & 62 deletions
This file was deleted.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
apiVersion: apiextensions.k8s.io/v1beta1
2+
kind: CustomResourceDefinition
3+
metadata:
4+
creationTimestamp: null
5+
labels:
6+
controller-tools.k8s.io: "1.0"
7+
name: openstackclusterproviderspecs.openstackproviderconfig.k8s.io
8+
spec:
9+
group: openstackproviderconfig.k8s.io
10+
names:
11+
kind: OpenstackClusterProviderSpec
12+
plural: openstackclusterproviderspecs
13+
scope: Namespaced
14+
validation:
15+
openAPIV3Schema:
16+
properties:
17+
apiVersion:
18+
type: string
19+
externalNetworkId:
20+
type: string
21+
kind:
22+
type: string
23+
metadata:
24+
type: object
25+
nodeCidr:
26+
type: string
27+
version: v1alpha1
28+
status:
29+
acceptedNames:
30+
kind: ""
31+
plural: ""
32+
conditions: []
33+
storedVersions: []
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
apiVersion: apiextensions.k8s.io/v1beta1
2+
kind: CustomResourceDefinition
3+
metadata:
4+
creationTimestamp: null
5+
labels:
6+
controller-tools.k8s.io: "1.0"
7+
name: openstackclusterproviderstatuses.openstackproviderconfig.k8s.io
8+
spec:
9+
group: openstackproviderconfig.k8s.io
10+
names:
11+
kind: OpenstackClusterProviderStatus
12+
plural: openstackclusterproviderstatuses
13+
scope: Namespaced
14+
validation:
15+
openAPIV3Schema:
16+
properties:
17+
apiVersion:
18+
type: string
19+
kind:
20+
type: string
21+
metadata:
22+
type: object
23+
network:
24+
properties:
25+
id:
26+
type: string
27+
name:
28+
type: string
29+
router:
30+
properties:
31+
id:
32+
type: string
33+
name:
34+
type: string
35+
required:
36+
- name
37+
- id
38+
type: object
39+
subnet:
40+
properties:
41+
cidr:
42+
type: string
43+
id:
44+
type: string
45+
name:
46+
type: string
47+
required:
48+
- name
49+
- id
50+
- cidr
51+
type: object
52+
required:
53+
- name
54+
- id
55+
type: object
56+
version: v1alpha1
57+
status:
58+
acceptedNames:
59+
kind: ""
60+
plural: ""
61+
conditions: []
62+
storedVersions: []

config/rbac/rbac_role.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
apiVersion: rbac.authorization.k8s.io/v1
22
kind: ClusterRole
33
metadata:
4+
creationTimestamp: null
45
name: openstack-provider-manager-role
56
rules:
67
- apiGroups:
@@ -20,9 +21,9 @@ rules:
2021
resources:
2122
- clusters
2223
- clusters/status
23-
- machines
2424
- machinedeployments
2525
- machinesets
26+
- machines
2627
verbs:
2728
- get
2829
- list

config/rbac/rbac_role_binding.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ roleRef:
1010
subjects:
1111
- kind: ServiceAccount
1212
name: default
13-
namespace: openstack-provider-system
13+
namespace: system

pkg/cloud/openstack/cluster/actuator.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@ func NewActuator(params providerv1openstack.ActuatorParams) (*Actuator, error) {
2727
}
2828

2929
// Reconcile creates or applies updates to the cluster.
30+
// TODO: those are copied from original rbac_role.yaml, need remove them if not needed later
31+
// +kubebuilder:rbac:groups=openstackproviderconfig.k8s.io,resources=openstackmachineproviderconfigs,verbs=get;list;watch;create;update;patch;delete
32+
// +kubebuilder:rbac:groups=cluster.k8s.io,resources=clusters;clusters/status;machinedeployments;machinesets;machines,verbs=get;list;watch;create;update;patch;delete
33+
// +kubebuilder:rbac:groups=,resources=nodes,verbs=get;list;watch;create;update;patch;delete
34+
// +kubebuilder:rbac:groups=,resources=secrets,verbs=get;list;watch
3035
func (a *Actuator) Reconcile(cluster *clusterv1.Cluster) error {
3136
klog.Infof("Reconciling cluster %v.", cluster.Name)
3237

0 commit comments

Comments
 (0)