Aller au contenu principal
Version: 3.19.0

Labels et annotations

Cette partie du guide des bonnes pratiques traite de l'utilisation des labels et annotations dans votre chart.

Est-ce un label ou une annotation ?

Un élément de métadonnées doit être un label dans les conditions suivantes :

  • Il est utilisé par Kubernetes pour identifier cette ressource
  • Il est utile de l'exposer aux opérateurs pour permettre l'interrogation du système.

Par exemple, nous suggérons d'utiliser helm.sh/chart: NAME-VERSION comme label afin que les opérateurs puissent facilement trouver toutes les instances d'un chart particulier.

Si un élément de métadonnées n'est pas utilisé pour l'interrogation, il devrait être défini comme une annotation.

Les hooks Helm sont toujours des annotations.

Labels standards

Le tableau suivant définit les labels courants utilisés par les charts Helm. Helm lui-même n'exige jamais qu'un label particulier soit présent. Les labels marqués REC sont recommandés et devraient être placés sur un chart pour une cohérence globale. Ceux marqués OPT sont optionnels. Ils sont idiomatiques ou couramment utilisés, mais ne sont pas fréquemment utilisés à des fins opérationnelles.

NomStatutDescription
app.kubernetes.io/nameRECDoit être le nom de l'application, reflétant l'application entière. Généralement {{ template "name" . }} est utilisé pour cela. Utilisé par de nombreux manifestes Kubernetes, non spécifique à Helm.
helm.sh/chartRECDoit être le nom et la version du chart : {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}.
app.kubernetes.io/managed-byRECDoit toujours être défini à {{ .Release.Service }}. Permet de trouver tout ce qui est géré par Helm.
app.kubernetes.io/instanceRECDoit être {{ .Release.Name }}. Aide à différencier les différentes instances de la même application.
app.kubernetes.io/versionOPTLa version de l'application, peut être défini à {{ .Chart.AppVersion }}.
app.kubernetes.io/componentOPTUn label courant pour marquer les différents rôles que les composants peuvent jouer dans une application. Par exemple, app.kubernetes.io/component: frontend.
app.kubernetes.io/part-ofOPTUtilisé lorsque plusieurs charts ou logiciels sont combinés pour former une application. Par exemple, un logiciel applicatif et une base de données pour produire un site web. Peut être défini sur l'application principale prise en charge.

Pour plus d'informations sur les labels Kubernetes préfixés par app.kubernetes.io, consultez la documentation Kubernetes.