Remarque :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction à Oracle Cloud Infrastructure Free Tier.
- Il utilise des exemples de valeur pour les informations d'identification Oracle Cloud Infrastructure, la location et les compartiments. A la fin de votre atelier, remplacez ces valeurs par celles propres à votre environnement cloud.
Créer des pipelines OCI DevOps pour Apache Airflow et les déployer à l'aide de Helm
Introduction
Cela fait partie de cinq séries de tutoriels en six parties qui vous montrent comment déployer un ensemble temporaire de ressources sur un cluster OKE à l'aide de microservices Golang représentant l'utilisation du kit SDK OCI, de l'interface de ligne de commande OCI, du gestionnaire de ressources, d'OCI DevOps et de Helm pour déployer et détruire Apache Airflow.
Objectif
Dans ce tutoriel, vous apprendrez à créer des pipelines OCI DevOps pour Apache Airflow et à les déployer à l'aide de Helm.
Prérequis
- Réalisation du tutoriel précédent dans ce parcours de formation, Partie 4/6 - Création de pipelines OCI DevOps pour créer et déployer les microservices Golang
Tâche 1 : création des artefacts DevOps pour Apache Airflow
Avant de créer le pipeline de build DevOps, nous devons créer les artefacts qui se connecteront aux résultats de build (package Helm et image de conteneur).
-
Accédez au registre OCI que vous avez créé pour ce tutoriel.

-
Accédez à la page de votre projet DevOps, cliquez sur Artefacts, puis sur Ajouter un artefact. Fournissez les informations ci-dessous.
-
Contexte : Il s'agit d'un manifeste Kubernetes permettant d'implémenter une entrée pour le flux d'air.
-
Nom : airflow-ingress
-
Type : Manifeste Kubernetes
-
Source d'artefact : Inline
-
Collez le contenu ci-dessous dans le champ value.
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: generation: 1 name: airflow-ingress namespace: airflow spec: ingressClassName: nginx rules: - host: ${APP_HOST} http: paths: - backend: service: name: airflow-web port: number: 8080 path: / pathType: ImplementationSpecific
-
-
Répétez l'étape 2 et entrez les informations ci-dessous dans le processus.
-
Contexte : Il s'agit d'un manifeste Kubernetes permettant d'implémenter une entrée pour le flux d'air.
-
Name : airflow-namespace
-
Type : Manifeste Kubernetes
-
Source d'artefact : Inline
-
Collez le contenu ci-dessous dans le champ value :
apiVersion: v1 kind: Namespace metadata: name: airflow
-
-
Répétez l'étape 2 et entrez les informations ci-dessous dans le processus.
- Contexte : Il s'agit de l'emplacement du registre de graphiques Helm.
- Nom : helm-airflow
- Type : Graphique Helm
- URL du graphique Helm : oci://gru.ocir.io/yournamespace/airflow-helm/airflow
- Version: 8.6.1
Remarque : n'oubliez pas de remplacer l'espace de de deuil de votre registre OCI. Ce registre a été créé lors des étapes précédentes de ce tutoriel.
-
Répétez l'étape 2 et entrez les informations ci-dessous dans le processus.
-
Contexte : Valeurs Helm pour le déploiement de flux d'air.
-
Nom : values-airflow-helm
-
Type : General artefact
-
Source d'artefact : Inline
-
Collez le contenu ci-dessous dans le champ value. Cela forcera le déploiement vers le nouveau pool de noeuds.
nodeSelector: name: extra_workload
-
A ce stade, vous devez disposer des artefacts suivants.

Tâche 2 : création du pipeline de construction DevOps pour Airflow
Nous n'aurons aucun code sur le référentiel, mais uniquement le fichier build_spec.yaml. En effet, nous utiliserons le graphique officiel Helm pour Apache Airflow.
-
Accédez à votre projet OCI DevOps, cliquez sur Référentiels de code, puis créez un référentiel nommé airflow-helm.

-
Cliquez sur Cloner, puis notez votre référentiel
ssh url.
-
Accédez au terminal shell de l'hôte du bastion, téléchargez le fichier build_spec.yaml et propagez-le vers votre propre référentiel de code sur OCI.
cd $HOME git clone <your ssh code repository> wget https://docs.us.oracle.com/en/learn/resource-manager-airflow-oke-part5/files/build_spec.yaml git add . git commit -m "new build spec added" git push


Tâche 3 : Créer un pipeline de construction pour l'aide à la circulation d'air
-
Accédez à votre projet DevOps, cliquez sur Pipelines de build, puis sur Créer un pipeline de build.

-
Cliquez sur Ajouter une nouvelle phase et sélectionnez le type Managed Build.

-
Sélectionnez le référentiel de code principal, puis airflow-helm.

-
Rassemblez les secrets de coffre nécessaires pour ce circuit d'aération.
-
Sur votre console cloud Oracle, cliquez sur Identité et sécurité, cliquez sur Coffre et sélectionnez votre coffre.
-
Obtenez l'OCID des clés secrètes OCIRUser et OCIRToken que vous avez créées dans les étapes précédentes de ce tutoriel.

-
-
Accédez à votre projet DevOps, cliquez sur Pipelines de build, sélectionnez votre pipeline de build pour airflow-helm, puis cliquez sur l'onglet Paramètres et ajoutez les paramètres suivants :
Nom du paramètre Valeur VAULT_HELM_REPO_USER obtenir l'OCID de clé secrète du coffre pour l'utilisateur de registre OCIRUser VAULT_USER_AUTH_TOKEN obtenir l'OCID de clé secrète du coffre pour le jeton de registre OCIRToken COMPARTMENT_ID obtenir l'OCID de compartiment HELM_REPO gru.ocir.io HELM_REPO_URL oci://gru.ocir.io/your_namespace/airflow-helm APP_HOST airflow.superocilab.com Remarque : veillez à définir correctement votre région sur l'URL REPO. Dans ce tutoriel, il s'agit de "gru.ocir.io".

-
Cliquez sur l'onglet Pipeline de build, puis sur Démarrer l'exécution manuelle pour exécuter manuellement le pipeline de build.

Tâche 4 : Créer un pipeline de déploiement pour l'aide à la circulation d'air
-
Accédez à votre projet DevOps, cliquez sur Pipelines de déploiement, puis créez un pipeline nommé airflow-helm-deploy.

-
Créez une étape pour créer un espace de noms dans OKE, sélectionnez Appliquer le manifeste à votre cluster Kubernetes.

-
Créez une étape pour installer la circulation d'air dans OKE, sélectionnez Appliquer le manifeste à votre cluster Kubernetes.


-
Créez une étape pour créer une entrée de flux d'air dans OKE, sélectionnez Appliquer le manifeste à votre cluster Kubernetes. Puisque nous avons configuré un contrôleur d'adresse pour accéder à nos microservices à partir de l'extérieur d'OKE, nous devons également configurer le flux d'air.


-
Mettez à jour votre pipeline de build pour la circulation de l'air et ajoutez un déclencheur au déploiement. Pour démarrer le déploiement automatiquement une fois le pipeline de build terminé, nous devons ajouter un déclencheur sur le pipeline de build airflow-helm.



Le pipeline de build doit maintenant ressembler à ceci.

Tâche 5 : configuration des paramètres du microservice Go
Maintenant, nous devons configurer le go-microservice pour pouvoir déclencher le pipeline de build récemment créé pour la flux d'air.
-
Accédez à votre projet DevOps, cliquez sur Build Pipelines et notez l'OCID du pipeline de build airflow-helm.

-
Sur votre console cloud Oracle, cliquez sur Services de développeur, sous Resource Manager, cliquez sur Piles, sélectionnez la pile Noeuds supplémentaires de la CLI et notez l'OCID.


-
Configurez des variables dans le code go-microservice.
Remarque : les microservices Go sont un morceau de code qui interagira avec les ressources OCI. Puisque nous venons de créer le pipeline de construction pour le flux d'air, nous devons sensibiliser les microservices go au pipeline de construction qu'il doit appeler. Pour cela, nous apporterons des modifications aux valeurs configmap qui seront injectées à l'intérieur du conteneur dans OKE.
-
Obtenez votre URL SSH de microservice pour votre référentiel de code OCI.

-
Ouvrez la console shell Jump-box de bastion et modifiez le fichier
configmap/values.yamlà partir du référentiel de code go-microservice.cd $HOME rm -rf go-microservice git clone your_repo_ssh_url cd go-microservice vi chart-go-microservice/configmap/values.yaml
-
Ajoutez les nouvelles variables suivantes à la fin du fichier
configmap/values.yaml.ENV_RM_STACK_ID: "<paste your stack ocid>" ENV_DEVOPS_BUILD_ID: "<paste your build pipeline ocid" -
Vérifiez les 3 dernières lignes du fichier et assurez-vous que les deux dernières variables ont été ajoutées.
tail -3 chart-go-microservice/configmap/values.yaml
-
Maintenant, nous devons propager les modifications vers le référentiel de code :
git add . git commit -m "added new variables" git push
-
-
Accédez à votre projet DevOps, sélectionnez Pipelines de build et cliquez sur go-microservice-pipeline.
-
Cliquez sur Démarrer l'exécution manuelle afin de réexécuter le pipeline de build pour go-microservice et assurez-vous que les modifications apportées à configmap prennent effet et sont injectées dans le conteneur en cours d'exécution.

-
Vérifiez ensuite le pipeline de déploiement déclenché par ce pipeline de build.

-
Votre microservice est maintenant prêt à fonctionner !
Etape suivante
Pour passer au tutoriel suivant de ce parcours de formation, cliquez ici.
Liens connexes
Remerciements
- Auteur - Joao Tarla (ingénieur solutions Oracle LAD A-Team)
Ressources de formation supplémentaires
Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à davantage de contenu de formation gratuit sur le canal Oracle Learning YouTube. En outre, accédez à education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour consulter la documentation produit, consultez Oracle Help Center.
Create OCI DevOps pipelines for Apache Airflow and deploy it using Helm
F79811-01
April 2023
Copyright © 2023, Oracle and/or its affiliates.