Maitiro ekushandisa HashiCorp Waypoint Kubatana neGitLab CI/CD

Maitiro ekushandisa HashiCorp Waypoint Kubatana neGitLab CI/CD

HashiCorp yakaratidza chirongwa chitsva waypoint pamusoro HashiCorp Digital. Inoshandisa HCL-yakavakirwa faira kutsanangura kuvaka, kutumira, uye kuburitsa zvikumbiro zveakasiyana makore mapuratifomu kubva Kubernetes kusvika kuAWS uye Google Cloud Run. Funga nezveWaypoint seTerraform uye Vagrant vakaiswa pamwechete kutsanangura maitiro ekuvaka, kutumira, uye kuburitsa zvikumbiro zvako.

Ichokwadi kuumbwa, HashiCorp yakaburitsa Waypoint seyakavhurika sosi, uye inouya nemienzaniso yakawanda. Iyo nhanho ye orchestrator iri kwauri, Waypoint inouya seyakagadziriswa yaunogona kumhanya yakananga palaptop yako kana kubva kuCI / CD yako orchestration chishandiso chesarudzo. Chinangwa chekutumira chikumbiro chiri kwauri zvakare, sezvo Waypoint inotsigira Kubernetes, Docker, Google Cloud Run, AWS ECS, nezvimwe.

Mushure mekuverenga zvinoshamisa zvinyorwa uye chakanakisa mienzaniso zvikumbiro zvakapihwa neHashiCorp, takasarudza kunyatsotarisisa Waypoint orchestration neGitLab CI/CD. Kuti tiite izvi, isu tichatora yakapusa Node.js application inomhanya paAWS ECS kubva kumuenzaniso repository.

Mushure mekugadzira repository, ngatitarisei chimiro chechishandiso chinoratidza peji rimwe:

Maitiro ekushandisa HashiCorp Waypoint Kubatana neGitLab CI/CD

Sezvaungave waona, hapana Dockerfile muchirongwa ichi. Ivo havana kuwedzerwa mumuenzaniso nekuti isu hatinyatsovada, nekuti Waypoint ichavatarisira isu. Ngatitarisei zvakanyanya pafaira waypoint.hclkunzwisisa zvazvichaita:

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

Munguva yechikamu chekuvaka, Waypoint inoshandisa Cloud Native Buildpacks (CNB) kuona mutauro wechirongwa chechirongwa uye kugadzira mufananidzo weDocker usingashandisi Dockerfile. Muchidimbu, iyi ndiyo tekinoroji imwechete iyo inoshandiswa neGitLab muchikamu Auto DevOps paAuto Build nhanho. Zvinofadza kuona kuti CNCF's CNB iri kuwedzera kugamuchirwa pakati pevashandisi veindasitiri.

Kana chifananidzo chacho chavakwa, Waypoint inozozviisa kune yedu AWS ECR registry kuitira kuti igadzirire kutumira. Pakupera kwegungano, danho rekutumira rinoshandisa AWS ECS yekuwedzera kuendesa application yedu kune yedu AWS account.

Kubva palaptop yangu zviri nyore. Ndakaisa Waypoint iyo yatove yakatenderwa muAWS account yangu uye "inongoshanda". Asi chii chinoitika kana ndikada kupfuura laptop yangu? Kana kuti pamwe ini ndoda kushandura iyi kutumira sechikamu chepombi yangu yese yeCI / CD uko kwazvino bvunzo dzekubatanidza, bvunzo dzekuchengetedza, uye vamwe vanomhanya? Ichi ndicho chikamu chenyaya iyo GitLab CI / CD inopinda!

NB Kana iwe uri kungoronga kuita CI / CD kana uchida kutanga kushandisa akanakisa maitiro ekuvaka mapaipi, teerera kune nyowani Slurm kosi. "CI/CD pamuenzaniso weGitlab CI". Yave kuwanikwa nemutengo we-pre-odha.

Waypoint muGitLab CI/CD

Kuronga zvese izvi muGitLab CI/CD, ngationei zvatinoda mufaira redu. .gitlab-ci.yml:

  • Chekutanga pane zvese, iwe unoda base image kuti umhanye mukati mayo. Waypoint inomhanya pane chero kugoverwa kweLinux, inongoda Docker, saka isu tinokwanisa kumhanya neiyo generic Docker mufananidzo.
  • Tevere, iwe unofanirwa kuisa Waypoint mumufananidzo uyu. Mune ramangwana tinogona kuunganidza meta kuvaka mufananidzo uye chengeta iyi nzira iwe pachako.
  • Pakupedzisira tichamhanya iyo Waypoint mirairo

Pamusoro pane zvese pombi yedu ichada kumhanya zvinyorwa zvinodikanwa kuita deployment, asi kuendesa kuAWS, isu tinoda chimwe chinhu chimwe: isu tinofanirwa kupinda muaccount yedu yeAWS. In Waypoint tsananguro vane zvirongwa nezve chokwadi uye mvumo. HashiCorp yakaburitsawo chirongwa chinokatyamadza svondo rino Boundary. Asi ikozvino, isu tinogona kungotora uye kubata huchokwadi uye mvumo isu pachedu.

Pane akati wandei sarudzo dzeGitLab CICD chokwadi paAWS. Yekutanga sarudzo ndeye kushandisa yakavakirwa-mukati HashiCorp Vault. Zvakanaka kana timu yako yave kutoshandisa Vault kune zvitupa manejimendi. Imwe nzira inoshanda kana timu yako ichikwanisa kubvumidza kushandisa AWS IAM ndeyekutarisa kuti mabasa ekutumira anokonzereswa kuburikidza. GitLab RunnerA inotenderwa kutanga kutumira kuburikidza neIAM. Asi kana iwe uchingoda kujairana neWaypoint uye uchida kuzviita nekukurumidza, yekupedzisira sarudzo ndeyekuwedzera yako AWS API uye Chakavanzika makiyi ku. GitLab CI / CD mamiriro akasiyana AWS_ACCESS_KEY_ID ΠΈ AWS_SECRET_ACCESS_KEY.

Kuisa zvose pamwe chete

Kana tangoziva chokwadi, tinogona kutanga! Yedu yekupedzisira .gitlab-ci.yml rinotarisa seizvi:

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

Unoona tinotanga nemufananidzo docker:latest uye isa mashoma emamiriro ekunze anodiwa neWaypoint. Muchitsauko script isu tinodhawunirodha yazvino Waypoint inogoneka uye tinoiisa mukati /usr/local/bin. Sezvo mumhanyi wedu atopihwa mvumo muAWS, saka isu tinongomhanya waypoint init, build, deploy ΠΈ release.

Kubuda kwebasa rekuvaka kunotiratidza pekupedzisira patakatenderedza application:

Maitiro ekushandisa HashiCorp Waypoint Kubatana neGitLab CI/CD

Waypoint imwe ye akawanda HashiCorp mhinduro, iyo inoshanda zvikuru neGitLab. Semuyenzaniso, pamusoro pekuendesa chikumbiro, isu tinokwanisa kuronga zviri pasi pezvivakwa nazvo Terraform muGitLab. Kumisa SDLC kuchengetedzeka, isu tinogona zvakare kuita GitLab ine Vault yekutarisira zvakavanzika uye zviratidzo muCI/CD mapaipi, ichipa mhinduro yakakwana kune vanogadzira uye vatariri vanovimba nekuvanzika manejimendi yekusimudzira, kuyedza, uye kushandiswa kwekugadzira.

Majoint solutions akagadzirwa neHashiCorp neGitLab anobatsira makambani kuwana nzira yakanakisa yekuvandudza maapplication nekuona kuenderana kwekutengesa uye manejimendi ezvivakwa. Waypoint yatora imwe nhanho munzira kwayo uye isu tinotarisira kuenderera mberi kwechirongwa. Unogona kudzidza zvakawanda nezve Waypoint panozvakare zvakakodzera kuongorora zvinyorwa ΠΈ chirongwa chebudiriro project. Takawedzera ruzivo rwedu kune GitLab CICD zvinyorwa. Kana iwe uchida kuzviedza iwe pachako, unogona kutarisa yakazara yekushanda muenzaniso pa iyi repository.

Iwe unogona kunzwisisa misimboti yeCI / CD, tenzi zvese zvinyowani zvekushanda neGitlab CI uye wotanga kushandisa zvakanakisa maitiro nekupedzisa vhidhiyo kosi. "CI/CD pamuenzaniso weGitlab CI". Join izvozvi!

Source: www.habr.com

Voeg