Déploiement OKE de test canari
Créez un pipeline de déploiement à l'aide de la stratégie de lancement de test canari pour Kubernetes Engine.
Préalables
Les préalables sont les suivants :
- Un pipeline de déploiement, un environnement de grappe Kubernetes vers lequel effectuer le déploiement et des artefacts doivent exister. Les artefacts peuvent être insérés ou se trouver dans le registre d'artefacts.
- Comme la grappe OKE ne comporte pas de contrôleur de trafic entrant par défaut, un contrôleur de trafic entrant NGINX doit être configuré pour la stratégie de déploiement de test canari. Un contrôleur de trafic entrant est une application Kubernetes qui achemine le trafic en fonction de la spécification de trafic entrant. Le contrôleur de trafic entrant NGINX surveille les ressources de trafic entrant pour l'équilibrage de charge. Le trafic est déplacé de l'environnement intermédiaire vers l'environnement de production en mettant à jour la ressource de trafic entrant. Pour plus d'informations, voir Configuration d'un contrôleur de trafic entrant dans une grappe.
Pour créer des groupes dynamiques et des politiques pour les pipelines de déploiement, voir Politiques de pipeline de déploiement. Pour plus de détails, voir Politiques GIA pour DevOps.
Pour accéder à DevOps à l'aide de la console Oracle Cloud, de l'API REST et de l'interface de ligne de commande, voir Accès à DevOps.
- Ouvrez le menu de navigation et cliquez sur Services de développement. Sous DevOps, cliquez sur Projets.
- Sélectionnez un projet et un pipeline de déploiement.
- Pour ajouter une étape au pipeline, cliquez sur l'icône + et sélectionnez Ajouter une étape.
- Pour le type d'étape, sélectionnez Stratégie de test canari, puis cliquez sur Suivant.
- Sélectionnez OKE comme type de déploiement.
- Entrez un nom et une description pour l'étape. L'ajout d'une description est facultatif.
- Pour Environnement, sélectionnez un environnement de grappe existant vers lequel le trafic de test canari est déplacé.
- Entrez l'espace de noms de test canari. Par exemple,
canary-env
.L'espace de noms est utilisé pour définir l'environnement de déploiement de test canari dans la grappe OKE.
- Cliquez sur Sélectionner un artefact, puis sélectionnez une ou plusieurs ressources d'artefact dans votre projet DevOps.
Le service DevOps effectue une application côté serveur Kubernetes des artefacts de manifeste Kubernetes dans l'ordre dans lequel ils apparaissent dans la console. Vous pouvez également supprimer des artefacts pour en sélectionner d'autres ou réordonner la liste. Le retrait d'un artefact de l'étape de pipeline ne supprime pas la ressource d'artefact de votre projet. Pour plus d'informations sur l'application côté serveur Kubernetes, voir Application côté serveur.
- Entrez le nom du trafic entrant NGINX. Par exemple,
ingress-nginx
.Il s'agit du nom de la ressource de trafic entrant de votre application. Le service DevOps modifie l'annotation de cette ressource de trafic entrant pour appliquer la stratégie de déploiement.
- Cliquez sur Suivant.
- Vous pouvez choisir de valider l'exécution du déploiement ou de ne pas valider en sélectionnant Aucun.
Pour valider l'application, une fonction personnalisée est ajoutée au pipeline. Sélectionnez Exécuter une logique personnalisée au moyen d'une fonction. Entrez les valeurs suivantes :
- Entrez un nom et une description pour l'étape. L'ajout d'une description est facultatif.
- Pour Environnement, sélectionnez une fonction existante à appeler.
Le champ Nom de la fonction en lecture seule affiche la fonction appelée dans le pipeline.
- (Facultatif) Pour sélectionner et ajouter des artefacts à l'étape, cliquez sur Sélectionner un artefact.
Sélectionnez une ressource d'artefact existante dans votre projet DevOps. L'artefact doit être un fichier de type générique (universel). Les paramètres de l'artefact doivent être au format JSON et peuvent comporter des paramètres fictifs. Vous devez cocher la case Autoriser le paramétrage lors de la configuration de la ressource d'artefact DevOps afin de remplacer les paramètres fictifs par la valeur d'argument lors du déploiement. Pour plus d'informations, voir Configuration des paramètres.
Voici un exemple de contenu d'artefact générique pour transmettre deux paramètres définis par l'utilisateur et leurs valeurs :- Paramètres :
test_name
,app_version
- Valeurs :
{"test_name":"verify_production", "app_version":"${app_version}"}
- Paramètres :
- Pour Mode d'exécution d'étape, sélectionnez l'exécution asynchrone ou synchrone.
Si vous sélectionnez Exécuter de manière asynchrone, le service appelle la fonction mais n'attend pas qu'elle se termine. Lorsque vous sélectionnez Exécuter de manière synchrone, le service appelle la fonction et attend qu'elle se termine.
- Cochez cette case pour désactiver ou activer la validation.
Si la validation est activée, le service vérifie la valeur retournée par la fonction. La valeur retournée est un littéral de chaîne UTF-8,
true
oufalse
. Si la valeur retournée esttrue
, l'étape est marquée comme Réussite. Sinon, elle est marquée comme échec.Si la validation est désactivée, le service ne vérifie pas la valeur retournée.
La validation n'est effectuée que si vous avez sélectionné l'option "Exécuter de manière synchronisée" pour le mode d'exécution de l'étape.
- (Facultatif) Pour ajouter des marqueurs au pipeline, cliquez sur Afficher les options de marquage. Le marquage est un système de métadonnées qui vous permet d'organiser les ressources de votre location et d'en assurer le suivi.
Vous pouvez sélectionner un espace de noms de marqueur ou ajouter un marqueur à structure libre. Entrez la clé et la valeur de marqueur correspondantes. Vous pouvez ajouter plusieurs marqueurs.
- Cliquez sur Suivant.
- Entrez un nom et une description facultative pour l'étape Rediriger le trafic afin de déplacer une partie du trafic vers l'environnement de test canari.
- Entrez une limite supérieure en pourcentage pour spécifier le trafic maximal à déplacer. La valeur doit être comprise entre 1 et 25.
Par exemple, si la limite supérieure est de 20, alors 20 % du trafic sont déplacés vers l'environnement de test canari.
- Cliquez sur Suivant.
- Entrez un nom et une description pour l'étape manuelle d'approbation. L'ajout d'une description est facultatif.
- Entrez le nombre d'approbateurs et cliquez sur Suivant.
- Entrez un nom et une description pour l'étape Test canari de production. L'ajout d'une description est facultatif.
- Pour Environnement de production, sélectionnez un environnement de grappe existant utilisé pour déployer l'application validée dans l'environnement de test canari.
- Entrez l'espace de noms de production.
- Pour repositionner automatiquement le déploiement à la dernière version réussie en cas d'échec de l'étape, cochez la case Repositionnement automatique.
- (Facultatif) Pour ajouter des marqueurs au pipeline, cliquez sur Afficher les options de marquage. Le marquage est un système de métadonnées qui vous permet d'organiser les ressources de votre location et d'en assurer le suivi.
Pour plus d'informations, voir Marqueurs de ressource.
- Pour ajouter l'étape au pipeline, cliquez sur Ajouter.
Une fenêtre modale s'ouvre, affichant le statut des différentes configurations d'étape qui font partie de la stratégie de déploiement de test canari OKE. Parmi ces étapes figurent le déploiement de test canari, le déplacement du trafic, l'approbation et le déploiement en production. Si la validation échoue, vous pouvez vérifier le message d'erreur propre à chaque étape ayant échoué et prendre des mesures correctives.
Si la validation réussit, vous pouvez exécuter le pipeline de déploiement ou ajouter d'autres étapes séquentiellement ou en parallèle au pipeline, si nécessaire.
Note
Pour le premier déploiement OKE de test canari, un message d'erreur "service temporairement indisponible" s'affiche lors de l'exécution du déploiement, après le déploiement de l'application dans l'environnement de test canari. Il s'agit d'un comportement attendu, car la ressource de trafic entrant n'existe pas encore dans l'environnement de production. Vous pouvez ignorer ce message et poursuivre le déploiement, car l'erreur sera résolue lors de l'étape de production.Pour créer une étape de test canari OKE, exécutez la commande
create-deploy-oke-canary-stage
:oci devops deploy-stage create-deploy-oke-canary-stage
Paramètres requis :
--canary-strategy
--kubernetes-manifest-artifact-ids
--oke-cluster-environment-id
--pipeline-id
--stage-predecessor-collection
Pour obtenir de l'aide sur cette commande :
oci devops deploy-stage create-oke-canary-stage -h
Pour créer une étape d'appel de fonction, exécutez la commande
create-invoke-function-stage
:oci devops deploy-stage create-invoke-function-stage
Paramètres requis :
--function-environment-id
--is-async
--is-validation-enabled
--pipeline-id
--stage-predecessor-collection
Pour obtenir de l'aide sur cette commande :
oci devops deploy-stage create-invoke-function-stage -h
Pour créer une étape d'approbation manuelle, exécutez la commande
create-manual-approval-stage
:oci devops deploy-stage create-manual-approval-stage
Paramètres requis :
--approval-policy
--pipeline-id
--stage-predecessor-collection
Pour obtenir de l'aide sur cette commande :
oci devops deploy-stage create-manual-approval-stage -h
Pour créer une étape d'approbation de test canari OKE, exécutez la commande
create-oke-canary-approval-stage
:oci devops deploy-stage create-oke-canary-approval-stage
Paramètres requis :
--oke-canary-traffic-shift-stage-id
--approval-policy
--pipeline-id
--stage-predecessor-collection
Pour obtenir de l'aide sur cette commande :
oci devops deploy-stage create-oke-canary-approval-stage -h
Pour afficher toutes les commandes pour
deploy-stage
:oci devops deploy-stage -h
Pour créer une étape, utilisez l'opération
CreateDeployStage
. Selon les étapes à ajouter au pipeline, sélectionnez les valeurs suivantes pour le type d'étape :- Étape de déploiement de test canari Kubernetes Engine (OKE) :
OKE_CANARY_DEPLOYMENT
- Étape d'appel de fonction :
INVOKE_FUNCTION
- Étape de déplacement de trafic de test canari OKE :
OKE_CANARY_TRAFFIC_SHIFT
- Étape d'approbation de test canari OKE :
OKE_CANARY_APPROVAL
- Étape de déploiement de test canari Kubernetes Engine (OKE) :