Предоставление доступа переносимым сервисам
По умолчанию, переносимые сервисы не имеют никакого доступа к кластеру. Чтобы решить данную проблему, необходимо выполнить следующую команду:
kubectl create clusterrolebinding default-pod --clusterrole cluster-admin --serviceaccount=elma365-applets:default
где elma365-applets по умолчанию namespace для переносимых сервисов (может быть изменен на свой в values-elma365.yaml)
Данный способ является сильно не безопасным. Крайне не рекомендуется его использовать в продуктивной среде.
Например, для библиотеки TechSU.ELMA365 иногда требуется понять, в каком namespace находится сама ELMA365. Для этого предлагается более безопасный способ:
#!/usr/bin/env bash
cat << EOF | kubectl apply -f -
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: elma365applets-cluster-role
rules:
- apiGroups: [""]
resources: ["namespaces"]
verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: elma365applets-cluster-role-binding
subjects:
- kind: ServiceAccount
name: default
namespace: elma365-applets
roleRef:
kind: ClusterRole
name: elma365applets-cluster-role
apiGroup: rbac.authorization.k8s.io
EOF