Skip to content

Commit 385f7c8

Browse files
committed
Merge branch 'improvement/implement-super-admin-identity' into q/129.0
2 parents 75ac3a8 + 6d93798 commit 385f7c8

File tree

9 files changed

+51
-1
lines changed

9 files changed

+51
-1
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44

55
### Enhancements
66

7+
- Implement super-admin user and bind admin to built-in cluster-admins role
8+
(PR[#4418](https://github.com/scality/metalk8s/pull/4418))
9+
710
- Bump Kubernetes version to
811
[1.29.8](https://github.com/kubernetes/kubernetes/releases/tag/v1.29.8)
912
(PR[#4417](https://github.com/scality/metalk8s/pull/4417))

buildchain/buildchain/salt_tree.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,7 @@ def task(self) -> types.TaskDict:
477477
Path("salt/metalk8s/kubectl/configured.sls"),
478478
Path("salt/metalk8s/kubectl/init.sls"),
479479
Path("salt/metalk8s/kubectl/installed.sls"),
480+
Path("salt/metalk8s/kubernetes/admin/deployed.sls"),
480481
Path("salt/metalk8s/kubernetes/apiserver/certs/etcd-client.sls"),
481482
Path("salt/metalk8s/kubernetes/apiserver/certs/front-proxy-client.sls"),
482483
Path("salt/metalk8s/kubernetes/apiserver/certs/init.sls"),

pillar/metalk8s/roles/master.sls

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ certificates:
1111
files:
1212
admin:
1313
watched: True
14+
super-admin:
15+
watched: True
1416
controller-manager:
1517
watched: True
1618
kubelet:

salt/metalk8s/defaults.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,12 @@ certificates:
251251
days_remaining: 90
252252
days_valid: 365
253253
files:
254+
super-admin:
255+
path: /etc/kubernetes/super-admin.conf
256+
renew:
257+
sls:
258+
- metalk8s.kubernetes.apiserver.kubeconfig
259+
watched: False
254260
admin:
255261
path: /etc/kubernetes/admin.conf
256262
renew:

salt/metalk8s/deployed/core.sls

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ include:
22
- metalk8s.kubernetes.kube-proxy.deployed
33
- metalk8s.kubernetes.cni.calico.deployed
44
- metalk8s.kubernetes.coredns.deployed
5+
- metalk8s.kubernetes.admin.deployed
56
- metalk8s.repo.deployed
67
- metalk8s.salt.master.deployed
78
- metalk8s.backup.deployed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
Deploy admin user ClusterRoleBinding:
2+
metalk8s_kubernetes.object_present:
3+
- manifest:
4+
apiVersion: rbac.authorization.k8s.io/v1
5+
kind: ClusterRoleBinding
6+
metadata:
7+
name: kubeadm:cluster-admin
8+
roleRef:
9+
apiGroup: rbac.authorization.k8s.io
10+
kind: ClusterRole
11+
name: cluster-admin
12+
subjects:
13+
- kind: Group
14+
name: kubeadm:cluster-admins
15+
apiGroup: rbac.authorization.k8s.io

salt/metalk8s/kubernetes/apiserver/kubeconfig.sls

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,33 @@ include:
1313
1414
{%- set apiserver = 'https://' ~ apiserver_ip ~ ':6443' %}
1515
16+
Create kubeconfig file for super-admin:
17+
metalk8s_kubeconfig.managed:
18+
- name: {{ certificates.kubeconfig.files["super-admin"].path }}
19+
- ca_server: {{ pillar['metalk8s']['ca']['minion'] }}
20+
- signing_policy: {{ kube_api.cert.client_signing_policy }}
21+
- client_cert_info:
22+
CN: "kubernetes-super-admin"
23+
O: "system:masters"
24+
- apiserver: {{ apiserver }}
25+
- cluster: {{ kubernetes.cluster }}
26+
- days_valid: {{
27+
certificates.kubeconfig.files["super-admin"].days_valid |
28+
default(certificates.kubeconfig.days_valid) }}
29+
- days_remaining: {{
30+
certificates.kubeconfig.files["super-admin"].days_remaining |
31+
default(certificates.kubeconfig.days_remaining) }}
32+
- require:
33+
- metalk8s_package_manager: Install m2crypto
34+
1635
Create kubeconfig file for admin:
1736
metalk8s_kubeconfig.managed:
1837
- name: {{ certificates.kubeconfig.files.admin.path }}
1938
- ca_server: {{ pillar['metalk8s']['ca']['minion'] }}
2039
- signing_policy: {{ kube_api.cert.client_signing_policy }}
2140
- client_cert_info:
2241
CN: "kubernetes-admin"
23-
O: "system:masters"
42+
O: "kubeadm:cluster-admins"
2443
- apiserver: {{ apiserver }}
2544
- cluster: {{ kubernetes.cluster }}
2645
- days_valid: {{

salt/tests/unit/formulas/config.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -531,6 +531,7 @@ metalk8s:
531531
# Client
532532
- /etc/kubernetes/pki/etcd/salt-master-etcd-client.crt
533533
# Kubeconfig
534+
- /etc/kubernetes/super-admin.conf
534535
- /etc/kubernetes/admin.conf
535536
# Server
536537
- /etc/kubernetes/pki/apiserver.crt

salt/tests/unit/formulas/data/base_pillar.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,8 @@ certificates:
144144
watched: true
145145
kubeconfig:
146146
files:
147+
super-admin:
148+
watched: true
147149
admin:
148150
watched: true
149151
controller-manager:

0 commit comments

Comments
 (0)