Kako koristiti HashiCorp Waypoint za suradnju s GitLab CI/CD

Kako koristiti HashiCorp Waypoint za suradnju s GitLab CI/CD

HashiCorp je predstavio novi projekt Waypoint na HashiCorp Digital. Koristi HCL datoteku za opisivanje izgradnje, isporuke i objavljivanja aplikacija za različite oblake, od Kubernetes-a do AWS-a i Google Cloud Run-a. Može se reći da je Waypoint spoj Terraform-a i Vagrant-a za opisivanje procesa izgradnje, isporuke i puštanja vaših aplikacija.

Ostajući vjerna sebi, HashiCorp je lansirala Waypoint s otvorenim kodom, uz mnoge primjere. Razina orkestratora ostaje na vama, Waypoint dolazi kao izvršna datoteka koju možete pokrenuti izravno na vašem prijenosnom računalu ili iz odabranog CI/CD alata. Cilj za implementaciju aplikacija također birate vi, budući da Waypoint podržava Kubernetes, Docker, Google Cloud Run, AWS ECS i druge.

Nakon što smo pročitali fascinantne dokumentaciju i izvanredne primjeri aplikacije koje je pružio HashiCorp, odlučili smo se pobliže upoznati s orkestracijom Waypoint pomoću GitLab CI/CD. Da bismo to učinili, uzet ćemo jednostavnu Node.js aplikaciju koju pokrećemo na AWS ECS-u iz repozitorija s primjerima.

Nakon kloniranja repozitorija, pogledat ćemo strukturu aplikacije koja prikazuje jednu stranicu:

Kako koristiti HashiCorp Waypoint za suradnju s GitLab CI/CD

Kao što ste možda primijetili, u ovom projektu nema Dockerfile-a. Nisu dodani u primjer, jer zapravo nisu potrebni, jer će se Waypoint pobrinuti za njih umjesto nas. Pogledajmo detaljnije datoteku waypoint.hcl, kako bismo razumjeli što će raditi:

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"
    }
  }
}

U fazi izgradnje Waypoint koristi Cloud Native Buildpacks (CNB), kako bi odredio programski jezik projekta i stvorio Docker sliku bez korištenja Dockerfile-a. U osnovi, to je ista tehnologija koja se koristi u GitLab-u u dijelu Auto DevOps na koraku Auto Build. Drago nam je vidjeti da CNB od CNCF sve više dobiva na popularnosti među korisnicima iz industrije.

Jednom kada je slika izgrađena, Waypoint automatski prebacuje u naš AWS ECR registar kako bi bila spremna za isporuku. Na kraju izgradnje, korak isporuke koristi AWS ECS dodatak za implementaciju naše aplikacije u naš AWS račun.

Sa svog laptopa - sve je jednostavno. Instaliram Waypoint, koji je već autentificiran u mom AWS računu, i jednostavno radi. Ali što ako želim ići izvan svog laptopa? Ili odjednom želim automatizirati ovo implementaciju kao dio mog općeg CI/CD cjevovoda, gdje se pokreću moji trenutačni integracijski testovi, testovi sigurnosti i drugo? Ovo je dio priče gdje dolazi GitLab CI/CD!

Napomena. Ako planirate implementaciju CI/CD ili želite započeti primjenjivati najbolje prakse izgradnje cjevovoda, obratite pozornost na novi Slёrm kurs «CI/CD na primjeru GitLab CI». Trenutno je dostupan po cijeni prednarudžbe.

Waypoint u GitLab CI/CD

Za orkestraciju svega ovoga u GitLab CI/CD, pogledajmo što će nam trebati u našoj datoteci .gitlab-ci.yml:

  • Prvo, potreban nam je osnovni image za pokretanje unutar njega. Waypoint radi na bilo kojoj distribuciji Linuxa, treba mu samo Docker, tako da možemo pokrenuti s generičkim Docker imageom.
  • Zatim treba instalirati Waypoint u ovaj image. U budućnosti možemo izraditi meta build image i containerizirati ovaj proces za sebe.
  • Na kraju ćemo pokrenuti Waypoint naredbe

Gore je navedeno sve što će našem cjevovodu biti potrebno za pokretanje potrebnih skripti za implementaciju, ali za implementaciju u AWS-u trebat će nam još jedna stvar: moramo se autentificirati u našem AWS računu. U opisu Waypointa postoji planovi o autentifikaciji i autorizaciji. HashiCorp je ovog tjedna također izdao impresivan projekt Boundary. No, trenutno možemo jednostavno sami obraditi autentifikaciju i autorizaciju.

Za autentifikaciju GitLab CI/CD u AWS-u postoji nekoliko opcija. Prva opcija - korištenje ugrađenog HashiCorp Vault. Ovo je prikladno ako vaša ekipa već koristi Vault za upravljanje vjerodajnicama. Još jedan način koji odgovara, ako vaša ekipa upravlja autorizacijom putem AWS IAM - provjerite da su zadatci isporuke pokrenuti kroz GitLab Runnere, autoriziran za pokretanje implementacije kroz IAM. No, ako samo želite upoznati Waypoint i želite to učiniti brže, postoji posljednja opcija - dodajte svoje AWS API i Secret ključeve u varijable okruženja GitLab CI/CD AWS_ACCESS_KEY_ID i AWS_SECRET_ACCESS_KEY.

Sakupljamo sve zajedno

Kada se razjasnimo s autentifikacijom, možemo početi! Naš konačni .gitlab-ci.yml izgleda ovako:

waypoint:
  image: docker:latest
  stage: build
  services:
    - docker:dind
  # Definirajte varijable okruženja, npr. `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

Vidite da počinjemo s slikom docker:latest i postavljamo nekoliko varijabli okruženja potrebnih za Waypoint. U odjeljku script preuzimamo najnoviju verziju izvršne datoteke Waypoint i postavljamo je u /usr/local/bin. Budući da je naš runner već autoriziran u AWS-u, jednostavno pokrećemo waypoint init, build, deploy i release.

Izvještaj o zadatku za izgradnju pokazat će nam endpoint na koji smo implementirali aplikaciju:

Kako koristiti HashiCorp Waypoint za suradnju s GitLab CI/CD

Waypoint je jedno od bezbrojnih rješenja HashiCorpa, koja se odlično integriraju s GitLabom. Na primjer, uz isporuku aplikacije, možemo orkestrirati temeljnu infrastrukturu pomoću Terraform u GitLabu. Za standardizaciju sigurnosti SDLC-a, također možemo implementirati GitLab s Vaultom za upravljanje tajnama i tokenima u CI/CD cjevovodima, pružajući sveobuhvatno rješenje za programere i administratore koji se oslanjaju na upravljanje tajnama tijekom razvoja, testiranja i industrijske upotrebe.

Zajednička rješenja koja su razvili HashiCorp i GitLab pomažu tvrtkama pronaći najbolji način za razvoj aplikacija, osiguravajući dosljedno upravljanje protokom isporuke i infrastrukturom. Waypoint je učinio još jedan korak u pravom smjeru, a s nestrpljenjem očekujemo daljnji razvoj projekta. Možete saznati više o Waypoint ovdje, također vrijedi istražiti dokumentaciju i plan razvoja projekta. Dodali smo stečena znanja u dokumentaciju GitLab CI/CD. Ako želite sve isprobati sami, možete preuzeti potpuno funkcionalan primjer iz ove repozitorije.

Razumjeti principe CI/CD-a, svladati sve tajne rada s GitLab CI-jem i započeti primjenu najboljih praksi možete kroz video tečaj «CI/CD na primjeru GitLab CI». Pridružite se!

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster