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-baziran fajl za opisivanje izgradnje, isporuke i lansiranja aplikacija na različitim oblačnim platformama, od Kubernetesa do AWS-a i Google Cloud Runa. Može se zamisliti da je Waypoint spoj Terraform-a i Vagrant-a za opisivanje procesa izgradnje, isporuke i lansiranja vaših aplikacija.

Ne mijenjajući svoj pristup, HashiCorp je objavio Waypoint kao open-source, uz brojne primjere. Razina orkestratora ostaje na vama, Waypoint dolazi kao izvršna datoteka koju možete pokrenuti direktno na svom prijenosnom računalu ili iz alata za orkestraciju CI/CD po vašem izboru. Cilj za implementaciju aplikacija također birate vi, jer Waypoint podržava Kubernetes, Docker, Google Cloud Run, AWS ECS i druge.

Pročitaću uzbudljive dokumentacijo i sjajne primjere aplikacija koje je pružio HashiCorp, odlučili smo da pobliže pogledamo orkestraciju Waypoint-a pomoću GitLab CI/CD. Za to ćemo uzeti jednostavnu Node.js aplikaciju koja se pokreće na AWS ECS iz repozitorija primjera.

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

Kako koristiti HashiCorp Waypoint za suradnju s GitLab CI/CD

Kao što ste mogli primijetiti, u ovom projektu nema Dockerfile-a. Nisu dodati u primjer jer nam u osnovi nisu potrebni, budući da se Waypoint brine o njima 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 izradio sliku za Docker bez korištenja Dockerfile-a. U osnovi, to je ista tehnologija koja se koristi u GitLab-u u okviru Auto DevOps na koraku Auto Build. Drago mi je vidjeti da CNB iz CNCF dobija sve veću popularnost među korisnicima u industriji.

Čim je slika izgrađena, Waypoint automatski će je prenijeti u našu AWS ECR registraciju, kako bi bila spremna za isporuku. Po završetku izgradnje, korak isporuke koristi AWS ECS dodatak za implementaciju naše aplikacije u naš AWS račun.

Na mojem prenosniku je vse enostavno. Namestite Waypoint, ki je že avtenticiran v mojem računu AWS, in "preprosto deluje". Kaj pa, če želim iti izven svojega prenosnika? Ali pa, če želim avtomatizirati to namestitev kot del svojega celotnega CI/CD postopka, kjer se izvajajo moji trenutni integracijski testi, testi varnosti in drugo? Tu se pojavi GitLab CI/CD!

N.B. Če še načrtujete uvedbo CI/CD ali želite začeti uporabljati najboljše prakse za gradnjo cevi, si oglejte nov tečaj Sleerma "CI/CD na primeru Gitlab CI". Sedaj je na voljo po ceni prednaročila.

Waypoint v GitLab CI/CD

Za orkestracijo vsega tega v GitLab CI/CD poglejmo, kaj potrebujemo v našem datoteki .gitlab-ci.yml:

  • Najprej potrebujemo osnovno sliko za zagon znotraj nje. Waypoint deluje na katerem koli Linux distribuciji, potrebuje le Docker, tako da lahko začnemo s splošno Docker sliko.
  • Nato moramo namestiti Waypoint v to sliko. V prihodnosti lahko zgradimo meta build sliko in containeriziramo ta postopek zase.
  • Nazadnje bomo zagnali ukaze Waypoint.

Zgoraj je opisano vse, kar našemu procesu nalaganja potrebuje za izvajanje potrebnih skript za namestitev, vendar bomo za namestitev v AWS potrebovali še eno stvar: moramo se avtenticirati v našem računu AWS. V opisu Waypoint so načrti za avtentikacijo in avtorizacijo. HashiCorp je ta teden tudi izdal impresiven projekt Boundary. Zaenkrat pa lahko samo sami obravnavamo avtentikacijo in avtorizacijo.

Za avtentikacijo GitLab CICD v AWS obstaja več možnosti. Prva možnost je uporaba vgrajenega HashiCorp Vault. To je primerno, če vaša ekipa že uporablja Vault za upravljanje poverilnic. Še en način, ki je primeren, če vaša ekipa upravlja avtorizacijo z AWS IAM — preverite, ali se naloge dobave izvajajo preko GitLab Runner, avtoriziranega za izvajanje namestitev preko IAM. Ampak, če se želite samo seznaniti z Waypoint in to narediti čim hitreje, obstaja še zadnja možnost — dodajte svoje ključne AWS API in Secret v spremenljivke okolja GitLab CI/CD AWS_ACCESS_KEY_ID in AWS_SECRET_ACCESS_KEY.

Zberemo vse skupaj

Ko smo se enkrat spoprijeli z avtentikacijo, lahko začnemo! Naš končni .gitlab-ci.yml izgleda tako:

waypoint:
  image: docker:latest
  stage: build
  services:
    - docker:dind
  # Дефиниция переменных окружения, например `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 začnemo z image-om docker:latest in nastavimo nekaj okolijskih spremenljivk, potrebnih za Waypoint. V razdelku script naložimo zadnjo različico izvršne datoteke Waypoint in jo namestimo v /usr/local/bin. Ker je naš runner že pooblaščen v AWS, naprej preprosto zaženemo waypoint init, build, deploy in release.

Izhod naloge za gradnjo nam bo pokazal endpoint, na katerega smo razdelili aplikacijo:

Kako koristiti HashiCorp Waypoint za suradnju s GitLab CI/CD

Waypoint je ena od mnogo rešitev HashiCorp, ki odlično delujejo z GitLab. Na primer, poleg dobave aplikacije lahko orkestriramo spodnjo infrastrukturo s pomočjo Terraform v GitLab. Za standardizacijo varnosti SDLC lahko prav tako vpeljemo GitLab z Vault za upravljanje skrivnosti in žetonov v CI/CD pipeline-ih, kar zagotavlja celovito rešitev za razvijalce in skrbnike, ki se zanašajo na upravljanje skrivnosti pri razvoju, testiranju in industrijski uporabi.

Skupne rešitve, razvite s strani HashiCorp in GitLab, pomagajo podjetjem najti najboljši način za razvijanje aplikacij, kar zagotavlja dosledno upravljanje tokov dobave in infrastrukture. Waypoint je naredil še en korak v pravo smer, in komaj čakamo na nadaljnji razvoj projekta. Več informacij o Waypointu ovde, prav tako je vredno raziskati dokumentacijo in razvojni načrt projekta. Pridobljeno znanje smo dodali v dokumentacijo GitLab CICD.Če želite vse preizkusiti sami, lahko prenesete popoln delujoč primer iz tega repozitorija..

Razumevanje načel CI/CD, obvladovanje vseh odtenkov dela z GitLab CI in začetek uporabe najboljših praks je mogoče skozi videotečaj "CI/CD na primeru Gitlab CI". Pridružite se!

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster