kubernetes: Сделать доступ разработчику на определённый неймспейс
Сначала скопируем себе сертификаты с кластера, которые нам потребуются для подписи сертификатов разработчика. Нужны файлы ca.crt и ca.key из /etc/kubernetes.
Далее генерация сертификатов для разработчика. Например:
openssl genrsa -out user.key 2048
openssl genrsa -out developer.key 2048
openssl req -new -key developer.key -out developer.csr -subj "/CN=developer/O=company"
И подпись сертификатов.
openssl x509 -req -in developer.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out developer.crt
Меняем контекст и провыеряем, что можем подключиться к кластеру.
kubectl config set-credentials developer --client-certificate=developer.crt --client-key=developer.key --embed-certs=true
kubectl config use-context developer
Можно отредактировать ~/.kube/config, убрав свои данные данные, чтобы передать файл коллеге.
Далее нужно добавить роли на нужный namespace. В моём примере указано hostinfo, замените.
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: developer
namespace: hostinfo
labels:
kubernetes.io/bootstrapping: rbac-defaults
annotations:
rbac.authorization.kubernetes.io/autoupdate: 'true'
rules:
- verbs:
- '*'
apiGroups:
- '*'
resources:
- '*'
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: developer
namespace: hostinfo
annotations:
subjects:
- kind: User
apiGroup: rbac.authorization.k8s.io
name: developer
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: developer
Статьи дополняются по мере получения новой информации. Если есть уточнение – напишите в комментариях в Mastodon.