Nota:

Creare pipeline DevOps OCI per Apache Airflow e distribuirle utilizzando Helm

Introduzione

Questa è la parte cinque di una serie di esercitazioni in sei parti che ti mostra come distribuire un set temporaneo di risorse in un cluster OKE utilizzando microservizi Golang che rappresentano l'uso di SDK OCI, OCI-CLI, Resource Manager, OCI DevOps e Helm per distribuire ed eliminare Apache Airflow.

Obiettivo

In questa esercitazione viene descritto come creare pipeline DevOps OCI per Apache Airflow e distribuirle utilizzando Helm.

Prerequisiti

Task 1: creare gli artifact DevOps per Apache Airflow

Prima di creare la pipeline di build DevOps, è necessario creare gli artifact che si connetteranno ai risultati della build (pacchetto Helm e immagine contenitore).

  1. Andare al registro OCI creato per questa esercitazione.

    T1_1

  2. Andare alla pagina DevOps progetto, fare clic su Artifact e quindi su Aggiungi artifact. Compilare le informazioni come indicato di seguito.

    • Contesto: questo file manifesto Kubernetes consente di implementare un'entrata per il flusso dell'aria.

    • Nome: airflow-ingress

    • Tipo: file manifesto Kubernetes

    • Origine artifact: In linea

    • Incollare il contenuto riportato di seguito nel campo valore.

      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. Ripetere il Passo 2 e completare il processo come indicato di seguito.

    • Contesto: questo file manifesto Kubernetes consente di implementare un'entrata per il flusso dell'aria.

    • Nome: airflow-namespace

    • Tipo: file manifesto Kubernetes

    • Origine artifact: In linea

    • Incollare il contenuto riportato di seguito nel campo valore.

      apiVersion: v1
      kind: Namespace
      metadata:
        name: airflow
      
      
  4. Ripetere il Passo 2 e completare il processo come indicato di seguito.

    • Contesto: Questa è la posizione del registro Helm Chart.
    • Nome: helm-airflow
    • Tipo: grafico Helm
    • URL grafico Helm: oci://gru.ocir.io/yournamespace/airflow-helm/airflow
    • Versione: 8.6.1

    Nota: non dimenticare di sostituire lo spazio dei nomi dal registro OCI. Questo registro è stato creato nelle fasi precedenti di questa esercitazione.

  5. Ripetere il Passo 2 e completare il processo come indicato di seguito.

    • Contesto: valori Helm per la distribuzione del flusso aereo.

    • Nome: values-airflow-helm

    • Tipo: artifact generale

    • Origine artifact: In linea

    • Incollare il contenuto riportato di seguito nel campo valore. Questa operazione forzerà la distribuzione nel nuovo pool di nodi.

      nodeSelector:
      name: extra_workload
      

A questo punto è necessario disporre dei seguenti artifact.

T1_1

Task 2: creare la pipeline di build DevOps per il flusso dell'aria

Il repository non contiene codice, solo il file build_spec.yaml. Questo perché useremo il grafico Helm ufficiale per Apache Airflow.

  1. Andare al progetto OCI DevOps, fare clic su Repository di codici, quindi creare un repository denominato airflow-helm.

    T2_1

  2. Fare clic su Duplica, quindi prendere nota del repository ssh url.

    T2_1

  3. Andare al terminale shell host bastion, scaricare il file build_spec.yaml ed eseguirne il push nel repository di codici personale in 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

Task 3: Creare pipeline di costruzione per lo scafo del flusso d'aria

  1. Andare al progetto DevOps, fare clic su Crea pipeline, quindi fare clic su Crea pipeline di build.

    T3_1

  2. Fare clic su Aggiungi nuova fase e selezionare il tipo Build gestita.

    T3_2

  3. Selezionare il repository del codice primario, quindi selezionare airflow-helm.

    T3_3

  4. Raccogliere i segreti del vault necessari per questa piepline del flusso d'aria.

    1. Nella console cloud Oracle fare clic su Identity & Security, fare clic su Vault e selezionare il vault.

    2. Ottenere l'OCID per i segreti OCIRUser e OCIRToken creati nei passi precedenti di questa esercitazione.

      T3_4

  5. Andare al progetto DevOps, fare clic su Genera pipeline, selezionare la pipeline di build per airflow-helm, quindi fare clic sulla scheda Parametri e aggiungere i parametri riportati di seguito.

    Nome parametro Valore
    VAULT_HELM_REPO_USER ottenere l'OCID segreto vault per l'utente del registro OCIRUser
    VAULT_USER_AUTH_TOKEN ottenere l'OCID segreto vault per il token di registro OCIRToken
    COMPARTMENT_ID ottenere l'OCID del compartimento
    HELM_REPO gru.ocir.io
    HELM_REPO_URL oci://gru.ocir.io/your_namespace/airflow-helm
    APP_HOST airflow.superocilab.com

    Nota: assicurarsi di impostare correttamente l'area nell'URL REPO. In questa esercitazione è "gru.ocir.io".

    T3_5

  6. Fare clic sulla scheda Crea pipeline, quindi su Avvia esecuzione manuale per eseguire manualmente la pipeline di build.

    T3_6 T3_6

Task 4: creare pipeline di distribuzione per lo scafo del flusso d'aria

  1. Andare al progetto DevOps, fare clic su Pipeline di distribuzione, quindi creare una nuova pipeline denominata airflow-helm-deploy.

    T4_1

  2. Creare una nuova fase per creare un nuovo spazio di nomi in OKE, selezionare Applica manifest al cluster Kubernetes.

    T4_2

  3. Creare una nuova fase per installare il flusso dell'aria in OKE, selezionare Applica manifesto al cluster Kubernetes.

    T4_3

    T4_3

  4. Creare una nuova fase per creare l'entrata per il flusso dell'aria in OKE, selezionare Applica manifesto al cluster Kubernetes. Poiché abbiamo impostato un controller dell'indirizzo per accedere ai nostri microservizi dall'esterno di OKE, è necessario configurare anche il flusso dell'aria.

    T4_4

    T4_4

  5. Aggiornare la pipeline di build per il flusso dell'aria e aggiungere un trigger alla distribuzione. Per avviare automaticamente la distribuzione al termine della pipeline di build, è necessario aggiungere un trigger nella pipeline di build airflow-helm.

    T4_5

    T4_5

    T4_5

La pipeline di build dovrebbe ora essere simile a questa.

T4_5

Task 5: Configura parametri go-microservice

Ora è necessario configurare go-microservice per attivare la pipeline di build creata di recente per Airflow.

  1. Andare al progetto DevOps, fare clic su Crea pipeline e prendere nota dell'OCID per la pipeline di build airflow-helm.

    T5_1

  2. Nella console cloud Oracle fare clic su Servizi per sviluppatori, in Resource Manager, fare clic su Stack, selezionare lo stack Nodi supplementari CLI e prendere nota dell'OCID.

    T5_2

    T5_2

  3. Impostare le variabili nel codice go-microservice.

    Nota: i go-microservizi sono una parte del codice che interagirà con le risorse OCI. Poiché abbiamo appena creato la pipeline di build per il flusso dell'aria, dobbiamo rendere i go-microservizi consapevoli della pipeline di build da chiamare. Per questo motivo, verranno apportate alcune modifiche ai valori di configmap che verranno inseriti all'interno del contenitore in OKE.

    • Ottenere l'URL ssh go-microservice per il repository di codici OCI.

      T5_3_1

    • Aprire la console della shell jump-box bastion e modificare il file configmap/values.yaml dal repository di codici 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

    • Aggiungere le seguenti nuove variabili alla fine del file configmap/values.yaml.

      ENV_RM_STACK_ID: "<paste your stack ocid>"
      ENV_DEVOPS_BUILD_ID: "<paste your build pipeline ocid"
      
    • Controllare le ultime 3 righe del file e assicurarsi di avere le ultime due variabili aggiunte.

      tail -3 chart-go-microservice/configmap/values.yaml
      

      T5_3_1

    • Ora è necessario eseguire il push delle modifiche nel repository di codici:

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

      T5_3_1

  4. Passare al progetto DevOps, selezionare Crea pipeline e fare clic su go-microservice-pipeline.

    1. Fare clic su Avvia esecuzione manuale per rieseguire la pipeline di build per go-microservice e assicurarsi che le modifiche apportate alla mappa di configurazione abbiano effetto e vengano inserite all'interno del contenitore in esecuzione.

      T5_3_1

    2. Controllare quindi la pipeline di distribuzione attivata da questa pipeline di build.

      T5_3_1

Il tuo go-microservice è pronto per funzionare!

Fase successiva

Per passare all'esercitazione successiva in questo percorso di apprendimento, fare clic qui.

Approvazioni

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi a contenuti di formazione gratuiti sul canale YouTube di Oracle Learning. Inoltre, visitare education.oracle.com/learning-explorer per diventare Explorer di Oracle Learning.

Per la documentazione sul prodotto, visitare il sito Oracle Help Center.