Kif tuża HashiCorp Waypoint biex tikkollabora ma' GitLab CI/CD

Kif tuża HashiCorp Waypoint biex tikkollabora ma' GitLab CI/CD

HashiCorp wera proġett ġdid waypoint fuq HashiCorp Diġitali. Juża fajl ibbażat fuq HCL biex jiddeskrivi l-bini, it-tbaħħir u r-rilaxx tal-applikazzjonijiet għal diversi pjattaformi cloud li jvarjaw minn Kubernetes sa AWS u Google Cloud Run. Aħseb f'Waypoint bħala Terraform u Vagrant flimkien biex jiddeskrivu l-proċess tal-bini, it-tbaħħir, u r-rilaxx tal-applikazzjonijiet tiegħek.

Veru għall-forma, HashiCorp ħareġ Waypoint bħala sors miftuħ, u jiġi ma 'ħafna eżempji. Il-livell tal-orkestratur huwa f'idejk, Waypoint jiġi bħala eżekutibbli li tista 'taħdem direttament fuq il-laptop tiegħek jew mill-għodda tal-orkestrazzjoni CI/CD tal-għażla tiegħek. Il-mira tal-iskjerament tal-applikazzjoni hija wkoll f'idejk, peress li Waypoint jappoġġja Kubernetes, Docker, Google Cloud Run, AWS ECS, u aktar.

Wara l-qari tal-biża dokumentazzjoni u l-chicst eżempji applikazzjonijiet ipprovduti minn HashiCorp, iddeċidejna li nagħtu ħarsa aktar mill-qrib lejn l-orkestrazzjoni tal-Waypoint b'GitLab CI/CD. Biex tagħmel dan, se nieħdu applikazzjoni Node.js sempliċi li taħdem fuq AWS ECS mir-repożitorju tal-kampjuni.

Wara li tikklonajt ir-repożitorju, ejja nħarsu lejn l-istruttura tal-applikazzjoni li turi paġna waħda:

Kif tuża HashiCorp Waypoint biex tikkollabora ma' GitLab CI/CD

Kif forsi innotajt, m'hemm l-ebda Dockerfile f'dan il-proġett. Ma jiġux miżjuda fl-eżempju għax ma tantx għandna bżonnhom, għax Waypoint se jieħu ħsiebhom għalina. Ejja nagħtu ħarsa aktar mill-qrib lejn il-fajl waypoint.hclbiex tifhem x'se tagħmel:

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

Matul il-fażi tal-bini, Waypoint juża Cloud Native Buildpacks (CNB) biex tiddetermina l-lingwa tal-ipprogrammar tal-proġett u toħloq immaġni Docker mingħajr ma tuża Dockerfile. Fil-prinċipju, din hija l-istess teknoloġija li tintuża parzjalment minn GitLab Auto DevOps fil-pass Auto Build. Huwa tajjeb ħafna li tara li s-CNB ta 'CNCF qed jikseb aktar u aktar adozzjoni fost l-utenti tal-industrija.

Ladarba l-immaġni tinbena, Waypoint awtomatikament itellagħha fir-reġistru AWS ECR tagħna sabiex tkun lesta biex tintbagħat. Fl-aħħar tal-assemblaġġ, il-pass tal-kunsinna juża AWS ECS add-on biex niskjeraw l-applikazzjoni tagħna fil-kont AWS tagħna.

Mill-laptop tiegħi huwa faċli. Poġġejt Waypoint li diġà huwa awtentikat fil-kont AWS tiegħi u "jaħdem biss". Imma x'jiġri jekk irrid immur lil hinn mill-laptop tiegħi? Jew forsi nixtieq nawtomatizza din l-iskjerament bħala parti mill-pipeline CI/CD ġenerali tiegħi fejn jitmexxew it-testijiet ta 'integrazzjoni attwali tiegħi, it-testijiet tas-sigurtà, u oħrajn? Din hija l-parti tal-istorja fejn jidħol GitLab CI/CD!

NB Jekk qed tippjana li timplimenta CI / CD jew trid tibda tapplika l-aħjar prattiki għall-bini ta 'pipelines, oqgħod attent għall-kors il-ġdid ta' Slurm. "CI/CD fuq l-eżempju ta' Gitlab CI". Issa huwa disponibbli għall-prezz tal-ordni minn qabel.

Waypoint f'GitLab CI/CD

Biex orkestra dan kollu f'GitLab CI/CD, ejja naraw x'neħtieġu fil-fajl tagħna .gitlab-ci.yml:

  • L-ewwelnett, għandek bżonn immaġini bażi biex taħdem ġewwa fiha. Waypoint jimxi fuq kwalunkwe distribuzzjoni Linux, jeħtieġ biss Docker, sabiex inkunu nistgħu naħdmu b'immaġni ġenerika ta 'Docker.
  • Sussegwentement, għandek bżonn tinstalla Waypoint f'din l-immaġni. Fil-futur nistgħu niġbru meta tibni immaġini u kontenituri dan il-proċess għalik innifsek.
  • Fl-aħħarnett se nħaddmu l-kmandi tal-Waypoint

Hawn fuq hemm dak kollu li se jkollu bżonn il-pipeline tagħna biex imexxi l-iskripts meħtieġa biex iwettaq l-iskjerament, iżda biex niskjeraw fl-AWS, neħtieġu ħaġa oħra: irridu nidħlu fil-kont AWS tagħna. Fid-deskrizzjoni tal-Waypoint għandhom pjanijiet dwar l-awtentikazzjoni u l-awtorizzazzjoni. HashiCorp ħarġet ukoll proġett impressjonanti din il-ġimgħa Konfini. Iżda għalissa, nistgħu nieħdu u nittrattaw l-awtentikazzjoni u l-awtorizzazzjoni aħna stess.

Hemm diversi għażliet għall-awtentikazzjoni GitLab CICD fuq AWS. L-ewwel għażla hija li tuża l-built-in HashiCorp Vault. Tajjeb jekk it-tim tiegħek diġà qed juża Vault għall-ġestjoni tal-kredenzjali. Metodu ieħor li jaħdem jekk it-tim tiegħek jimmaniġġja l-awtorizzazzjoni bl-użu ta 'AWS IAM huwa li tivverifika li l-kompiti ta' kunsinna jiġu attivati ​​permezz GitLab RunnerA li huwa awtorizzat li jibda l-iskjerament permezz tal-IAM. Imma jekk trid tiffamiljarizza ruħek mal-Waypoint u trid tagħmel dan malajr, l-aħħar għażla hija li żżid l-AWS API u ċ-ċwievet Sigrieti tiegħek ma' Varjabbli ambjentali GitLab CI/CD AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Inpoġġuha kollha flimkien

Ladarba aħna dehret l-awtentikazzjoni, nistgħu nibdew! Il-finali tagħna .gitlab-ci.yml tidher bħal din:

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

Tara nibdew b'immaġini docker:latest u waqqaf ftit varjabbli ambjentali meħtieġa minn Waypoint. Fil-kapitlu script iniżżlu l-aħħar Waypoint eżekutibbli u npoġġuh /usr/local/bin. Peress li r-runner tagħna huwa diġà awtorizzat fl-AWS, allura sempliċement niġru waypoint init, build, deploy и release.

L-output tal-kompitu tal-bini se jurina l-endpoint fejn irrombla l-applikazzjoni:

Kif tuża HashiCorp Waypoint biex tikkollabora ma' GitLab CI/CD

Waypoint wieħed minn bosta soluzzjonijiet HashiCorp, li jaħdmu tajjeb ma' GitLab. Pereżempju, minbarra li nwasslu l-applikazzjoni, nistgħu orkestraw l-infrastruttura sottostanti magħha Terraform f'GitLab. Biex tistandardizza s-sigurtà SDLC, nistgħu wkoll nimplimentaw GitLab bil-Vault għall-ġestjoni ta 'sigrieti u tokens f'pipelines CI/CD, li jipprovdu soluzzjoni sħiħa għall-iżviluppaturi u amministraturi li jiddependu fuq ġestjoni sigrieta għall-iżvilupp, l-ittestjar u l-użu tal-produzzjoni.

Soluzzjonijiet konġunti żviluppati minn HashiCorp u GitLab jgħinu lill-kumpaniji jsibu l-aħjar mod biex jiżviluppaw applikazzjonijiet billi jiżguraw ġestjoni konsistenti tal-katina tal-provvista u tal-infrastruttura. Waypoint għamel pass ieħor fid-direzzjoni t-tajba u nistennew bil-ħerqa aktar żvilupp tal-proġett. Tista' titgħallem aktar dwar Waypoint hawnukoll min jesplora dokumentazzjoni и pjan ta’ żvilupp proġett. Żidna l-għarfien tagħna Dokumentazzjoni GitLab CICD. Jekk trid tipprovaha lilek innifsek, tista' tiċċekkja l-eżempju tax-xogħol sħiħ fuq dan ir-repożitorju.

Tista' tifhem il-prinċipji ta' CI / CD, tikkontrolla l-irqaqat kollha ta' xogħol ma' Gitlab CI u tibda tapplika l-aħjar prattiki billi tlesti l-kors bil-vidjo "CI/CD fuq l-eżempju ta' Gitlab CI". Ingħaqad issa!

Sors: www.habr.com

Żid kumment