Lors du déploiement d'un service via un Helm Chart, l'installation a échoué car le compte de services tiller
n'était pas autorisé à créer une ressource ServiceMonitor
.
Remarque:
ServiceMonitor
est un CRD défini par l'opérateur Prometheus pour obtenir automatiquement des mesures des conteneurs en cours d'exécution dans les pods.Je voulais vérifier les autorisations du compte de services tiller
.kubectl
a le auth can-i
commande, les requêtes comme celles-ci (voir ci-dessous) renvoient toujours no
.
kubectl auth can-i list deployment --as=tiller
kubectl auth can-i list deployment --as=staging:tiller
Quelle est la bonne façon de vérifier les autorisations pour un compte de service?
Comment activer le compte tiller
pour créer une ressource ServiceMonitor?
Après avoir essayé beaucoup de choses et googlé dans tout l'univers, j'ai finalement trouvé cet article de blog sur la sécurisation de votre cluster avec RBAC et PSP où un exemple est donné comment vérifier l'accès aux comptes de service.
La commande correcte est:kubectl auth can-i <verb> <resource> --as=system:serviceaccount:<namespace>:<serviceaccountname> [-n <namespace>]
Pour vérifier si le compte tiller
a le droit de créer un objet ServiceMonitor
:kubectl auth can-i create servicemonitor --as=system:serviceaccount:staging:tiller -n staging
Remarque: pour résoudre mon problème avec le compte tiller
, j'ai dû ajouter des droits à la ressource servicemonitors
dans le monitoring.coreos.com
apiGroup. Après ce changement, la commande ci-dessus a renvoyé yes
(enfin) et l'installation de notre Helm Chart a réussi.
Actualisé tiller-manager
rôle:
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: tiller-manager
labels:
org: ipos
app: tiller
annotations:
description: "Role to give Tiller appropriate access in namespace"
ref: "https://docs.helm.sh/using_helm/#example-deploy-tiller-in-a-namespace-restricted-to-deploying-resources-only-in-that-namespace"
rules:
- apiGroups: ["", "batch", "extensions", "apps"]
resources: ["*"]
verbs: ["*"]
- apiGroups:
- monitoring.coreos.com
resources:
- servicemonitors
verbs:
- '*'