Jak používat HashiCorp Waypoint ke spolupráci s GitLab CI/CD

Jak používat HashiCorp Waypoint ke spolupráci s GitLab CI/CD

HashiCorp představila nový projekt Waypoint na HashiCorp Digital. Využívá soubor založený na HCL pro popis sestavení, dodání a vydání aplikací pro různé cloudové platformy, od Kubernetes po AWS a Google Cloud Run. Je možné si představit, že Waypoint je kombinací Terraform a Vagrant pro popis procesu sestavení, dodání a vydání vašich aplikací.

Zůstávajíc věrná sama sobě, HashiCorp vydala Waypoint jako open-source, přičemž obsahuje také mnoho příkladů. Úroveň orchestrátoru závisí na vás, Waypoint je dodáván jako spustitelný soubor, který můžete spustit přímo na vašem notebooku nebo z nástroje CI/CD, který si vyberete. Cíl pro nasazení aplikací si rovněž vybíráte vy, protože Waypoint podporuje Kubernetes, Docker, Google Cloud Run, AWS ECS a další.

Po přečtení úžasných dokumentaci a skvělých příkladů aplikací, které poskytla HashiCorp, jsme se rozhodli podívat blíže na orchestraci Waypoint pomocí GitLab CI/CD. Abychom to udělali, vezmeme jednoduchou aplikaci Node.js běžící na AWS ECS z repozitáře příkladů.

Po zklonování repozitáře se podíváme na strukturu aplikace, která zobrazuje jednu stránku:

Jak používat HashiCorp Waypoint ke spolupráci s GitLab CI/CD

Jak jste si mohli všimnout, v tomto projektu není Dockerfile. Nebyly přidány do příkladu, protože je v zásadě nepotřebujeme, jelikož se o ně postará Waypoint. Podívejme se podrobněji na soubor waypoint.hcl, abychom pochopili, co bude dělat:

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

Během fáze sestavení Waypoint použije Cloud Native Buildpacks (CNB), aby určil programovací jazyk projektu a vytvořil obraz pro Docker bez použití Dockerfile. V podstatě se jedná o stejnou technologii, kterou používá GitLab v části Auto DevOps v kroku Auto Build. Je příjemné vidět, že CNB od CNCF získává stále větší popularitu mezi uživateli v oboru.

Jakmile je obraz sestaven, Waypoint jej automaticky nahraje do naší AWS ECR registru, aby byl připraven k dodání. Po dokončení sestavení krok dodání využívá doplnění AWS ECS pro nasazení naší aplikace do našeho účtu AWS.

Z mého notebooku — vše je snadné. Nainstaluji Waypoint, který je již ověřený v mém účtu AWS, a „prostě to funguje“. Ale co když chci vyrazit za hranice svého notebooku? Nebo náhle chci tento nasazení automatizovat jako součást svého celkového CI/CD pipeline, ve které probíhají mé aktuální integrační testy, bezpečnostní testy a další? To je ta část příběhu, kde přichází na scénu GitLab CI/CD!

N.B. Pokud teprve plánujete implementaci CI/CD nebo chcete začít používat osvědčené postupy pro budování pipeline, podívejte se na nový kurz Slěrma. „CI/CD na příkladu Gitlab CI“. Nyní je dostupný za cenu předobjednávky.

Waypoint v GitLab CI/CD

Pro orchestraci všeho v GitLab CI/CD se podívejme, co potřebujeme v našem souboru. .gitlab-ci.yml:

  • Nejprve potřebujeme základní obraz pro jeho spuštění. Waypoint funguje na jakékoli distribuci Linuxu, potřebuje pouze Docker, takže můžeme spustit s generickým obrazem Docker.
  • Dále musíme nainstalovat Waypoint do tohoto obrazu. V budoucnu můžeme vytvořit meta build obraz a tento proces kontejnerizovat pro sebe.
  • Nakonec spustíme příkazy Waypoint.

Výše je uvedeno vše, co náš pipeline potřebuje k spuštění potřebných skriptů pro nasazení, ale pro nasazení do AWS potřebujeme ještě jednu věc: musíme se autorizovat do našeho účtu AWS. V popisu Waypoint jsou plány o autentizaci a autorizaci. HashiCorp tento týden také vydal působivý projekt Boundary. Ale prozatím můžeme prostě zpracovat autentizaci a autorizaci sami.

Pro autentizaci GitLab CICD do AWS existuje několik možností. První možností je použití integrovaného HashiCorp Vault. Ten se hodí, pokud vaše tým již používá Vault pro správu přihlašovacích údajů. Další způsob, který se hodí, pokud vaše tým spravuje autorizaci pomocí AWS IAM — zkontrolujte, zda úlohy dodávky jsou spuštěny prostřednictvím GitLab Runner, autorizované k provádění nasazení prostřednictvím IAM. Ale pokud se jen chcete seznámit s Waypoint a chcete to udělat rychleji, existuje poslední možnost — přidat své klíče AWS API a Secret do proměnných prostředí GitLab CI/CD AWS_ACCESS_KEY_ID a AWS_SECRET_ACCESS_KEY.

Shromáždíme všechno dohromady

Jakmile máme vyřešenou autentizaci, můžeme začít! Náš finální .gitlab-ci.yml vypadá takto:

waypoint:
  image: docker:latest
  stage: build
  services:
    - docker:dind
  # Definujte proměnné prostředí, např. `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

Vidíte, že začínáme s obrazem docker:latest a nastavujeme několik proměnných prostředí potřebných pro Waypoint. V sekci script stahujeme nejnovější verzi spustitelného souboru Waypoint a instalujeme jej do /usr/local/bin. Protože je náš runner již autorizován v AWS, dále jednoduše spustíme waypoint init, build, deploy a release.

Výstup úlohy pro sestavení nám ukáže endpoint, kam jsme aplikaci nasadili:

Jak používat HashiCorp Waypoint ke spolupráci s GitLab CI/CD

Waypoint je jedním z mnohých řešení HashiCorpu, které skvěle spolupracují s GitLabem. Například kromě dodání aplikace můžeme orchestraci podkladové infrastruktury provádět pomocí Terraform v GitLab. Pro standardizaci bezpečnosti SDLC můžeme také integrovat GitLab s Vault pro správu tajemství a tokenů v CI/CD pipelinech, což poskytuje komplexní řešení pro vývojáře a administrátory, kteří se spoléhají na správu tajemství při vývoji, testování i produkčním použití.

Společná řešení, která vytvořili HashiCorp a GitLab, pomáhají společnostem najít nejlepší způsob vývoje aplikací, zajišťujícím konzistentní správu dodacích toků a infrastruktury. Waypoint udělal další krok správným směrem a my se těšíme na další vývoj projektu. Můžete se dozvědět více o Waypoint zde, také stojí za to prostudovat dokumentaci a plán rozvoje projektu. Přidali jsme naše poznatky do dokumentace GitLab CICD. Pokud chcete vše vyzkoušet na vlastní kůži, můžete si vzít kompletní funkční příklad v tomhle repozitáři.

Pochopit principy CI/CD, osvojit si všechny nuance práce s Gitlab CI a začít aplikovat nejlepší praktiky lze kurzem „CI/CD na příkladu Gitlab CI“. Připojte se!

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster