Remarque :

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

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

  1. Accédez au registre OCI que vous avez créé pour ce tutoriel.

    T1_1

  2. 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
      
      
  3. 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
      
      
  4. 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.

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

T1_1

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.

  1. Accédez à votre projet OCI DevOps, cliquez sur Référentiels de code, puis créez un référentiel nommé airflow-helm.

    T2_1

  2. Cliquez sur Cloner, puis notez votre référentiel ssh url.

    T2_1

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

    T2_3

    T2_3

    T2_3

Tâche 3 : Créer un pipeline de construction pour l'aide à la circulation d'air

  1. Accédez à votre projet DevOps, cliquez sur Pipelines de build, puis sur Créer un pipeline de build.

    T3_1

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

    T3_2

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

    T3_3

  4. Rassemblez les secrets de coffre nécessaires pour ce circuit d'aération.

    1. Sur votre console cloud Oracle, cliquez sur Identité et sécurité, cliquez sur Coffre et sélectionnez votre coffre.

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

      T3_4

  5. 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".

    T3_5

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

    T3_6 T3_6

Tâche 4 : Créer un pipeline de déploiement pour l'aide à la circulation d'air

  1. Accédez à votre projet DevOps, cliquez sur Pipelines de déploiement, puis créez un pipeline nommé airflow-helm-deploy.

    T4_1

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

    T4_2

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

    T4_3

    T4_3

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

    T4_4

    T4_4

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

    T4_5

    T4_5

    T4_5

Le pipeline de build doit maintenant ressembler à ceci.

T4_5

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.

  1. Accédez à votre projet DevOps, cliquez sur Build Pipelines et notez l'OCID du pipeline de build airflow-helm.

    T5_1

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

    T5_2

    T5_2

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

      T5_3_1

    • 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   
      

      T5_3_1

    • 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
      

      T5_3_1

    • Maintenant, nous devons propager les modifications vers le référentiel de code :

       git add .
       git commit -m "added new variables"
       git push
      
      

      T5_3_1

  4. Accédez à votre projet DevOps, sélectionnez Pipelines de build et cliquez sur go-microservice-pipeline.

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

      T5_3_1

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

      T5_3_1

Votre microservice est maintenant prêt à fonctionner !

Etape suivante

Pour passer au tutoriel suivant de ce parcours de formation, cliquez ici.

Remerciements

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.