Como usar HashiCorp Waypoint para colaborar con GitLab CI/CD

Como usar HashiCorp Waypoint para colaborar con GitLab CI/CD

HashiCorp mostrou un novo proxecto Punto de ruta en HashiCorp Digital. Usa un ficheiro baseado en HCL para describir a creación, envío e lanzamento de aplicacións para varias plataformas de nube que van desde Kubernetes ata AWS e Google Cloud Run. Pensa en Waypoint como Terraform e Vagrant xuntos para describir o proceso de creación, envío e liberación das túas aplicacións.

Fiel á súa forma, HashiCorp lanzou Waypoint como código aberto e vén con moitos exemplos. O nivel do orquestrador depende de ti, Waypoint vén como un executable que podes executar directamente no teu portátil ou desde a ferramenta de orquestración CI/CD que elixas. O obxectivo de implantación da aplicación tamén depende de ti, xa que Waypoint admite Kubernetes, Docker, Google Cloud Run, AWS ECS e moito máis.

Despois de ler o incrible documentación e o máis chic exemplos aplicacións proporcionadas por HashiCorp, decidimos dar unha ollada máis atenta á orquestración Waypoint con GitLab CI/CD. Para iso, tomaremos unha aplicación Node.js sinxela que se executa en AWS ECS do repositorio de mostra.

Despois de clonar o repositorio, vexamos a estrutura da aplicación que mostra unha páxina:

Como usar HashiCorp Waypoint para colaborar con GitLab CI/CD

Como podes ter notado, non hai ningún Dockerfile neste proxecto. Non se engaden no exemplo porque realmente non os necesitamos, porque Waypoint encargarase deles por nós. Vexamos máis de cerca o ficheiro waypoint.hclpara entender o que vai facer:

project = "example-nodejs"

app "example-nodejs" {
  labels = {
    "service" = "example-nodejs",
    "env" = "dev"
  }

  build {
    use "pack" {}
    registry {
    use "aws-ecr" {
        region = "us-east-1"
        repository = "waypoint-gitlab"
        tag = "latest"
    }
    }
  }

  deploy {
    use "aws-ecs" {
    region = "us-east-1"
    memory = "512"
    }
  }
}

Durante a fase de construción, Waypoint usa Cloud Native Buildpacks (CNB) para determinar a linguaxe de programación do proxecto e crear unha imaxe Docker sen usar un Dockerfile. En principio, esta é a mesma tecnoloxía que usa GitLab en parte DevOps automático no paso Creación automática. É xenial ver que o CNB de CNCF está gañando cada vez máis adopción entre os usuarios da industria.

Unha vez construída a imaxe, Waypoint cargaraa automaticamente no noso rexistro AWS ECR para que estea lista para enviar. Ao final da montaxe, o paso de entrega utiliza Complemento AWS ECS para implementar a nosa aplicación na nosa conta de AWS.

Desde o meu portátil é fácil. Puxen un Waypoint que xa está autenticado na miña conta de AWS e "simplemente funciona". Pero que pasa se quero ir máis aló do meu portátil? Ou quizais quero automatizar esta implementación como parte da miña canalización xeral de CI/CD onde se executan as miñas probas de integración, probas de seguridade e outras actuais? Esta é a parte da historia na que entra GitLab CI/CD!

NB Se só está a planear implementar CI/CD ou quere comezar a aplicar as mellores prácticas para construír canalizacións, preste atención ao novo curso de Slurm. "CI/CD no exemplo de Gitlab CI". Xa está dispoñible para o prezo de reserva.

Waypoint en GitLab CI/CD

Para orquestrar todo isto en GitLab CI/CD, vexamos o que necesitamos no noso ficheiro .gitlab-ci.yml:

  • Primeiro de todo, necesitas unha imaxe base para executar dentro dela. Waypoint execútase en calquera distribución de Linux, só necesita Docker, polo que podemos executar cunha imaxe xenérica de Docker.
  • A continuación, cómpre instalar Waypoint nesta imaxe. No futuro podemos recoller imaxe de meta compilación e contener este proceso por si mesmo.
  • Finalmente executaremos os comandos Waypoint

Por riba está todo o que o noso pipeline necesitará para executar os scripts necesarios para realizar a implementación, pero para implementar en AWS, necesitamos unha cousa máis: debemos iniciar sesión na nosa conta de AWS. Na descrición do waypoint ter plans sobre autenticación e autorización. HashiCorp tamén lanzou un proxecto impresionante esta semana Fronteira. Pero polo de agora, só podemos tomar e xestionar a autenticación e autorización nós mesmos.

Hai varias opcións para a autenticación CICD de GitLab en AWS. A primeira opción é usar o incorporado Bóveda HashiCorp. Está ben se o teu equipo xa está a usar Vault para a xestión de credenciais. Outro método que funciona se o teu equipo xestiona a autorización mediante AWS IAM é comprobar que as tarefas de entrega se activan mediante GitLab RunnerA que está autorizado para iniciar a implantación a través de IAM. Pero se só queres familiarizarte con Waypoint e queres facelo rapidamente, a última opción é engadir a túa API de AWS e as claves secretas a Variables de ambiente CI/CD de GitLab AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Poñer todo isto en conxunto

Unha vez que descubrimos a autenticación, podemos comezar! A nosa final .gitlab-ci.yml parece así:

waypoint:
  image: docker:latest
  stage: build
  services:
    - docker:dind
  # Define environment variables, e.g. `WAYPOINT_VERSION: '0.1.1'`
  variables:
    WAYPOINT_VERSION: ''
    WAYPOINT_SERVER_ADDR: ''
    WAYPOINT_SERVER_TOKEN: ''
    WAYPOINT_SERVER_TLS: '1'
    WAYPOINT_SERVER_TLS_SKIP_VERIFY: '1'
  script:
    - wget -q -O /tmp/waypoint.zip https://releases.hashicorp.com/waypoint/${WAYPOINT_VERSION}/waypoint_${WAYPOINT_VERSION}_linux_amd64.zip
    - unzip -d /usr/local/bin /tmp/waypoint.zip
    - rm -rf /tmp/waypoint*
    - waypoint init
    - waypoint build
    - waypoint deploy
    - waypoint release

Xa vedes que comezamos cunha imaxe docker:latest e establece algunhas variables de ambiente requiridas por Waypoint. No capítulo script descargamos o último executable de Waypoint e poñémolo /usr/local/bin. Como o noso corredor xa está autorizado en AWS, simplemente executamos waypoint init, build, deploy и release.

A saída da tarefa de compilación mostraranos o punto final onde lanzamos a aplicación:

Como usar HashiCorp Waypoint para colaborar con GitLab CI/CD

Waypoint un dos numerosas solucións de HashiCorp, que funcionan moi ben con GitLab. Por exemplo, ademais de entregar a aplicación, podemos orquestrar a infraestrutura subxacente Terraform en GitLab. Para estandarizar a seguridade SDLC, tamén podemos implementar GitLab con Vault para xestionar segredos e tokens en canalizacións CI/CD, proporcionando unha solución completa para desenvolvedores e administradores que dependen da xestión secreta para o desenvolvemento, probas e usos de produción.

As solucións conxuntas desenvolvidas por HashiCorp e GitLab axudan ás empresas a atopar a mellor forma de desenvolver aplicacións garantindo unha xestión coherente da cadea de subministración e da infraestrutura. Waypoint deu un paso máis na dirección correcta e agardamos seguir desenvolvendo o proxecto. Podes obter máis información sobre Waypoint aquítamén merece a pena explorar documentación и plan de desenvolvemento proxecto. Engadimos o noso coñecemento Documentación de GitLab CICD. Se queres probalo por ti mesmo, podes consultar o exemplo de traballo completo en este repositorio.

Podes comprender os principios de CI/CD, dominar todas as sutilezas de traballar con Gitlab CI e comezar a aplicar as mellores prácticas completando o curso de vídeo "CI/CD no exemplo de Gitlab CI". Unirse agora!

Fonte: www.habr.com

Engadir un comentario