Hoe kinne jo HashiCorp Waypoint brûke om gear te wurkjen mei GitLab CI / CD

Hoe kinne jo HashiCorp Waypoint brûke om gear te wurkjen mei GitLab CI / CD

HashiCorp liet in nij projekt sjen waypoint op HashiCorp Digital. It brûkt in HCL-basearre bestân om de bou, levering en frijlitting fan applikaasjes te beskriuwen foar in ferskaat oan wolkplatfoarms, fariearjend fan Kubernetes nei AWS oant Google Cloud Run. Jo kinne tinke oan Waypoint as Terraform en Vagrant kombineare om it proses te beskriuwen fan it bouwen, ferstjoeren en frijjaan fan jo applikaasjes.

Wier oan foarm, HashiCorp hat Waypoint frijlitten as iepen boarne en komt mei in protte foarbylden. De orkestraasjelaach is oan jo, Waypoint komt as in útfierber dat jo direkt kinne rinne op jo laptop of fan jo kar foar CI / CD-orkestraasje-ark. It doel foar it ynsetten fan jo applikaasjes is ek oan jo, om't Waypoint Kubernetes, Docker, Google Cloud Run, AWS ECS, en mear stipet.

Nei it lêzen fan de bjusterbaarlike dokumintaasje en de meast lúkse foarbylden applikaasjes levere troch HashiCorp, hawwe wy besletten in tichterby te besjen op Waypoint-orkestraasje mei GitLab CI / CD. Om dit te dwaan, sille wy in ienfâldige Node.js-applikaasje nimme dy't rint op AWS ECS fanút it foarbyldrepository.

Litte wy nei it klonen fan it repository sjen nei de struktuer fan 'e applikaasje dy't ien side werjaan:

Hoe kinne jo HashiCorp Waypoint brûke om gear te wurkjen mei GitLab CI / CD

Lykas jo miskien hawwe opfallen, hat dit projekt gjin Dockerfile. Se wurde net tafoege yn it foarbyld, om't wy se yn prinsipe net nedich hawwe, om't Waypoint se foar ús fersoarget. Litte wy it bestân in tichterby besjen waypoint.hclom te begripen wat it sil dwaan:

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

Tidens de boufaze brûkt Waypoint Cloud Native Buildpacks (NBC) om de programmeartaal fan it projekt te bepalen en in Docker-ôfbylding te meitsjen sûnder in Dockerfile te brûken. Yn prinsipe is dit deselde technology dy't GitLab foar in part brûkt Auto DevOps by de Auto Build stap. It is goed om te sjen dat de CNB fan CNCF mear oanname krijt ûnder brûkers fan 'e yndustry.

Sadree't de ôfbylding is boud, sil Waypoint it automatysk uploade nei ús AWS ECR-register, sadat it klear is foar levering. Ienris de bou is foltôge, wurdt de leveringstap brûkt AWS ECS add-on om ús applikaasje yn te setten op ús AWS-akkount.

Fan myn laptop - alles is ienfâldich. Ik set in Waypoint dat al authentisearre is yn myn AWS-akkount en it "wurket gewoan". Mar wat bart der as ik wol fierder gean as myn laptop? Of wol ik dizze ynset ynienen automatisearje as ûnderdiel fan myn algemiene CI/CD-pipeline, wêr't myn oanhâldende yntegraasjetests, feiligenstests en oaren wurde útfierd? Dit is it diel fan it ferhaal wêr't GitLab CI / CD yn komt!

NB As jo ​​​​gewoan fan plan binne om CI / CD te ymplementearjen of wolle begjinne mei it tapassen fan bêste praktiken foar it bouwen fan pipelines, let dan op de nije kursus fan Slurm "CI/CD mei Gitlab CI as foarbyld". It is no beskikber foar pre-order priis.

Waypoint yn GitLab CI/CD

Om dit alles te orkestrearjen yn GitLab CI / CD, litte wy sjen nei wat wy nedich binne yn ús bestân .gitlab-ci.yml:

  • As earste hawwe jo in basisôfbylding nedich om deryn te rinnen. Waypoint wurket op elke Linux-distribúsje, it hat allinich Docker nedich, sadat wy kinne rinne mei in generike Docker-ôfbylding.
  • Folgjende moatte jo Waypoint yn dizze ôfbylding ynstallearje. Yn 'e takomst kinne wy ​​sammelje image meta build en containerize dit proses foar dysels.
  • Uteinlik sille wy de Waypoint-kommando's útfiere

It boppesteande sketst alles wat ús pipeline nedich is om de skripts út te fieren dy't nedich binne om de ynset te foltôgjen, mar om te ynsetten nei AWS sille wy noch ien ding nedich wêze: wy moatte ynlogd wêze op ús AWS-akkount. Yn de Waypoint beskriuwing der binne plannen oer autentikaasje en autorisaasje. HashiCorp hat dizze wike ek in yndrukwekkend projekt frijlitten Boundary. Mar foar no kinne wy ​​​​de autentikaasje en autorisaasje gewoan sels behannelje.

D'r binne ferskate opsjes foar GitLab CICD-ferifikaasje yn AWS. De earste opsje is om it ynboude te brûken HashiCorp Vault. Dit is geweldich as jo team Vault al brûkt foar credentialbehear. In oare opsje dy't wurket as jo team autorisaasje beheart mei AWS IAM is om te kontrolearjen dat leveringstaken wurde trigger troch GitLab Runner, autorisearre om de ynset fia IAM út te fieren. Mar as jo gewoan fertroud wurde wolle mei Waypoint en it fluch wolle dwaan, is d'r ien lêste opsje - foegje jo AWS API en geheime kaaien ta GitLab CI / CD omjouwingsfariabelen AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

It alles opnimme

Sadree't wy begripe autentikaasje, kinne wy ​​begjinne! Us finale .gitlab-ci.yml sjocht der sa út:

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

Jo sjogge dat wy begjinne mei in ôfbylding docker:latest en set ferskate omjouwingsfariabelen nedich troch Waypoint. Yn haadstik script wy download de lêste ferzje fan it útfierbere Waypoint en ynstallearje it yn /usr/local/bin. Sûnt ús runner is al autorisearre yn AWS, dan rinne wy ​​gewoan waypoint init, build, deploy и release.

De útfier fan 'e boutaak sil ús it einpunt sjen litte wêr't wy de applikaasje útrôle:

Hoe kinne jo HashiCorp Waypoint brûke om gear te wurkjen mei GitLab CI / CD

Waypoint ien fan in protte HashiCorp-oplossingen, wurkje geweldich mei GitLab. Bygelyks, neist it leverjen fan de applikaasje, kinne wy ​​​​de ûnderlizzende ynfrastruktuer orkestrearje mei help fan Terraform op GitLab. Om SDLC-feiligens te standardisearjen, kinne wy ​​ek ymplementearje GitLab mei Vault foar it behearen fan geheimen en tokens yn CI / CD pipelines, it bieden fan in holistyske oplossing foar ûntwikkelders en behearders dy't fertrouwe op geheimen behear foar ûntwikkeling, testen, en produksje gebrûk.

De mienskiplike oplossingen ûntwikkele troch HashiCorp en GitLab helpe bedriuwen in bettere manier te finen om applikaasjes te ûntwikkeljen troch konsekwint behear fan leveringpipelines en ynfrastruktuer te leverjen. Waypoint hawwe in oare stap yn 'e goede rjochting nommen en wy sjogge út nei de trochgeande ûntwikkeling fan it projekt. Jo kinne mear útfine oer Waypoint hjir, ek wurdich te ferkennen dokumintaasje и ûntwikkeling plan projekt. Wy hawwe de kennis dy't wy opdien hawwe tafoege oan GitLab CICD dokumintaasje. As jo ​​​​alles sels wolle besykje, kinne jo in folslein wurkjend foarbyld yn nimme dizze repository.

Jo kinne de prinsipes fan CI / CD begripe, alle intricacies behearskje fan wurkjen mei Gitlab CI en begjinne mei it tapassen fan bêste praktiken troch in fideokursus te nimmen "CI/CD mei Gitlab CI as foarbyld". Kom by ûs!

Boarne: www.habr.com

Add a comment