Nota:
- Este tutorial requiere acceso a Oracle Cloud. Para registrarse en una cuenta gratuita, consulte Introducción a Oracle Cloud Infrastructure Free Tier.
- Utiliza valores de ejemplo para las credenciales, el arrendamiento y los compartimentos de Oracle Cloud Infrastructure. Al finalizar el laboratorio, sustituya estos valores por otros específicos de su entorno en la nube.
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
- Finalización del tutorial anterior en esta ruta de aprendizaje, Parte 4/6: Crear pipelines DevOps de OCI para crear y desplegar los microservicios de Golang
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).
-
Vaya al registro de OCI que ha creado para este tutorial.
-
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
-
-
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
-
-
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.
-
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.
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.
-
Vaya al proyecto DevOps de OCI, haga clic en Repositorios de código y, a continuación, cree un repositorio denominado airflow-helm.
-
Haga clic en Clonar y, a continuación, tome nota del repositorio
ssh url
. -
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
Tarea 3: Crear pipeline de creación para airflow-helm
-
Vaya al proyecto DevOps, haga clic en Crear pipelines y, a continuación, haga clic en Crear pipeline de compilación.
-
Haga clic en Agregar nueva etapa y seleccione el tipo Creación gestionada.
-
Seleccione el repositorio de código principal y, a continuación, seleccione airflow-helm.
-
Recopile los secretos de la bóveda necesarios para esta línea circular de circulación de aire.
-
En la consola en la nube de Oracle, haga clic en Identidad y seguridad, haga clic en Almacén y seleccione el almacén.
-
Obtenga el OCID para los secretos OCIRUser y OCIRToken que ha creado en los pasos anteriores de este tutorial.
-
-
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".
-
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.
Tarea 4: Crear pipeline de despliegue para airflow-helm
-
Vaya al proyecto DevOps, haga clic en Pipelines de despliegue" y, a continuación, cree un nuevo pipeline denominado airflow-helm-deploy.
-
Cree una nueva etapa para crear un nuevo espacio de nombres en OKE y seleccione Aplicar manifiesto al cluster de Kubernetes.
-
Cree una nueva etapa para instalar la circulación de aire en OKE y seleccione Aplicar manifiesto al cluster de Kubernetes.
-
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.
-
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.
El pipeline de compilación ahora debería tener este aspecto.
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.
-
Vaya al proyecto DevOps, haga clic en Crear pipelines y tome nota del OCID para el pipeline de compilación airflow-helm.
-
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.
-
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.
-
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
-
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
-
Ahora debemos transferir los cambios al repositorio de código:
git add . git commit -m "added new variables" git push
-
-
Vaya al proyecto DevOps, seleccione Crear pipelines y haga clic en Ir al pipeline de microservicios.
-
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.
-
A continuación, compruebe el pipeline de despliegue disparado por este pipeline de compilación.
-
¡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í.
Enlaces relacionados
Agradecimientos
- Autor: Joao Tarla (ingenier de soluciones de equipos A de LAD de Oracle)
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.
Create OCI DevOps pipelines for Apache Airflow and deploy it using Helm
F79811-01
April 2023
Copyright © 2023, Oracle and/or its affiliates.