Namespace de base
Création d'un namespace avec un SA et un rôle associé afin de pouvoir déployer les releases.
CLUSTER=""
USER=""
NAMESPACE=""
kubectl create namespace ${NAMESPACE}
kubectl create serviceaccount ${USER} --namespace ${NAMESPACE}
kubectl create -f - << EOF
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: ${USER}
namespace: ${NAMESPACE}
rules:
- apiGroups: ["", "batch", "extensions", "apps", "networking.k8s.io", "cert-manager.io"]
resources: ["*"]
verbs: ["*"]
EOF
kubectl -n $NAMESPACE create rolebinding $USER --role $USER --serviceaccount $NAMESPACE:$USER
Création du token et mise en place dans vault :
cat <<EOF | kubectl create -f -
apiVersion: v1
kind: Secret
metadata:
name: ${USER}-token
namespace: ${NAMESPACE}
annotations:
kubernetes.io/service-account.name: ${USER}
type: kubernetes.io/service-account-token
EOF
TOKEN=$(kubectl get secret ${USER}-token -n $NAMESPACE -o jsonpath='{$.data.token}' | base64 -d)
vault kv put admins/kv/$CLUSTER/$NAMESPACE/$USER HELM_TOKEN=$TOKEN