Kako koristiti HashiCorp Waypoint za suradnju s GitLab CI/CD

Kako koristiti HashiCorp Waypoint za suradnju s GitLab CI/CD

HashiCorp je pokazao novi projekt Točka rute na HashiCorp Digital. Koristi datoteku temeljenu na HCL-u za opisivanje izrade, isporuke i izdavanja aplikacija za različite platforme u oblaku, od Kubernetesa do AWS-a i Google Cloud Run-a. Zamislite Waypoint kao Terraform i Vagrant spojene kako biste opisali proces izgradnje, slanja i izdavanja vaših aplikacija.

Istini za volju, HashiCorp je objavio Waypoint kao open source i dolazi s puno primjera. Razina orkestratora ovisi o vama, Waypoint dolazi kao izvršna datoteka koju možete pokrenuti izravno na prijenosnom računalu ili pomoću alata za orkestraciju CI/CD-a po izboru. Cilj implementacije aplikacije također ovisi o vama, budući da Waypoint podržava Kubernetes, Docker, Google Cloud Run, AWS ECS i još mnogo toga.

Nakon što sam pročitao super dokumentacija i najotmjeniji primjeri aplikacijama koje pruža HashiCorp, odlučili smo pobliže pogledati orkestraciju Waypointa s GitLab CI/CD. Da bismo to učinili, uzet ćemo jednostavnu Node.js aplikaciju koja radi na AWS ECS iz repozitorija uzoraka.

Nakon kloniranja repozitorija, pogledajmo 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 Dockerfilea. Oni nisu dodani u primjeru jer nam zapravo i ne trebaju, jer će se Waypoint pobrinuti za njih umjesto nas. Pogledajmo pobliže datoteku waypoint.hclda shvatite što će učiniti:

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

Tijekom faze izgradnje, Waypoint koristi Cloud Native Buildpacks (HNB) za određivanje programskog jezika projekta i stvaranje Docker slike bez korištenja Dockerfilea. U principu, radi se o istoj tehnologiji koju dijelom koristi GitLab Auto DevOps u koraku automatske izrade. Sjajno je vidjeti da se CNCF-ov CNB sve više prihvaća među korisnicima u industriji.

Nakon što je slika izgrađena, Waypoint će je automatski učitati u naš AWS ECR registar tako da bude spremna za slanje. Na kraju montaže koristi se korak isporuke AWS ECS dodatak za implementaciju naše aplikacije na naš AWS račun.

S mog laptopa to je lako. Stavio sam Waypoint koji je već autentificiran na mom AWS računu i "jednostavno radi". Ali što se događa ako želim ići dalje od svog prijenosnog računala? Ili možda želim automatizirati ovu implementaciju kao dio svog ukupnog CI/CD cjevovoda gdje se izvode moji trenutni integracijski testovi, sigurnosni testovi i drugi? Ovo je dio priče u koji dolazi GitLab CI/CD!

NB Ako tek planirate implementirati CI / CD ili želite početi primjenjivati ​​najbolje prakse za izgradnju cjevovoda, obratite pozornost na novi tečaj Slurm. "CI/CD na primjeru Gitlab CI". Sada je dostupan po cijeni u pretprodaji.

Putna točka u GitLab CI/CD

Da bismo sve ovo orkestrirali u GitLab CI/CD-u, pogledajmo što nam treba u našoj datoteci .gitlab-ci.yml:

  • Prije svega, potrebna vam je osnovna slika za pokretanje unutar njega. Waypoint radi na bilo kojoj distribuciji Linuxa, treba mu samo Docker, tako da možemo raditi s generičkom slikom Dockera.
  • Zatim morate instalirati Waypoint u ovu sliku. U budućnosti bismo mogli skupljati meta build image i spremite ovaj proces za sebe.
  • Na kraju ćemo pokrenuti naredbe Waypoint

Iznad je sve što će naš cjevovod trebati za pokretanje skripti potrebnih za implementaciju, ali za implementaciju na AWS potrebna nam je još jedna stvar: moramo se prijaviti na naš AWS račun. U opisu međutočke imati planove o autentifikaciji i autorizaciji. HashiCorp je također ovaj tjedan objavio impresivan projekt Granica. Ali za sada, možemo samo preuzeti i sami upravljati autentifikacijom i autorizacijom.

Postoji nekoliko opcija za GitLab CICD autentifikaciju na AWS-u. Prva opcija je korištenje ugrađenog HashiCorp trezor. U redu je ako vaš tim već koristi Vault za upravljanje vjerodajnicama. Druga metoda koja funkcionira ako vaš tim upravlja autorizacijom pomoću AWS IAM-a je provjera da li se zadaci isporuke pokreću putem GitLab trkačA koji je ovlašten pokrenuti implementaciju putem IAM-a. Ali ako se samo želite upoznati s Waypointom i želite to učiniti brzo, posljednja opcija je dodati svoj AWS API i tajne ključeve u GitLab CI/CD varijable okruženja AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Sve skupa

Kad smo shvatili autentifikaciju, možemo početi! Naše finale .gitlab-ci.yml izgleda ovako:

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

Vidite da počinjemo sa slikom docker:latest i postavite nekoliko varijabli okruženja koje zahtijeva Waypoint. U poglavlju script preuzimamo najnoviju izvršnu datoteku Waypoint i stavljamo je /usr/local/bin. Budući da je naš trkač već autoriziran u AWS-u, jednostavno trčimo waypoint init, build, deploy и release.

Izlaz zadatka izgradnje pokazat će nam krajnju točku na kojoj smo pokrenuli aplikaciju:

Kako koristiti HashiCorp Waypoint za suradnju s GitLab CI/CD

Putna točka jedna od brojna HashiCorp rješenja, koji odlično rade s GitLabom. Na primjer, osim isporuke aplikacije, možemo orkestrirati temeljnu infrastrukturu s Terraform u GitLabu. Za standardizaciju SDLC sigurnosti, također možemo implementirati GitLab s trezorom za upravljanje tajnama i tokenima u CI/CD cjevovodima, pružajući cjelovito rješenje za programere i administratore koji se oslanjaju na upravljanje tajnama za razvoj, testiranje i proizvodnu upotrebu.

Zajednička rješenja koja su razvili HashiCorp i GitLab pomažu tvrtkama da pronađu najbolji način za razvoj aplikacija osiguravajući dosljedno upravljanje opskrbnim lancem i infrastrukturom. Waypoint je napravio još jedan korak u pravom smjeru i veselimo se daljnjem razvoju projekta. Možete saznati više o Waypointu здесьtakođer vrijedno istraživanja dokumentacija и plan razvoja projekt. Dodali smo svoje znanje GitLab CICD dokumentacija. Ako želite sami isprobati, možete pogledati kompletan radni primjer na ovo spremište.

Možete razumjeti principe CI / CD, savladati sve suptilnosti rada s Gitlab CI i početi primjenjivati ​​najbolje prakse dovršetkom video tečaja "CI/CD na primjeru Gitlab CI"... Pridruži nam se!

Izvor: www.habr.com

Dodajte komentar