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

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

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.

Note

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"
Copy to Clipboard Toggle word wrap

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.

- kind: Secret
  apiVersion: v1
  metadata:
    name: mysecret
    creationTimestamp:
  data:
    WebHookSecretKey: c2VjcmV0dmFsdWUx
Copy to Clipboard Toggle word wrap

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.

Important

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

  1. Créez un fichier YAML nommé add-webhooks-unauth.yaml et ajoutez le contenu suivant:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      annotations:
        rbac.authorization.kubernetes.io/autoupdate: "true"
      name: webhook-access-unauthenticated
      namespace: <namespace> 
    1
    
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: "system:webhook"
    subjects:
      - apiGroup: rbac.authorization.k8s.io
        kind: Group
        name: "system:unauthenticated"
    Copy to Clipboard Toggle word wrap
    1
    L’espace de noms de votre BuildConfig.
  2. Appliquer la configuration en exécutant la commande suivante:

    $ oc apply -f add-webhooks-unauth.yaml
    Copy to Clipboard Toggle word wrap

7.1.1.2. En utilisant GitHub webhooks

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"
Copy to Clipboard Toggle word wrap
Note

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
Copy to Clipboard Toggle word wrap

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

  1. Configurez un GitHub Webhook.

    1. 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>
      Copy to Clipboard Toggle word wrap

      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
      Copy to Clipboard Toggle word wrap

    2. Découpez et collez cette URL dans GitHub, à partir de la console Web GitHub.
    3. Dans votre dépôt GitHub, sélectionnez Ajouter Webhook dans Paramètres Webhooks.
    4. Collez la sortie URL dans le champ URL de charge utile.
    5. Changez le type de contenu de l’application par défaut de GitHub/x-www-form-urlencoded en application/json.
    6. 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.

      Note

      Gogs 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.

  2. 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
    Copy to Clipboard Toggle word wrap

    L’argument -k n’est nécessaire que si votre serveur API n’a pas de certificat signé correctement.

Note

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

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"
Copy to Clipboard Toggle word wrap

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
Copy to Clipboard Toggle word wrap

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

  1. Configurez un GitLab Webhook.

    1. Accédez à l’URL Webhook en entrant la commande suivante:

      $ oc describe bc <name>
      Copy to Clipboard Toggle word wrap
    2. Copiez l’URL Webhook en remplaçant &lt;secret&gt; par votre valeur secrète.
    3. Suivez les instructions de configuration de GitLab pour coller l’URL Webhook dans les paramètres de votre dépôt GitLab.
  2. 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
    Copy to Clipboard Toggle word wrap

    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

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"
Copy to Clipboard Toggle word wrap

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
Copy to Clipboard Toggle word wrap

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

  1. Configurez un Bitbucket Webhook.

    1. Accédez à l’URL Webhook en entrant la commande suivante:

      $ oc describe bc <name>
      Copy to Clipboard Toggle word wrap
    2. Copiez l’URL Webhook en remplaçant &lt;secret&gt; par votre valeur secrète.
    3. Suivez les instructions de configuration de Bitbucket pour coller l’URL Webhook dans vos paramètres de dépôt Bitbucket.
  2. É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
    Copy to Clipboard Toggle word wrap

    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

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 
1
Copy to Clipboard Toggle word wrap
1
Défini sur true pour permettre à un webhook générique de passer dans des variables d’environnement.

Procédure

  1. 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
    Copy to Clipboard Toggle word wrap

    L’appelant doit appeler le webhook comme une opération POST.

  2. 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
    Copy to Clipboard Toggle word wrap

    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:

    git:
      uri: "<url to git repository>"
      ref: "<optional git reference>"
      commit: "<commit hash identifying a specific git commit>"
      author:
        name: "<author name>"
        email: "<author e-mail>"
      committer:
        name: "<committer name>"
        email: "<committer e-mail>"
      message: "<commit message>"
    env: 
    1
    
       - name: "<variable name>"
         value: "<variable value>"
    Copy to Clipboard Toggle word wrap
    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.
  3. 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
    Copy to Clipboard Toggle word wrap

    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.

Note

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

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>
Copy to Clipboard Toggle word wrap

7.1.2. En utilisant les déclencheurs de changement d’image

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.

Note

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

  1. 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"
    Copy to Clipboard Toggle word wrap

    Ceci définit le flux d’images qui est lié à un référentiel d’images conteneur situé à &lt;system-registry&gt;/&lt;namespace&gt;/ruby-20-centos7. Le &lt;system-registry&gt; est défini comme un service avec le nom docker-registry s’exécutant dans OpenShift Dedicated.

  2. 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"
    Copy to Clipboard Toggle word wrap

    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.

  3. Définissez une build avec un ou plusieurs déclencheurs qui pointent vers ImageStreams:

    type: "ImageChange" 
    1
    
    imageChange: {}
    type: "ImageChange" 
    2
    
    imageChange:
      from:
        kind: "ImageStreamTag"
        name: "custom-image:latest"
    Copy to Clipboard Toggle word wrap
    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>"
Copy to Clipboard Toggle word wrap

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.

type: "ImageChange"
imageChange:
  from:
    kind: "ImageStreamTag"
    name: "custom-image:latest"
  paused: true
Copy to Clipboard Toggle word wrap

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 &lt;immutableid&gt; 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.

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

apiVersion: build.openshift.io/v1
kind: BuildConfig
metadata:
  name: bc-ict-example
  namespace: bc-ict-example-namespace
spec:

# ...

  triggers:
  - imageChange:
      from:
        kind: ImageStreamTag
        name: input:latest
        namespace: bc-ict-example-namespace
  - imageChange:
      from:
        kind: ImageStreamTag
        name: input2:latest
        namespace: bc-ict-example-namespace
    type: ImageChange
status:
  imageChangeTriggers:
  - from:
      name: input:latest
      namespace: bc-ict-example-namespace
    lastTriggerTime: "2021-06-30T13:47:53Z"
    lastTriggeredImageID: image-registry.openshift-image-registry.svc:5000/bc-ict-example-namespace/input@sha256:0f88ffbeb9d25525720bfa3524cb1bf0908b7f791057cf1acfae917b11266a69
  - from:
      name: input2:latest
      namespace: bc-ict-example-namespace
    lastTriggeredImageID:  image-registry.openshift-image-registry.svc:5000/bc-ict-example-namespace/input2@sha256:0f88ffbeb9d25525720bfa3524cb2ce0908b7f791057cf1acfae917b11266a69

  lastVersion: 1
Copy to Clipboard Toggle word wrap

Note

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

  1. 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`.
    Copy to Clipboard Toggle word wrap
  2. 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

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"
Copy to Clipboard Toggle word wrap
Note

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

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
    Copy to Clipboard Toggle word wrap
  • Afin de définir un déclencheur de changement d’image, entrez la commande suivante:

    $ oc set triggers bc <name> --from-image='<image>'
    Copy to Clipboard Toggle word wrap
  • Afin de supprimer un déclencheur, entrez la commande suivante:

    $ oc set triggers bc <name> --from-bitbucket --remove
    Copy to Clipboard Toggle word wrap
Note

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
Copy to Clipboard Toggle word wrap
Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat