Cumu aduprà HashiCorp Waypoint per collaborà cù GitLab CI/CD

Cumu aduprà HashiCorp Waypoint per collaborà cù GitLab CI/CD

HashiCorp hà dimustratu un novu prughjettu Waypoint nantu HashiCorp Digital. Utiliza un schedariu basatu in HCL per descriverà a creazione, a consegna è a liberazione di applicazioni per una varietà di piattaforme nuvola, chì varieghja da Kubernetes à AWS à Google Cloud Run. Pudete pensà à Waypoint cum'è Terraform è Vagrant cumminati per descriverà u prucessu di custruzzione, spedizione è liberazione di e vostre applicazioni.

True to form, HashiCorp hà liberatu Waypoint cum'è open source è vene cun assai esempi. U stratu di l'orchestratore hè di voi, Waypoint vene cum'è un eseguibile chì pudete eseguisce direttamente nantu à u vostru laptop o da u vostru strumentu d'orchestrazione CI / CD di scelta. U scopu di implementà e vostre applicazioni hè ancu di voi, postu chì Waypoint supporta Kubernetes, Docker, Google Cloud Run, AWS ECS, è più.

Dopu avè lettu u maravigghiusu documentazione è i più lussuosi esempi appiicazioni furnite da HashiCorp, avemu decisu di guardà più attente à l'orchestrazione Waypoint utilizendu GitLab CI/CD. Per fà questu, pigliaremu una semplice applicazione Node.js in esecuzione in AWS ECS da u repository di esempi.

Dopu a clonazione di u repository, fighjemu a struttura di l'applicazione chì mostra una pagina:

Cumu aduprà HashiCorp Waypoint per collaborà cù GitLab CI/CD

Comu pudete avè nutatu, stu prughjettu ùn hà micca un Dockerfile. Ùn sò micca aghjuntu in l'esempiu, perchè in principiu ùn avemu micca bisognu, perchè Waypoint hà da piglià cura di elli per noi. Fighjemu un ochju più vicinu à u schedariu waypoint.hclper capisce ciò chì farà:

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 di creazione, Waypoint usa Cloud Native Buildpacks (CNB) per determinà a lingua di prugrammazione di u prughjettu è creà una maghjina Docker senza aduprà un Dockerfile. In principiu, questa hè a stessa tecnulugia chì GitLab usa in parte Auto DevOps à u passu Auto Build. Hè bonu per vede chì u CNB di CNCF hè guadagnatu più adopzione trà l'utilizatori di l'industria.

Una volta chì l'imaghjina hè custruita, Waypoint a caricherà automaticamente in u nostru registru AWS ECR per esse pronta per a consegna. Una volta chì a custruzione hè cumpleta, u passu di consegna usa Add-on AWS ECS per implementà a nostra applicazione à u nostru contu AWS.

Da u mo laptop hè faciule. Aghju messu un Waypoint chì hè digià autenticatu in u mo contu AWS è "funziona solu". Ma chì succede se vogliu andà oltre u mo laptop? O di colpu vogliu automatizà sta implementazione cum'è parte di a mo pipeline CI / CD generale, induve i mo testi d'integrazione in corso, i testi di sicurezza è altri sò eseguiti? Questa hè a parte di a storia induve GitLab CI / CD entra!

NB Sè vo site solu di pianificà à implementà CI / CD o vulete cumincià à applicà e migliori pratiche per a custruzzione di pipeline, fate attenzione à u novu cursu di Slurm "CI / CD cù Gitlab CI cum'è esempiu". Avà hè dispunibule per u prezzu di pre-ordine.

Waypoint in GitLab CI/CD

Per orchestrar tuttu questu in GitLab CI / CD, fighjemu ciò chì avemu bisognu in u nostru schedariu .gitlab-ci.yml:

  • Prima di tuttu, avete bisognu di una maghjina di basa per correre in ellu. Waypoint corre nantu à qualsiasi distribuzione Linux, solu bisognu di Docker, cusì pudemu eseguisce cù una maghjina Docker generica.
  • Dopu avete bisognu di stallà Waypoint in questa maghjina. In u futuru pudemu cullà meta build di l'imagine è containerize stu prucessu per sè stessu.
  • Infine, eseguiremu i cumandamenti Waypoint

U sopra delinea tuttu ciò chì a nostra pipeline hà bisognu di eseguisce i scripts necessarii per compie a implementazione, ma per implementà in AWS avemu bisognu di una cosa più: duvemu esse logati in u nostru contu AWS. In a descrizzione di Waypoint avè piani circa l'autentificazione è l'autorizazione. HashiCorp hà ancu publicatu un prughjettu impressiunanti sta settimana Cuntinenti. Ma per avà, pudemu solu gestisce l'autentificazione è l'autorizazione noi stessi.

Ci sò parechje opzioni per l'autenticazione GitLab CICD in AWS. A prima opzione hè di utilizà u integratu HashiCorp Vault. Va bè se a vostra squadra usa digià Vault per a gestione di credenziali. Un altru metudu chì funziona se u vostru squadra gestisce l'autorizazione cù AWS IAM hè di verificà chì i travaglii di consegna sò attivati ​​via GitLab Runner, autorizatu à eseguisce a implementazione attraversu IAM. Ma sè vo vulete solu familiarizà cù Waypoint è vulete fà rapidamente, ci hè una ultima opzione - aghjunghje a vostra API AWS è e chjave secrete à Variabili d'ambiente GitLab CI/CD AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Mettendu tuttu inseme

Quandu avemu capitu l'autentificazione, pudemu principià! La nostra finale .gitlab-ci.yml pari questu:

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

Vede chì avemu principiatu cù una maghjina docker:latest è stabilisce parechje variabili ambientali richieste da Waypoint. In u capitulu script scarichemu l'ultima versione di l'executable Waypoint è l'installamu in /usr/local/bin. Siccomu u nostru corridore hè digià autorizatu in AWS, dopu corremu solu waypoint init, build, deploy и release.

L'output di u compitu di creazione ci mostrarà l'endpoint induve avemu lanciatu l'applicazione:

Cumu aduprà HashiCorp Waypoint per collaborà cù GitLab CI/CD

Waypoint unu di numerose soluzioni HashiCorp, travaglià bè cù GitLab. Per esempiu, in più di furnisce l'applicazione, pudemu orchestrate l'infrastruttura sottostante utilizendu Terraform nantu à GitLab. Per standardizà a sicurità SDLC, pudemu ancu implementà GitLab cù Vault per a gestione di sicreti è tokens in pipeline CI/CD, chì furnisce una soluzione olistica per sviluppatori è amministratori chì si basanu in a gestione di secreti per u sviluppu, a prova è l'usu di a produzzione.

E suluzioni cumune sviluppate da HashiCorp è GitLab aiutanu l'imprese à truvà un modu megliu per sviluppà applicazioni fornendu una gestione coerente di i pipelines di consegna è l'infrastruttura. Waypoint hà fattu un altru passu in a direzione ghjusta è aspittemu avanti à u sviluppu cuntinuatu di u prugettu. Pudete sapè più nantu à Waypoint ccàvale ancu a pena di esplorà documentazione и pianu di sviluppu prughjettu. Avemu aghjustatu a cunniscenza chì avemu acquistatu Documentazione GitLab CICD. Sè vo vulete pruvà tuttu sè stessu, pudete piglià un esempiu di travagliu cumpletu in stu repository.

Pudete capisce i principii di CI / CD, ammaistrà tutte l'intricacies di travaglià cù Gitlab CI è cuminciate à applicà e migliori pratiche per piglià un video cursu. "CI / CD cù Gitlab CI cum'è esempiu". Unisciti à noi!

Source: www.habr.com

Add a comment