Nota:

Cree pipelines DevOps de OCI para Apache Airflow y despliéguelos mediante Helm

Introducción

Esta es la parte cinco de una serie de tutoriales de seis partes que muestra cómo desplegar un juego temporal de recursos en un cluster de OKE mediante microservicios de Golang que representan el uso del SDK de OCI, OCI-CLI, Resource Manager, OCI DevOps y Helm para desplegar y destruir Apache Airflow.

Objetivo

En este tutorial aprenderá a crear pipelines DevOps de OCI para Apache Airflow y a desplegarlos con Helm.

Requisitos

Tarea 1: Creación de los artefactos DevOps para Apache Airflow

Antes de crear el pipeline de compilación DevOps, necesitamos crear los artefactos que se conectarán con los resultados de la compilación (paquete Helm e imagen de contenedor).

  1. Vaya al registro de OCI que ha creado para este tutorial.

    T1_1

  2. Vaya a la página DevOps project, haga clic en Artefactos y, a continuación, haga clic en Agregar artefacto. Complete la información como se indica a continuación.

    • Contexto: Este es un manifiesto de Kubernetes para implantar una entrada para la circulación de aire.

    • Nombre: airflow-ingress

    • Tipo: Manifiesto de Kubernetes

    • Origen de artefactos: En línea

    • Pegue el contenido que aparece a continuación en el campo 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. Repita el paso 2 y complete el proceso con la siguiente información.

    • Contexto: Este es un manifiesto de Kubernetes para implantar una entrada para la circulación de aire.

    • Nombre: airflow-namespace

    • Tipo: Manifiesto de Kubernetes

    • Origen de artefactos: En línea

    • Pegue el contenido siguiente en el campo value:

      apiVersion: v1
      kind: Namespace
      metadata:
        name: airflow
      
      
  4. Repita el paso 2 y complete el proceso con la siguiente información.

    • Contexto: Esta es la ubicación del registro de gráfico de Helm.
    • Nombre: helm-airflow
    • Tipo: Gráfico de Helm
    • URL de gráfico de Helm: oci://gru.ocir.io/yournamespace/airflow-helm/airflow
    • Versión: 8.6.1

    Nota: Recuerde sustituir el espacio de nombres del registro de OCI. Este registro se creó en etapas anteriores de este tutorial.

  5. Repita el paso 2 y complete el proceso con la siguiente información.

    • Contexto: Estos son los valores de Helm para el despliegue de flujo de aire.

    • Nombre: values-airflow-helm

    • Tipo: artefacto general

    • Origen de artefactos: En línea

    • Pegue el contenido que aparece a continuación en el campo value. Esto forzará el despliegue en el nuevo pool de nodos.

      nodeSelector:
      name: extra_workload
      

En este punto, debe tener los siguientes artefactos.

T1_1

Tarea 2: Crear el pipeline de compilación DevOps para Airflow

No tendremos ningún código en el repositorio, solo el archivo build_spec.yaml. Esto se debe a que utilizaremos el gráfico de Helm oficial para Apache Airflow.

  1. Vaya al proyecto DevOps de OCI, haga clic en Repositorios de código y, a continuación, cree un repositorio denominado airflow-helm.

    T2_1

  2. Haga clic en Clonar y, a continuación, tome nota del repositorio ssh url.

    T2_1

  3. Vaya al terminal de shell de host bastión, descargue el archivo build_spec.yaml y transfiéralo a su propio repositorio de código en 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

Tarea 3: Crear pipeline de creación para airflow-helm

  1. Vaya al proyecto DevOps, haga clic en Crear pipelines y, a continuación, haga clic en Crear pipeline de compilación.

    T3_1

  2. Haga clic en Agregar nueva etapa y seleccione el tipo Creación gestionada.

    T3_2

  3. Seleccione el repositorio de código principal y, a continuación, seleccione airflow-helm.

    T3_3

  4. Recopile los secretos de la bóveda necesarios para esta línea circular de circulación de aire.

    1. En la consola en la nube de Oracle, haga clic en Identidad y seguridad, haga clic en Almacén y seleccione el almacén.

    2. Obtenga el OCID para los secretos OCIRUser y OCIRToken que ha creado en los pasos anteriores de este tutorial.

      T3_4

  5. Vaya al proyecto DevOps, haga clic en Crear pipelines, seleccione el pipeline de compilación para airflow-helm y, a continuación, haga clic en el separador Parámetros y agregue los siguientes parámetros:

    Nombre de parámetro Valor
    VAULT_HELM_REPO_USER obtenga el OCID secreto de almacén para el usuario de registro OCIRUser
    VAULT_USER_AUTH_TOKEN obtenga el OCID secreto de almacén para el token de registro OCIRToken
    COMPARTMENT_ID obtener el OCID de compartimento
    HELM_REPO gru.ocir.io
    HELM_REPO_URL oci://gru.ocir.io/your_namespace/airflow-helm
    APP_HOST airflow.superocilab.com

    Nota: Asegúrese de definir la región correctamente en la URL de REPO. En este tutorial, es "gru.ocir.io".

    T3_5

  6. Haga clic en el separador Crear pipeline y, a continuación, haga clic en Iniciar ejecución manual para ejecutar manualmente el pipeline de compilación.

    T3_6 T3_6

Tarea 4: Crear pipeline de despliegue para airflow-helm

  1. Vaya al proyecto DevOps, haga clic en Pipelines de despliegue" y, a continuación, cree un nuevo pipeline denominado airflow-helm-deploy.

    T4_1

  2. Cree una nueva etapa para crear un nuevo espacio de nombres en OKE y seleccione Aplicar manifiesto al cluster de Kubernetes.

    T4_2

  3. Cree una nueva etapa para instalar la circulación de aire en OKE y seleccione Aplicar manifiesto al cluster de Kubernetes.

    T4_3

    T4_3

  4. Cree una nueva etapa para crear la entrada para la circulación de aire en OKE y seleccione Aplicar manifiesto a su cluster de Kubernetes. Dado que configuramos un controlador de entrada para acceder a nuestros microservicios desde el exterior de OKE, también necesitamos configurar la circulación de aire.

    T4_4

    T4_4

  5. Actualice el pipeline de compilación para la circulación de aire y agregue un disparador para el despliegue. Para iniciar el despliegue automáticamente una vez finalizado el pipeline de compilación, debemos agregar un disparador al pipeline de compilación airflow-helm.

    T4_5

    T4_5

    T4_5

El pipeline de compilación ahora debería tener este aspecto.

T4_5

Tarea 5: Configuración de parámetros de go-microservice

Ahora debemos configurar el microservicio de usuario para que pueda disparar el pipeline de compilación creado recientemente para el flujo de aire.

  1. Vaya al proyecto DevOps, haga clic en Crear pipelines y tome nota del OCID para el pipeline de compilación airflow-helm.

    T5_1

  2. En la consola en la nube de Oracle, haga clic en Servicios para desarrolladores, en Gestor de recursos, haga clic en Pilas, seleccione la pila Nodos adicionales de CLI y tome nota del OCID.

    T5_2

    T5_2

  3. Configure variables dentro del código go-microservice.

    Nota: Los microservicios básicos son un código que interactuará con los recursos de OCI. Como acabamos de crear el pipeline de compilación para la circulación de aire, necesitamos hacer que los microservicios de lanzamiento sean conscientes del pipeline de compilación que necesita llamar. Para ello, realizaremos algunos cambios en los valores de configmap que se inyectarán dentro del contenedor en OKE.

    • Obtenga la URL de SSH de go-microservice para su repositorio de código de OCI.

      T5_3_1

    • Abra la consola de shell bastion jump-box y edite el archivo configmap/values.yaml del repositorio de código 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

    • Agregue las siguientes variables nuevas al final del archivo configmap/values.yaml.

      ENV_RM_STACK_ID: "<paste your stack ocid>"
      ENV_DEVOPS_BUILD_ID: "<paste your build pipeline ocid"
      
    • Compruebe las 3 últimas líneas del archivo y asegúrese de que ha agregado las dos últimas variables.

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

      T5_3_1

    • Ahora debemos transferir los cambios al repositorio de código:

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

      T5_3_1

  4. Vaya al proyecto DevOps, seleccione Crear pipelines y haga clic en Ir al pipeline de microservicios.

    1. Haga clic en Iniciar ejecución manual para volver a ejecutar el pipeline de compilación para go-microservice y asegurarse de que los cambios en configmap surten efecto y se inyecten dentro del contenedor en ejecución.

      T5_3_1

    2. A continuación, compruebe el pipeline de despliegue disparado por este pipeline de compilación.

      T5_3_1

¡Tu microservicio de go ahora está listo para funcionar!

Siguiente Paso

Para continuar con el siguiente tutorial en esta ruta de aprendizaje, haga clic aquí.

Agradecimientos

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.

Para obtener documentación sobre los productos, visite Oracle Help Center.