Kako koristiti HashiCorp Waypoint za saradnju sa GitLab CI/CD

Kako koristiti HashiCorp Waypoint za saradnju sa GitLab CI/CD

HashiCorp je pokazao novi projekat putna tačka na HashiCorp Digital. Koristi datoteku zasnovanu na HCL-u da opiše izgradnju, isporuku i izdavanje aplikacija za različite platforme u oblaku, u rasponu od Kubernetesa preko AWS-a do Google Cloud Run-a. Možete zamisliti Waypoint kao Terraform i Vagrant u kombinaciji da opišete proces izgradnje, otpreme i objavljivanja vaših aplikacija.

Istina, HashiCorp je objavio Waypoint kao otvoreni kod i dolazi s mnogo primjera. Sloj orkestratora je na vama, Waypoint dolazi kao izvršna datoteka koju možete pokrenuti direktno na vašem laptopu ili iz vašeg CI/CD alata za orkestraciju po izboru. Cilj za implementaciju vaših aplikacija je također na vama, jer Waypoint podržava Kubernetes, Docker, Google Cloud Run, AWS ECS i još mnogo toga.

Nakon čitanja fantastičnog dokumentaciju i najluksuznije primjere aplikacijama koje pruža HashiCorp, odlučili smo da pobliže pogledamo Waypoint orkestraciju koristeći GitLab CI/CD. Da bismo to uradili, uzećemo jednostavnu Node.js aplikaciju koja radi na AWS ECS iz skladišta primera.

Nakon kloniranja spremišta, pogledajmo strukturu aplikacije koja prikazuje jednu stranicu:

Kako koristiti HashiCorp Waypoint za saradnju sa GitLab CI/CD

Kao što ste možda primijetili, ovaj projekat nema Dockerfile. Nisu dodani u primjeru, jer nam u principu ne trebaju, jer će se Waypoint pobrinuti za njih umjesto nas. Pogledajmo detaljnije fajl waypoint.hclda razumete šta će uraditi:

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

Tokom faze izgradnje, Waypoint koristi Cloud Native Buildpacks (CNB) za određivanje programskog jezika projekta i kreiranje Docker slike bez korištenja Dockerfile-a. U principu, ovo je ista tehnologija koju GitLab dijelom koristi Auto DevOps u koraku Auto Build. Dobro je vidjeti da je CNCF-ov CNB sve više prihvaćen među korisnicima industrije.

Kada je slika napravljena, Waypoint će je automatski učitati u naš AWS ECR registar tako da je spremna za isporuku. Kada se izgradnja završi, koristi se korak isporuke AWS ECS dodatak da implementiramo našu aplikaciju na naš AWS nalog.

Sa mog laptopa - sve je jednostavno. Stavio sam Waypoint koji je već autentifikovan na moj AWS nalog i "samo radi". Ali šta se dešava ako želim da prevaziđem svoj laptop? Ili odjednom želim automatizirati ovu implementaciju kao dio svog cjelokupnog CI/CD cevovoda, gdje se izvode moji tekući testovi integracije, sigurnosni testovi i drugi? Ovo je dio priče u kojem dolazi GitLab CI/CD!

NB Ako tek planirate implementirati CI/CD ili želite početi primjenjivati ​​najbolje prakse za izgradnju cjevovoda, obratite pažnju na Slurmov novi kurs “CI/CD koristeći Gitlab CI kao primjer”. Sada je dostupan po cijeni u pretprodaji.

Waypoint u GitLab CI/CD

Da bismo sve ovo orkestrirali u GitLab CI/CD, pogledajmo šta nam treba u našem fajlu .gitlab-ci.yml:

  • Prije svega, potrebna vam je osnovna slika koja će se pokrenuti unutar nje. Waypoint radi na bilo kojoj Linux distribuciji, potreban joj je samo Docker, tako da možemo raditi s generičkom Docker slikom.
  • Zatim morate instalirati Waypoint na ovoj slici. U budućnosti možemo prikupljati slika meta build i spremite ovaj proces za sebe.
  • Na kraju ćemo pokrenuti naredbe Waypoint

Gore navedeno opisuje sve što će našem kanalu trebati da pokrene skripte potrebne za završetak implementacije, ali za implementaciju na AWS trebat će nam još jedna stvar: moramo biti prijavljeni na naš AWS nalog. U opisu Waypoint postoje planovi o autentifikaciji i autorizaciji. HashiCorp je također objavio impresivan projekat ove sedmice granica. Ali za sada možemo sami upravljati autentifikacijom i autorizacijom.

Postoji nekoliko opcija za GitLab CICD autentifikaciju u AWS-u. Prva opcija je korištenje ugrađenog HashiCorp trezor. Ovo je sjajno ako vaš tim već koristi Vault za upravljanje vjerodajnicama. Druga opcija koja radi ako vaš tim upravlja autorizacijom koristeći AWS IAM je da provjerite da li su zadaci isporuke pokrenuti putem GitLab Runner, ovlašten za pokretanje implementacije putem IAM-a. Ali ako se samo želite upoznati s Waypointom i želite to učiniti brzo, postoji još jedna posljednja opcija - dodajte svoj AWS API i tajne ključeve u GitLab CI/CD varijable okruženja AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Sve zajedno

Kada shvatimo 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 postaviti nekoliko varijabli okruženja koje zahtijeva Waypoint. U poglavlju script preuzimamo najnoviju verziju izvršnog programa Waypoint i instaliramo ga /usr/local/bin. Pošto je naš trkač već autorizovan u AWS-u, zatim jednostavno pokrećemo waypoint init, build, deploy и release.

Izlaz zadatka izgradnje će nam pokazati krajnju tačku na kojoj smo pokrenuli aplikaciju:

Kako koristiti HashiCorp Waypoint za saradnju sa GitLab CI/CD

Putna tačka jedna od brojna HashiCorp rješenja, odlično radi sa GitLabom. Na primjer, pored isporuke aplikacije, možemo orkestrirati osnovnu infrastrukturu koristeći Terraform na GitLabu. Za standardizaciju SDLC sigurnosti, također možemo implementirati GitLab sa Vaultom za upravljanje tajnama i tokenima u CI/CD cjevovodima, pružajući holističko rješenje za programere i administratore koji se oslanjaju na upravljanje tajnama za razvoj, testiranje i proizvodnju.

Zajednička rešenja koja su razvili HashiCorp i GitLab pomažu kompanijama da pronađu bolji način za razvoj aplikacija obezbeđujući dosledno upravljanje cevovodima isporuke i infrastrukturom. Waypoint je napravio još jedan korak u pravom smjeru i radujemo se nastavku razvoja projekta. Možete saznati više o Waypointu ovdje, također vrijedi istražiti dokumentaciju и razvojni plan projekat. Dodali smo znanje koje smo stekli GitLab CICD dokumentacija. Ako želite sve sami isprobati, možete uzeti kompletan radni primjer ovo spremište.

Možete razumjeti principe CI/CD-a, savladati sve zamršenosti rada sa Gitlab CI-om i početi primjenjivati ​​najbolje prakse pohađanjem video kursa “CI/CD koristeći Gitlab CI kao primjer”. Pridruži nam se!

izvor: www.habr.com

Dodajte komentar