Chapitre 7. Déclenchement et modification des builds
Les sections suivantes décrivent comment déclencher des builds et modifier les builds en utilisant des crochets de construction.
7.1. Créer des déclencheurs Copier lienLien copié sur presse-papiers!
Lorsque vous définissez un BuildConfig, vous pouvez définir des déclencheurs pour contrôler les circonstances dans lesquelles le BuildConfig doit être exécuté. Les déclencheurs de build suivants sont disponibles:
- À propos de Webhook
- Changement d’image
- Changement de configuration
7.1.1. Déclencheurs Webhook Copier lienLien copié sur presse-papiers!
Les déclencheurs Webhook vous permettent de déclencher une nouvelle construction en envoyant une demande au point de terminaison OpenShift Dedicated API. Ces déclencheurs peuvent être définis à l’aide de webhooks GitHub, GitLab, Bitbucket ou génériques.
Actuellement, OpenShift Dedicated webhooks ne prend en charge que les versions analogues de l’événement push pour chacun des systèmes de gestion du code source (SCM) basés sur Git. Les autres types d’événements sont ignorés.
Lorsque les événements push sont traités, l’hôte de plan de contrôle dédié OpenShift confirme si la référence de branche à l’intérieur de l’événement correspond à la référence de branche dans le BuildConfig correspondant. Dans ce cas, il vérifie alors la référence exacte de commit notée dans l’événement webhook sur la construction OpenShift Dedicated. Lorsqu’ils ne correspondent pas, aucune construction n’est déclenchée.
les nouvelles applications OC et oc new-build créent automatiquement les déclencheurs GitHub et Generic webhook, mais tous les autres déclencheurs de webhook nécessaires doivent être ajoutés manuellement. Il est possible d’ajouter manuellement des déclencheurs en paramétrant les déclencheurs.
Dans tous les webhooks, vous devez définir un secret avec une clé nommée WebHookSecretKey et la valeur étant la valeur à fournir lors de l’invocation du webhook. La définition du webhook doit alors faire référence au secret. Le secret assure l’unicité de l’URL, empêchant les autres de déclencher la construction. La valeur de la clé est comparée au secret fourni lors de l’invocation du webhook.
C’est par exemple un webhook GitHub avec une référence à un secret nommé mysecret:
type: "GitHub" github: secretReference: name: "mysecret"
type: "GitHub"
github:
secretReference:
name: "mysecret"
Le secret est alors défini comme suit. A noter que la valeur du secret est encodée base64 comme requis pour tout champ de données d’un objet secret.
7.1.1.1. Ajout d’utilisateurs non authentifiés à la liaison du rôle system:webhook Copier lienLien copié sur presse-papiers!
En tant qu’administrateur de cluster, vous pouvez ajouter des utilisateurs non authentifiés à la liaison de rôle system:webhook dans OpenShift Dedicated pour des espaces de noms spécifiques. La liaison de rôle system:webhook permet aux utilisateurs de déclencher des builds à partir de systèmes externes qui n’utilisent pas de mécanisme d’authentification dédié OpenShift. Les utilisateurs non authentifiés n’ont pas accès par défaut à des liaisons de rôle non publiques. Il s’agit d’un changement par rapport aux versions dédiées d’OpenShift avant 4.16.
L’ajout d’utilisateurs non authentifiés au lien de rôle system:webhook est nécessaire pour déclencher avec succès des builds à partir de GitHub, GitLab et Bitbucket.
Lorsqu’il est nécessaire d’autoriser les utilisateurs non authentifiés à accéder à un cluster, vous pouvez le faire en ajoutant des utilisateurs non authentifiés à la liaison de rôle system:webhook dans chaque espace de noms requis. Cette méthode est plus sûre que d’ajouter des utilisateurs non authentifiés à la liaison de rôle de cluster system:webhook. Cependant, si vous avez un grand nombre d’espaces de noms, il est possible d’ajouter des utilisateurs non authentifiés à la liaison de rôle de cluster system:webhook qui appliquerait la modification à tous les espaces de noms.
Assurez-vous toujours de respecter les normes de sécurité de votre organisation lors de la modification de l’accès non authentifié.
Conditions préalables
- En tant qu’utilisateur, vous avez accès au cluster avec le rôle cluster-admin.
- L’OpenShift CLI (oc) a été installé.
Procédure
Créez un fichier YAML nommé add-webhooks-unauth.yaml et ajoutez le contenu suivant:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- L’espace de noms de votre BuildConfig.
Appliquer la configuration en exécutant la commande suivante:
oc apply -f add-webhooks-unauth.yaml
$ oc apply -f add-webhooks-unauth.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.1.1.2. En utilisant GitHub webhooks Copier lienLien copié sur presse-papiers!
Les webhooks GitHub gèrent l’appel effectué par GitHub lorsqu’un dépôt est mis à jour. Lors de la définition du déclencheur, vous devez spécifier un secret, qui fait partie de l’URL que vous fournissez à GitHub lors de la configuration du webhook.
Exemple de définition GitHub webhook:
type: "GitHub" github: secretReference: name: "mysecret"
type: "GitHub"
github:
secretReference:
name: "mysecret"
Le secret utilisé dans la configuration du déclencheur webhook n’est pas le même que le champ secret que vous rencontrez lors de la configuration du webhook dans GitHub UI. Le secret de la configuration du déclencheur webhook rend l’URL Webhook unique et difficile à prédire. Le secret configuré dans l’interface utilisateur GitHub est un champ de chaîne optionnel qui est utilisé pour créer un condensateur HMAC hex du corps, qui est envoyé sous la forme d’un en-tête X-Hub-Signature.
L’URL de charge utile est retournée sous forme d’URL GitHub Webhook par la commande de description oc (voir Affichage des URL Webhook), et est structurée comme suit:
Exemple de sortie
https://<openshift_api_host:port>/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/github
https://<openshift_api_host:port>/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/github
Conditions préalables
- Créez un BuildConfig à partir d’un référentiel GitHub.
- le système: non authentifié a accès au rôle system:webhook dans les espaces de noms requis. En outre, system:unauthenticated a accès au rôle de cluster system:webhook.
Procédure
Configurez un GitHub Webhook.
Après avoir créé un objet BuildConfig à partir d’un référentiel GitHub, exécutez la commande suivante:
oc describe bc/<name_of_your_BuildConfig>
$ oc describe bc/<name_of_your_BuildConfig>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cette commande génère une URL webhook GitHub.
Exemple de sortie
https://api.starter-us-east-1.openshift.com:443/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/github
https://api.starter-us-east-1.openshift.com:443/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/github
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Découpez et collez cette URL dans GitHub, à partir de la console Web GitHub.
-
Dans votre dépôt GitHub, sélectionnez Ajouter Webhook dans Paramètres
Webhooks. - Collez la sortie URL dans le champ URL de charge utile.
- Changez le type de contenu de l’application par défaut de GitHub/x-www-form-urlencoded en application/json.
Cliquez sur Ajouter webhook.
Il faut voir un message de GitHub indiquant que votre webhook a été configuré avec succès.
Lorsque vous poussez un changement dans votre référentiel GitHub, une nouvelle version démarre automatiquement, et lors d’une construction réussie, un nouveau déploiement commence.
NoteGogs prend en charge le même format de charge utile webhook que GitHub. Ainsi, si vous utilisez un serveur Gogs, vous pouvez définir un déclencheur GitHub webhook sur votre BuildConfig et le déclencher par votre serveur Gogs.
Compte tenu d’un fichier contenant une charge utile JSON valide, telle que payload.json, vous pouvez déclencher manuellement le webhook avec la commande curl suivante:
curl -H "X-GitHub-Event: push" -H "Content-Type: application/json" -k -X POST --data-binary @payload.json https://<openshift_api_host:port>/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/github
$ curl -H "X-GitHub-Event: push" -H "Content-Type: application/json" -k -X POST --data-binary @payload.json https://<openshift_api_host:port>/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/github
Copy to Clipboard Copied! Toggle word wrap Toggle overflow L’argument -k n’est nécessaire que si votre serveur API n’a pas de certificat signé correctement.
La construction ne sera déclenchée que si la valeur ref de l’événement GitHub webhook correspond à la valeur ref spécifiée dans le champ source.git de la ressource BuildConfig.
7.1.1.3. En utilisant GitLab webhooks Copier lienLien copié sur presse-papiers!
Les webhooks GitLab gèrent l’appel effectué par GitLab lorsqu’un dépôt est mis à jour. Comme avec les déclencheurs GitHub, vous devez spécifier un secret. L’exemple suivant est une définition de déclenchement YAML dans le BuildConfig:
type: "GitLab" gitlab: secretReference: name: "mysecret"
type: "GitLab"
gitlab:
secretReference:
name: "mysecret"
L’URL de charge utile est retournée comme l’URL GitLab Webhook par la commande oc décrit, et est structurée comme suit:
Exemple de sortie
https://<openshift_api_host:port>/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/gitlab
https://<openshift_api_host:port>/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/gitlab
Conditions préalables
- le système: non authentifié a accès au rôle system:webhook dans les espaces de noms requis. En outre, system:unauthenticated a accès au rôle de cluster system:webhook.
Procédure
Configurez un GitLab Webhook.
Accédez à l’URL Webhook en entrant la commande suivante:
oc describe bc <name>
$ oc describe bc <name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Copiez l’URL Webhook en remplaçant <secret> par votre valeur secrète.
- Suivez les instructions de configuration de GitLab pour coller l’URL Webhook dans les paramètres de votre dépôt GitLab.
Compte tenu d’un fichier contenant une charge utile JSON valide, telle que payload.json, vous pouvez déclencher manuellement le webhook avec la commande curl suivante:
curl -H "X-GitLab-Event: Push Hook" -H "Content-Type: application/json" -k -X POST --data-binary @payload.json https://<openshift_api_host:port>/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/gitlab
$ curl -H "X-GitLab-Event: Push Hook" -H "Content-Type: application/json" -k -X POST --data-binary @payload.json https://<openshift_api_host:port>/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/gitlab
Copy to Clipboard Copied! Toggle word wrap Toggle overflow L’argument -k n’est nécessaire que si votre serveur API n’a pas de certificat signé correctement.
7.1.1.4. En utilisant Bitbucket webhooks Copier lienLien copié sur presse-papiers!
Bitbucket webhooks gère l’appel effectué par Bitbucket lorsqu’un dépôt est mis à jour. Comme les déclencheurs GitHub et GitLab, vous devez spécifier un secret. L’exemple suivant est une définition de déclenchement YAML dans le BuildConfig:
type: "Bitbucket" bitbucket: secretReference: name: "mysecret"
type: "Bitbucket"
bitbucket:
secretReference:
name: "mysecret"
L’URL de charge utile est retournée sous forme d’URL Bitbucket Webhook par la commande de description oc, et est structurée comme suit:
Exemple de sortie
https://<openshift_api_host:port>/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/bitbucket
https://<openshift_api_host:port>/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/bitbucket
Conditions préalables
- le système: non authentifié a accès au rôle system:webhook dans les espaces de noms requis. En outre, system:unauthenticated a accès au rôle de cluster system:webhook.
Procédure
Configurez un Bitbucket Webhook.
Accédez à l’URL Webhook en entrant la commande suivante:
oc describe bc <name>
$ oc describe bc <name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Copiez l’URL Webhook en remplaçant <secret> par votre valeur secrète.
- Suivez les instructions de configuration de Bitbucket pour coller l’URL Webhook dans vos paramètres de dépôt Bitbucket.
Étant donné un fichier contenant une charge utile JSON valide, telle que payload.json, vous pouvez déclencher manuellement le webhook en entrant la commande curl suivante:
curl -H "X-Event-Key: repo:push" -H "Content-Type: application/json" -k -X POST --data-binary @payload.json https://<openshift_api_host:port>/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/bitbucket
$ curl -H "X-Event-Key: repo:push" -H "Content-Type: application/json" -k -X POST --data-binary @payload.json https://<openshift_api_host:port>/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/bitbucket
Copy to Clipboard Copied! Toggle word wrap Toggle overflow L’argument -k n’est nécessaire que si votre serveur API n’a pas de certificat signé correctement.
7.1.1.5. En utilisant des webhooks génériques Copier lienLien copié sur presse-papiers!
Les webhooks génériques sont appelés à partir de n’importe quel système capable de faire une demande web. Comme pour les autres webhooks, vous devez spécifier un secret, qui fait partie de l’URL que l’appelant doit utiliser pour déclencher la construction. Le secret assure l’unicité de l’URL, empêchant les autres de déclencher la construction. Ce qui suit est un exemple de définition de déclencheur YAML dans le BuildConfig:
type: "Generic" generic: secretReference: name: "mysecret" allowEnv: true
type: "Generic"
generic:
secretReference:
name: "mysecret"
allowEnv: true
- 1
- Défini sur true pour permettre à un webhook générique de passer dans des variables d’environnement.
Procédure
Afin de configurer l’appelant, fournissez au système d’appel l’URL du point de terminaison webhook générique pour votre build.
Exemple d’URL générique de point de terminaison webhook
https://<openshift_api_host:port>/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/generic
https://<openshift_api_host:port>/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/generic
Copy to Clipboard Copied! Toggle word wrap Toggle overflow L’appelant doit appeler le webhook comme une opération POST.
Afin d’appeler le webhook manuellement, entrez la commande curl suivante:
curl -X POST -k https://<openshift_api_host:port>/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/generic
$ curl -X POST -k https://<openshift_api_host:port>/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/generic
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Le verbe HTTP doit être défini sur POST. Le drapeau -k non sécurisé est spécifié pour ignorer la validation du certificat. Ce second drapeau n’est pas nécessaire si votre cluster a correctement signé des certificats.
Le point de terminaison peut accepter une charge utile optionnelle avec le format suivant:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Comme les variables d’environnement BuildConfig, les variables d’environnement définies ici sont mises à la disposition de votre build. Lorsque ces variables entrent en collision avec les variables d’environnement BuildConfig, ces variables priment. Les variables d’environnement transmises par webhook sont ignorées par défaut. Définissez le champ allowEnv sur true sur la définition de webhook pour activer ce comportement.
Afin de passer cette charge utile à l’aide de curl, définissez-la dans un fichier nommé payload_file.yaml et exécutez la commande suivante:
curl -H "Content-Type: application/yaml" --data-binary @payload_file.yaml -X POST -k https://<openshift_api_host:port>/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/generic
$ curl -H "Content-Type: application/yaml" --data-binary @payload_file.yaml -X POST -k https://<openshift_api_host:port>/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/generic
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Les arguments sont les mêmes que l’exemple précédent avec l’ajout d’un en-tête et d’une charge utile. L’argument -H définit l’en-tête Content-Type sur application/yaml ou application/json en fonction de votre format de charge utile. L’argument --data-binary est utilisé pour envoyer une charge utile binaire avec des nouvelles lignes intactes avec la demande POST.
Le logiciel OpenShift Dedicated permet aux builds d’être déclenchés par le webhook générique même si une charge utile de requête invalide est présentée, par exemple, le type de contenu invalide, le contenu non comparable ou invalide, etc. Ce comportement est maintenu pour la rétrocompatibilité. Lorsqu’une charge utile de requête invalide est présentée, OpenShift Dedicated renvoie un avertissement au format JSON dans le cadre de sa réponse HTTP 200 OK.
7.1.1.6. Affichage des URL Webhook Copier lienLien copié sur presse-papiers!
La commande oc described permet d’afficher les URL Webhook associées à une configuration de build. Lorsque la commande n’affiche pas d’URL Webhook, aucun déclencheur webhook n’est actuellement défini pour cette configuration de construction.
Procédure
- Afin d’afficher les URL Webhook associées à un BuildConfig, exécutez la commande suivante:
oc describe bc <name>
$ oc describe bc <name>
7.1.2. En utilisant les déclencheurs de changement d’image Copier lienLien copié sur presse-papiers!
En tant que développeur, vous pouvez configurer votre build pour s’exécuter automatiquement chaque fois qu’une image de base change.
Il est possible d’utiliser des déclencheurs de changement d’image pour invoquer automatiquement votre build lorsqu’une nouvelle version d’une image en amont est disponible. À titre d’exemple, si une build est basée sur une image RHEL, vous pouvez déclencher ce build pour exécuter n’importe quand l’image RHEL change. En conséquence, l’image de l’application est toujours en cours d’exécution sur la dernière image de base RHEL.
Les flux d’images qui pointent vers les images de conteneur dans les registres de conteneurs v1 ne déclenchent une compilation qu’une fois lorsque la balise de flux d’image devient disponible et non sur les mises à jour d’image ultérieures. Cela est dû à l’absence d’images uniques identifiables dans les registres de conteneurs v1.
Procédure
Définissez une ImageStream qui pointe vers l’image en amont que vous souhaitez utiliser comme déclencheur:
kind: "ImageStream" apiVersion: "v1" metadata: name: "ruby-20-centos7"
kind: "ImageStream" apiVersion: "v1" metadata: name: "ruby-20-centos7"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceci définit le flux d’images qui est lié à un référentiel d’images conteneur situé à <system-registry>/<namespace>/ruby-20-centos7. Le <system-registry> est défini comme un service avec le nom docker-registry s’exécutant dans OpenShift Dedicated.
Dans le cas où un flux d’images est l’image de base de la construction, définissez le champ de la stratégie de construction pour pointer vers ImageStream:
strategy: sourceStrategy: from: kind: "ImageStreamTag" name: "ruby-20-centos7:latest"
strategy: sourceStrategy: from: kind: "ImageStreamTag" name: "ruby-20-centos7:latest"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans ce cas, la définition sourceStrategy consomme la dernière balise du flux d’images nommé ruby-20-centos7 situé dans cet espace de noms.
Définissez une build avec un ou plusieurs déclencheurs qui pointent vers ImageStreams:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Déclencheur de changement d’image qui surveille ImageStream et Tag tel que défini par la stratégie de construction à partir du champ. L’objet imageChange ici doit être vide.
- 2
- Déclencheur de changement d’image qui surveille un flux d’images arbitraire. La partie imageChange, dans ce cas, doit inclure un champ qui fait référence à ImageStreamTag pour surveiller.
Lors de l’utilisation d’un déclencheur de changement d’image pour le flux d’images de stratégie, la build générée est fournie avec une balise docker immuable qui pointe vers la dernière image correspondant à cette balise. Cette nouvelle référence d’image est utilisée par la stratégie lorsqu’elle s’exécute pour la construction.
Dans le cas d’autres déclencheurs de changement d’image qui ne font pas référence au flux d’images de stratégie, une nouvelle version est lancée, mais la stratégie de construction n’est pas mise à jour avec une référence d’image unique.
Comme cet exemple a un déclencheur de changement d’image pour la stratégie, la construction résultante est:
strategy: sourceStrategy: from: kind: "DockerImage" name: "172.30.17.3:5001/mynamespace/ruby-20-centos7:<immutableid>"
strategy:
sourceStrategy:
from:
kind: "DockerImage"
name: "172.30.17.3:5001/mynamespace/ruby-20-centos7:<immutableid>"
Cela garantit que la construction déclenchée utilise la nouvelle image qui vient d’être poussée vers le référentiel, et la construction peut être redémarrée à tout moment avec les mêmes entrées.
Il est possible de mettre en pause un déclencheur de changement d’image pour autoriser plusieurs modifications sur le flux d’image référencé avant le démarrage d’une build. Lors de l’ajout initial d’un ImageChangeTrigger à un BuildConfig, vous pouvez également définir l’attribut mis en pause à true afin d’éviter qu’une build ne soit immédiatement déclenchée.
Lorsqu’une build est déclenchée en raison d’un déclencheur de webhook ou d’une requête manuelle, la construction créée utilise le <immutableid> résolu à partir de l’imageStream référencée par la Stratégie. Cela garantit que les builds sont effectués en utilisant des balises d’image cohérentes pour faciliter la reproduction.
7.1.3. Identifier le déclencheur de changement d’image d’une construction Copier lienLien copié sur presse-papiers!
En tant que développeur, si vous avez des déclencheurs de changement d’image, vous pouvez identifier quel changement d’image a initié la dernière version. Cela peut être utile pour le débogage ou le dépannage des builds.
Exemple BuildConfig
Cet exemple omet les éléments qui ne sont pas liés aux déclencheurs de changement d’image.
Conditions préalables
- Il y a plusieurs déclencheurs de changement d’image. Ces déclencheurs ont déclenché une ou plusieurs builds.
Procédure
Dans le BuildConfig CR, dans status.imageChangeTriggers, identifiez le lastTriggerTime qui a le dernier horodatage.
Cette imageChangeTriggerStatus
Then you use the `name` and `namespace` from that build to find the corresponding image change trigger in `buildConfig.spec.triggers`.
Then you use the `name` and `namespace` from that build to find the corresponding image change trigger in `buildConfig.spec.triggers`.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Dans imageChangeTriggers, comparez les horodatages pour identifier les derniers
Déclencheurs de changement d’image
Dans votre configuration de build, buildConfig.spec.triggers est un ensemble de stratégies de déclenchement de build, BuildTriggerPolicy.
Chaque BuildTriggerPolicy a un champ de type et un ensemble de champs de pointeurs. Chaque champ de pointeur correspond à l’une des valeurs autorisées pour le champ type. En tant que tel, vous ne pouvez définir que BuildTriggerPolicy sur un seul champ de pointeur.
Dans le cas des déclencheurs de changement d’image, la valeur du type est ImageChange. Ensuite, le champ imageChange est le pointeur d’un objet ImageChangeTrigger, qui a les champs suivants:
- LastTriggeredImageID: Ce champ, qui n’est pas affiché dans l’exemple, est déprécié dans OpenShift Dedicated 4.8 et sera ignoré dans une future version. Il contient la référence d’image résolue pour ImageStreamTag lorsque la dernière version a été déclenchée à partir de ce BuildConfig.
- en pause : Vous pouvez utiliser ce champ, qui n’est pas affiché dans l’exemple, pour désactiver temporairement ce déclencheur de changement d’image particulier.
- à partir de: Utilisez ce champ pour référencer ImageStreamTag qui pilote ce déclencheur de changement d’image. Il est le type Kubernetes de base, OwnerReference.
Le champ à partir du champ a les champs de note suivants:
- genre: Pour les déclencheurs de changement d’image, la seule valeur prise en charge est ImageStreamTag.
- espace de noms : Utilisez ce champ pour spécifier l’espace de noms de ImageStreamTag.
- le nom : Utilisez ce champ pour spécifier ImageStreamTag.
Changement d’image statut de déclencheur
Dans votre configuration de build, buildConfig.status.imageChangeTriggers est un ensemble d’éléments ImageChangeTriggerStatus. Chaque élément ImageChangeTriggerStatus inclut les éléments from, lastTriggeredImageID et lastTriggerTime affichés dans l’exemple précédent.
L’imageChangeTriggerStatus qui a la dernière version lastTriggerTime a déclenché la version la plus récente. Il utilise son nom et son espace de noms pour identifier le déclencheur de changement d’image dans buildConfig.spec.triggers qui a déclenché la construction.
Le dernierTriggerTime avec l’horodatage le plus récent signifie le ImageChangeTriggerStatus de la dernière version. Cette ImageChangeTriggerStatus a le même nom et espace de noms que le déclencheur de changement d’image dans buildConfig.spec.triggers qui a déclenché la construction.
7.1.4. Déclencheurs de changement de configuration Copier lienLien copié sur presse-papiers!
Le déclencheur de changement de configuration permet d’invoquer automatiquement une build dès la création d’un nouveau BuildConfig.
Ce qui suit est un exemple de définition de déclencheur YAML dans le BuildConfig:
type: "ConfigChange"
type: "ConfigChange"
Les déclencheurs de changement de configuration ne fonctionnent actuellement que lors de la création d’un nouveau BuildConfig. Dans une version ultérieure, les déclencheurs de changement de configuration seront également en mesure de lancer une build chaque fois qu’un BuildConfig est mis à jour.
7.1.4.1. Configurer les déclencheurs manuellement Copier lienLien copié sur presse-papiers!
Les déclencheurs peuvent être ajoutés et supprimés des configurations de build avec des déclencheurs oc set.
Procédure
Afin de définir un déclencheur GitHub webhook sur une configuration de build, entrez la commande suivante:
oc set triggers bc <name> --from-github
$ oc set triggers bc <name> --from-github
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Afin de définir un déclencheur de changement d’image, entrez la commande suivante:
oc set triggers bc <name> --from-image='<image>'
$ oc set triggers bc <name> --from-image='<image>'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Afin de supprimer un déclencheur, entrez la commande suivante:
oc set triggers bc <name> --from-bitbucket --remove
$ oc set triggers bc <name> --from-bitbucket --remove
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Lorsqu’un déclencheur webhook existe déjà, l’ajouter à nouveau régénère le secret du webhook.
Consultez la documentation d’aide en saisissant la commande suivante:
oc set triggers --help
$ oc set triggers --help