Integración de GitOps

La integración de DataPower® GitOps ayuda a automatizar la gestión de la configuración mediante el control de versiones. Esta integración da soporte a prácticas y experiencias de creación de GitOps estándar del sector.

En DataPower Gateway, el desarrollo de servicios y la gestión de la configuración son operaciones manuales. Un administrador o desarrollador debe iniciar sesión en una interfaz para crear objetos o cambiar objetos existentes. Antes de la integración de GitOps , DataPower no proporcionaba herramientas para automatizar la gestión de la configuración en varios sistemas utilizando el control de versiones. Con la integración de GitOps , puede llenar la configuración de DataPower desde un sistema de control de versiones como Git y desplegar de forma declarativa la configuración de DataPower y los archivos en varios sistemas.

Restricción: Aunque el volumen de la matriz RAID aparece como un subdirectorio en el directorio local: , no es un subdirectorio. Por lo tanto, la integración de GitOps no funciona con los archivos que almacena en la matriz RAID.

GitOps convierte la configuración persistente en un dominio a JSON y opera en el documento utilizando transformaciones y consultas JSONata. DataPower ejecuta todas las operaciones y plantillas de Git con los mandatos globales gitops-read, gitops-remove-template, gitops-writey gitops-write-template .

Atención: Se aplican las limitaciones siguientes.
  • No puede utilizar GitOps en el dominio default .
  • No puede utilizar GitOps para añadir, configurar o actualizar material criptográfico como, por ejemplo, claves y certificados. Continúe utilizando las prestaciones de DataPower existentes. Nunca almacene material criptográfico en el control de versiones Git .
  • No puede utilizar Git rebase, mergeu operación similar que pueda dar lugar a la necesidad de resolución de conflictos.
  • Si una operación de lectura o grabación sobrescribe o entra en conflicto con cambios en el destino, la operación falla.

Repositorio Git

El ámbito de la implementación de DataPower GitOps es un dominio. La implementación da soporte a varios dominios y plantillas compartidas en el mismo repositorio Git . El diseño del repositorio Git es el siguiente.
/datapower
├── domain1
│   ├── config
│   └── local
├── domain2
│   ├── config
│   └── local
└── templates

El directorio datapower debe existir en la raíz del repositorio Git . En el directorio datapower , es posible que el directorio templates exista y contenga configuraciones de plantilla. Cualquier otro directorio se trata como un dominio DataPower .

Sistema de archivos DataPower

Para cualquier dominio con GitOps configurado, se crean y utilizan los directorios siguientes para el proceso de GitOps .
temporary:///
  gitops/
    config/
      in/           # On gitops-read, location to put configuration. Watched by configuration sequence.
      out/          # On gitops-write, location to put templated configuration to be committed to Git.
      staging/      # Location to put the source from Git to resolve any templated fields.
    templates/
      in/           # Location to put templates from Git. Watched by configuration sequence.
      out/          # On gitops-write-template, location to put templates to be committed to Git.

Lectura de GitOps (gitops-read)

La acción de lectura GitOps extrae la nueva configuración de Git basándose en el objeto GitOps configurado. La configuración del dominio de origen en JSON y las plantillas configuradas se extraen del repositorio Git con el identificador de confirmación en el objeto GitOps . El identificador puede ser una rama, un hash de confirmación o una etiqueta. A continuación, se resuelven los valores de plantilla del JSON de entrada. La configuración ejecutable se coloca en la ubicación que una secuencia de configuración rastrea para que se confirme y persista en la configuración de dominio.

GitOps eliminar plantilla (gitops-remove-template)

La acción de plantilla remota GitOps crea una confirmación para eliminar una sola plantilla y la envía al repositorio Git . Cuando se elimina, la plantilla ya no se puede configurar como una plantilla remota por ningún otro dominio de DataPower . Las confirmaciones creadas por DataPower utilizan el usuario Git y el correo electrónico en el objeto GitOps .

Para escribir una plantilla en el repositorio Git , utilice la plantilla de escritura GitOps (gitops-write-template).

Este objeto de acción sólo está disponible cuando GitOps está configurado en modalidad de lectura/escritura.

Escritura de GitOps (gitops-write)

La acción de escritura GitOps toma la configuración persistente del dominio, la plantilla con las políticas de plantilla en la instancia de GitOps y escribe en el repositorio Git . Las operaciones de confirmación creadas por DataPower utilizan el usuario Git y el correo electrónico en el objeto GitOps .

Esta acción sólo está disponible cuando GitOps está configurado en modalidad de lectura/escritura.

Plantilla de escritura de GitOps (gitops-write-template)

La acción de plantilla de escritura GitOps crea una confirmación para escribir una sola plantilla y la envía al repositorio Git . Cuando se escribe, la plantilla se puede configurar como una plantilla remota por cualquier otro dominio de DataPower . De forma similar a gitops-write, las confirmaciones creadas por DataPower utilizan el usuario Git y el correo electrónico en el objeto GitOps .

Para eliminar una plantilla del repositorio Git , utilice GitOps para eliminar la plantilla (gitops-remove-template).

Este objeto de acción sólo está disponible cuando GitOps está configurado en modalidad de lectura/escritura.

Documentos técnicos disponibles

Los documentos técnicos siguientes están disponibles y contienen información adicional sobre la integración de DataPower GitOps .