8.2. Déclenchement des ressources Kubernetes
Les ressources Kubernetes n'ont pas de champs pour le déclenchement, contrairement aux configurations de déploiement et de construction, qui incluent dans leur définition d'API un ensemble de champs pour contrôler les déclencheurs. Au lieu de cela, vous pouvez utiliser des annotations dans OpenShift Container Platform pour demander un déclenchement.
L'annotation est définie comme suit :
Key: image.openshift.io/triggers Value: [ { "from": { "kind": "ImageStreamTag", 1 "name": "example:latest", 2 "namespace": "myapp" 3 }, "fieldPath": "spec.template.spec.containers[?(@.name==\"web\")].image", 4 "paused": false 5 }, ... ]
- 1
- Requis :
kind
est la ressource à partir de laquelle le déclencheur doit êtreImageStreamTag
. - 2
- Obligatoire :
name
doit être le nom d'une balise de flux d'images. - 3
- Facultatif :
namespace
indique par défaut l'espace de noms de l'objet. - 4
- Obligatoire :
fieldPath
est le chemin JSON à modifier. Ce champ est limité et n'accepte qu'une expression de chemin JSON qui correspond précisément à un conteneur par ID ou index. Pour les pods, le chemin JSON est "spec.containers[ ?(@.name='web')].image". - 5
- Facultatif :
paused
indique si le déclencheur est mis en pause ou non, la valeur par défaut étantfalse
. Définissezpaused
àtrue
pour désactiver temporairement ce déclencheur.
Lorsqu'une des ressources principales de Kubernetes contient à la fois un modèle de pod et cette annotation, OpenShift Container Platform tente de mettre à jour l'objet en utilisant l'image actuellement associée à la balise de flux d'images qui est référencée par le déclencheur. La mise à jour est effectuée par rapport à l'adresse fieldPath
spécifiée.
Voici quelques exemples de ressources de base de Kubernetes qui peuvent contenir à la fois un modèle de pod et une annotation :
-
CronJobs
-
Deployments
-
StatefulSets
-
DaemonSets
-
Jobs
-
ReplicationControllers
-
Pods