Како да се користи HashiCorp Waypoint за да соработува со GitLab CI/CD

Како да се користи HashiCorp Waypoint за да соработува со GitLab CI/CD

HashiCorp покажа нов проект Точка на HashiCorp Digital. Користи датотека базирана на HCL за да го опише создавањето, испораката и објавувањето на апликации за различни платформи за облак, кои се движат од Kubernetes до AWS до Google Cloud Run. Можете да помислите на Waypoint како Terraform и Vagrant комбинирани за да го опишат процесот на градење, испорака и објавување на вашите апликации.

Точно на формата, HashiCorp го објави Waypoint како отворен код и доаѓа со многу примери. Слојот на оркестраторот зависи од вас, Waypoint доаѓа како извршна датотека што можете да ја извршите директно на вашиот лаптоп или од вашата алатка за оркестрација CI/CD по избор. Целта за распоредување на вашите апликации зависи и од вас, бидејќи Waypoint поддржува Kubernetes, Docker, Google Cloud Run, AWS ECS и многу повеќе.

Откако го прочитав прекрасното документација и најлуксузниот примери со апликации обезбедени од HashiCorp, решивме подетално да ја разгледаме оркестрацијата на Waypoint користејќи GitLab CI/CD. За да го направите ова, ќе земеме едноставна апликација Node.js што работи на AWS ECS од складиштето за примери.

По клонирањето на складиштето, да ја погледнеме структурата на апликацијата што прикажува една страница:

Како да се користи HashiCorp Waypoint за да соработува со GitLab CI/CD

Како што можеби забележавте, овој проект нема Dockerfile. Тие не се додадени во примерот, бидејќи во принцип не ни требаат, бидејќи Waypoint ќе се грижи за нив за нас. Да ја разгледаме подетално датотеката waypoint.hclда се разбере што ќе направи:

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

За време на фазата на изградба, Waypoint користи Cloud Native Buildpacks (CNB) за да се одреди програмскиот јазик на проектот и да се создаде слика на Docker без користење на Dockerfile. Во принцип, ова е истата технологија што GitLab делумно ја користи Автоматски DevOps на чекорот за автоматско градење. Добро е да се види дека CNB на CNCF добива повеќе усвојување кај корисниците на индустријата.

Откако ќе се изгради сликата, Waypoint автоматски ќе ја постави во нашиот регистар AWS ECR за да биде подготвена за испорака. Откако ќе заврши изградбата, се користи чекорот за испорака Додаток AWS ECS да ја распоредиме нашата апликација на нашата сметка AWS.

Од мојот лаптоп - сè е едноставно. Ставив Waypoint што е веќе автентициран во мојата сметка AWS и „само работи“. Но, што ќе се случи ако сакам да го надминам мојот лаптоп? Или ненадејно сакам да го автоматизирам ова распоредување како дел од мојот целокупен CI/CD гасовод, каде што се извршуваат моите тековни тестови за интеграција, безбедносни тестови и други? Ова е делот од приказната каде влегува GitLab CI/CD!

NB Ако само планирате да имплементирате CI/CD или сакате да започнете да применувате најдобри практики за изградба на цевководи, обрнете внимание на новиот курс на Slurm „CI/CD користејќи Gitlab CI како пример“. Сега е достапен по цена пред нарачка.

Попатна точка во GitLab CI/CD

За да го оркестрираме сето ова во GitLab CI/CD, ајде да погледнеме што ни треба во нашата датотека .gitlab-ci.yml:

  • Пред сè, потребна ви е основна слика за да работи во неа. Waypoint работи на која било дистрибуција на Linux, ѝ треба само Docker, за да можеме да работиме од генеричка слика на Docker.
  • Следно, треба да инсталирате Waypoint на оваа слика. Во иднина може да собираме мета-изградба на слика и контејнеризирајте го овој процес за себе.
  • Конечно ќе ги извршиме командите Waypoint

Горенаведеното прикажува сè што ќе треба на нашиот гасовод за да ги изврши скриптите потребни за да го заврши распоредувањето, но за да се распоредиме на AWS ќе ни треба уште една работа: мора да бидеме најавени на нашата сметка AWS. Во описот Waypoint има планови за автентикација и овластување. HashiCorp исто така објави импресивен проект оваа недела Граница. Но, сега за сега, само можеме сами да се справиме со автентикацијата и овластувањето.

Постојат неколку опции за автентикација на GitLab CICD во AWS. Првата опција е да го користите вградениот ХашиКорп свод. Ова е одлично ако вашиот тим веќе користи Vault за управување со акредитиви. Друга опција што функционира ако вашиот тим управува со овластување користејќи AWS IAM е да проверите дали задачите за испорака се активираат преку GitLab Runner, овластен да го изврши распоредувањето преку IAM. Но, ако само сакате да се запознаете со Waypoint и сакате да го направите тоа брзо, постои една последна опција - додадете ги вашите AWS API и Secret клучеви во GitLab CI/CD променливи на животната средина AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Ставањето на сето тоа заедно

Откако ќе ја разбереме автентикацијата, можеме да започнеме! Нашето финале .gitlab-ci.yml изгледа вака:

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

Гледате дека започнуваме со слика docker:latest и поставете неколку променливи на околината што ги бара Waypoint. Во поглавјето script ја преземаме најновата верзија на извршната датотека Waypoint и ја инсталираме /usr/local/bin. Бидејќи нашиот тркач е веќе овластен во AWS, потоа едноставно трчаме waypoint init, build, deploy и release.

Излезот од задачата за изградба ќе ни ја покаже крајната точка каде што ја поставивме апликацијата:

Како да се користи HashiCorp Waypoint за да соработува со GitLab CI/CD

Патна точка еден од бројни решенија на HashiCorp, работи одлично со GitLab. На пример, покрај доставувањето на апликацијата, можеме да ја оркестрираме основната инфраструктура користејќи ја Terraform на GitLab. За да ја стандардизираме безбедноста на SDLC, можеме да имплементираме GitLab со Vault за управување со тајни и токени во цевководи CI/CD, обезбедувајќи сеопфатно решение за програмери и администратори кои се потпираат на управување со тајните за развој, тестирање и производствена употреба.

Заедничките решенија развиени од HashiCorp и GitLab им помагаат на компаниите да најдат подобар начин за развој на апликации преку обезбедување доследно управување со цевководи за испорака и инфраструктура. Waypoint направи уште еден чекор во вистинската насока и се радуваме на континуиран развој на проектот. Можете да дознаете повеќе за Waypoint тука, исто така вреди да се истражи документација и план за развој проект. Го додадовме знаењето што го стекнавме GitLab CICD документација. Ако сакате да пробате сè сами, можете да земете целосен работен пример ова складиште.

Можете да ги разберете принципите на CI/CD, да ги совладате сите сложености на работата со Gitlab CI и да започнете да ги применувате најдобрите практики со полагање видео курс „CI/CD користејќи Gitlab CI како пример“. Придружи ни се!

Извор: www.habr.com

Додадете коментар