Skip to content

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