Kiel uzi HashiCorp Waypoint por Kunlabori kun GitLab CI/CD

Kiel uzi HashiCorp Waypoint por Kunlabori kun GitLab CI/CD

HashiCorp montris novan projekton Waypoint sur HashiCorp Cifereca. Ĝi uzas HCL-bazitan dosieron por priskribi la konstruon, liveron kaj liberigon de aplikoj por diversaj nubaj platformoj, de Kubernetes ĝis AWS ĝis Google Cloud Run. Vi povas pensi pri Waypoint kiel Terraform kaj Vagrant kombinitaj por priskribi la procezon de konstruado, sendo kaj liberigo de viaj aplikoj.

Fidela al formo, HashiCorp publikigis Waypoint kiel malferma fonto kaj venas kun multaj ekzemploj. La orkestra tavolo dependas de vi, Waypoint venas kiel ekzekutebla, kiun vi povas ruli rekte sur via tekkomputilo aŭ de via CI/KD-instrumenta ilo de elekto. La celo por disfaldi viajn aplikojn ankaŭ dependas de vi, ĉar Waypoint subtenas Kubernetes, Docker, Google Cloud Run, AWS ECS kaj pli.

Post legi la mirindan dokumentado kaj la plej luksa ekzemploj aplikaĵoj provizitaj de HashiCorp, ni decidis pli detale rigardi Waypoint-instrumentadon per GitLab CI/CD. Por fari tion, ni prenos simplan aplikaĵon Node.js funkciantan sur AWS ECS el la deponejo de ekzemploj.

Post kloni la deponejon, ni rigardu la strukturon de la aplikaĵo montranta unu paĝon:

Kiel uzi HashiCorp Waypoint por Kunlabori kun GitLab CI/CD

Kiel vi eble rimarkis, ĉi tiu projekto ne havas Dockerfile. Ili ne estas aldonitaj en la ekzemplo, ĉar principe ni ne bezonas ilin, ĉar Waypoint prizorgos ilin por ni. Ni rigardu pli detale la dosieron waypoint.hclpor kompreni kion ĝi faros:

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

Dum la konstrufazo, Waypoint uzas Cloud Native Buildpacks (CNB) por determini la programlingvon de la projekto kaj krei Docker-bildon sen uzi Dockerfile. Principe ĉi tio estas la sama teknologio, kiun GitLab parte uzas Aŭtomata DevOps ĉe la Aŭtomata Konstruo paŝo. Estas bone vidi, ke la CNB de CNCF akiras pli da adopto inter industriaj uzantoj.

Post kiam la bildo estas konstruita, Waypoint aŭtomate alŝutos ĝin al nia AWS ECR-registro por ke ĝi estu preta por liveraĵo. Post kiam la konstruo estas kompleta, la livera paŝo estas uzata AWS ECS-aldonaĵo por deploji nian aplikaĵon al nia AWS-konto.

De mia tekkomputilo - ĉio estas simpla. Mi metis Waypoint kiu jam estas aŭtentikigita en mian AWS-konton kaj ĝi "nur funkcias". Sed kio okazas se mi volas iri preter mia tekkomputilo? Aŭ ĉu mi subite volas aŭtomatigi ĉi tiun deplojon kiel parto de mia ĝenerala CI/KD-dukto, kie miaj daŭrantaj integrigaj testoj, sekurecaj testoj kaj aliaj funkcias? Ĉi tiu estas la parto de la rakonto kie GitLab CI/CD envenas!

NB Se vi nur planas efektivigi CI/KD aŭ volas komenci apliki plej bonajn praktikojn por konstrui duktoj, atentu la novan kurson de Slurm. "CI/KD uzante Gitlab CI kiel ekzemplon". Ĝi nun haveblas ĉe antaŭmenda prezo.

Vojpunkto en GitLab CI/CD

Por reĝisori ĉion ĉi en GitLab CI/CD, ni rigardu, kion ni bezonas en nia dosiero .gitlab-ci.yml:

  • Antaŭ ĉio, vi bezonas bazan bildon por funkcii en ĝi. Waypoint funkcias en iu ajn Linukso-distribuo, ĝi nur bezonas Docker, do ni povas funkcii per ĝenerala Docker-bildo.
  • Poste vi devas instali Waypoint en ĉi tiu bildo. En la estonteco ni eble kolektos bildo meta konstruo kaj kontenerigu ĉi tiun procezon por vi mem.
  • Fine ni rulos la Waypoint-komandojn

Ĉi-supra skizas ĉion, kion nia dukto bezonos por ruli la skriptojn necesajn por kompletigi la deplojon, sed por disfaldi al AWS ni bezonos ankoraŭ unu aferon: ni devas esti ensalutitaj en nia AWS-konto. En la priskribo de Waypoint estas planoj pri aŭtentikigo kaj rajtigo. HashiCorp ankaŭ publikigis impresan projekton ĉi-semajne Limo. Sed nuntempe ni povas simple trakti la aŭtentikigon kaj rajtigon.

Estas pluraj ebloj por GitLab CICD-aŭtentikigo en AWS. La unua opcio estas uzi la enkonstruitan HashiCorp-Volbo. Ĉi tio estas bonega se via teamo jam uzas Vault por administrado de akreditaĵoj. Alia opcio, kiu funkcias se via teamo administras rajtigon uzante AWS IAM, estas kontroli, ke liveraj taskoj estas ekigitaj pere. GitLab Runner, rajtigita por prizorgi la deplojon per IAM. Sed se vi nur volas konatiĝi kun Waypoint kaj volas fari ĝin rapide, ekzistas unu lasta opcio - aldonu viajn AWS API kaj Sekretajn ŝlosilojn al GitLab CI/CD-medivariabloj AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Kunmetante ĉion

Post kiam ni komprenas aŭtentikigon, ni povas komenci! Nia finalo .gitlab-ci.yml similas ĉi tion:

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

Vi vidas, ke ni komencas per bildo docker:latest kaj starigis plurajn mediovariablojn postulatajn de Waypoint. En ĉapitro script ni elŝutas la lastan version de la efektivigebla Waypoint kaj instalas ĝin enen /usr/local/bin. Ĉar nia kuristo jam estas rajtigita en AWS, poste ni simple kuras waypoint init, build, deploy и release.

La eligo de la konstrutasko montros al ni la finpunkton, kie ni lanĉis la aplikaĵon:

Kiel uzi HashiCorp Waypoint por Kunlabori kun GitLab CI/CD

Vojpunkto unu el multnombraj HashiCorp-solvoj, funkcias bonege kun GitLab. Ekzemple, krom liveri la aplikaĵon, ni povas reĝisori la suban infrastrukturon uzante Terraform sur GitLab. Por normigi SDLC-sekurecon, ni ankaŭ povas efektivigi GitLab kun Vault por administri sekretojn kaj ĵetonojn en CI/KD-duktoj, provizante holisman solvon por programistoj kaj administrantoj, kiuj fidas je sekretadministrado por disvolviĝo, testado kaj produktada uzo.

La komunaj solvoj evoluigitaj de HashiCorp kaj GitLab helpas kompaniojn trovi pli bonan manieron evoluigi aplikojn provizante konsekvencan administradon de liveraj duktoj kaj infrastrukturo. Waypoint faris alian paŝon en la ĝusta direkto kaj ni antaŭĝojas pri la daŭra evoluo de la projekto. Vi povas ekscii pli pri Waypoint tie, ankaŭ esplorindaj dokumentado и disvolva plano projekto. Ni aldonis la sciojn, kiujn ni akiris GitLab CICD-dokumentado. Se vi volas provi ĉion mem, vi povas preni kompletan laborekzemplon ĉi tiu deponejo.

Vi povas kompreni la principojn de CI/KD, regi ĉiujn komplikaĵojn labori kun Gitlab CI kaj komenci apliki plej bonajn praktikojn prenante videokurson. "CI/KD uzante Gitlab CI kiel ekzemplon"... Aliĝu al ni!

fonto: www.habr.com

Aldoni komenton