Nota:
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriversi a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
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
- Completamento dell'esercitazione precedente in questo percorso di apprendimento, Parte 4/6 - Creazione di pipeline OCI DevOps per creare e distribuire i microservizi Golang
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).
-
Andare al registro OCI creato per questa esercitazione.

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

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.
-
Andare al progetto OCI DevOps, fare clic su Repository di codici, quindi creare un repository denominato airflow-helm.

-
Fare clic su Duplica, quindi prendere nota del repository
ssh url.
-
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


Task 3: Creare pipeline di costruzione per lo scafo del flusso d'aria
-
Andare al progetto DevOps, fare clic su Crea pipeline, quindi fare clic su Crea pipeline di build.

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

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

-
Raccogliere i segreti del vault necessari per questa piepline del flusso d'aria.
-
Nella console cloud Oracle fare clic su Identity & Security, fare clic su Vault e selezionare il vault.
-
Ottenere l'OCID per i segreti OCIRUser e OCIRToken creati nei passi precedenti di questa esercitazione.

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

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

Task 4: creare pipeline di distribuzione per lo scafo del flusso d'aria
-
Andare al progetto DevOps, fare clic su Pipeline di distribuzione, quindi creare una nuova pipeline denominata airflow-helm-deploy.

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

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


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


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



La pipeline di build dovrebbe ora essere simile a questa.

Task 5: Configura parametri go-microservice
Ora è necessario configurare go-microservice per attivare la pipeline di build creata di recente per Airflow.
-
Andare al progetto DevOps, fare clic su Crea pipeline e prendere nota dell'OCID per la pipeline di build airflow-helm.

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


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

-
Aprire la console della shell jump-box bastion e modificare il file
configmap/values.yamldal 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
-
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
-
Ora è necessario eseguire il push delle modifiche nel repository di codici:
git add . git commit -m "added new variables" git push
-
-
Passare al progetto DevOps, selezionare Crea pipeline e fare clic su go-microservice-pipeline.
-
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.

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

-
Il tuo go-microservice è pronto per funzionare!
Fase successiva
Per passare all'esercitazione successiva in questo percorso di apprendimento, fare clic qui.
Collegamenti correlati
Approvazioni
- Autore - Joao Tarla (Oracle LAD A-Team Solution Engineer)
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.
Create OCI DevOps pipelines for Apache Airflow and deploy it using Helm
F79811-01
April 2023
Copyright © 2023, Oracle and/or its affiliates.