HashiCorp ααΆααααα αΆαααααααααααΈαα½α
ααΆααΆααα·α HashiCorp ααΆαα ααααααΆα Waypoint ααΆαααααααΎαα αα α αΎαααΆααααΆααααααΆαα½αα§ααΆα αααααΆα αααΎαα ααααα·αααα’ααααααα αααααααααααΊα’αΆαααααααΎα’ααα Waypoint ααααΆαααααα·ααΈαααα’αΆα ααααα·ααααα·ααΆααααα’αααα’αΆα ααααΎαααΆααααααααΆαααα ααΎαα»αααααΌααααα½αααααααα’ααα α¬ααΈα§ααααα orchestration CI/CD ααααα’αααα ααααα ααααΆαααααΎααααΆαααααααα·ααΈααα’αΆαααααααΎα’αααααα αααααΆα Waypoint ααΆαααα Kubernetes, Docker, Google Cloud Run, AWS ECS αα·αα αααΎααααα
αααααΆααααΈα’αΆαααα’ααα
αΆααα
αααααΆααααΈααααΌαααααΆαα ααΌααααα‘ααααΎααα ααΆαααααααααααααααα·ααΈααααααα αΆαααααααα½αα
ααΌα
αααα’ααααααα ααααΆααΆαααααααααΆααααΎαααΆαα·αααΆα 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 (
αα
ααααααααΌαααΆαααααΌαααΆαααΆαααααα½α
Waypoint ααΉααααα ααααΆαααααααααααααααα·αα
αααα»ααααααΈααααα AWS ECR ααααααΎα ααΎααααΈα±ααααΆαα½α
ααΆααααΎααααΈααΉααααααΌαα αα
α
α»ααααα
ααααααΆααα½αααααα»αααααΆααα αΆαα
ααα
αΆαααααΎ
ααΈαα»αααααΌααααα½ααααααααααα»αααΆααΆααααα½αα αααα»αααΆαααΆαααααα»α Waypoint αααααααΌαααΆααααααααααΆαααα½α α αΎααα αααα»αααααΈ AWS αααααααα»αα αΎαααΆ "ααααΆααααααααΎαααΆα" α ααα»ααααααΎααΆαα’αααΈααΎαα‘αΎαααααα·αααΎαααα»αα αααα α α½αααΈαα»αααααΌααααα½ααααααααααα»α? α¬αααα ααααΆαααα»αα ααααααΎα±ααααΆαααΆαααααααΆαααααααααααααααααααα·ααΆαααααααααααααααα αΌα CI/CD αααααααα»α αααααΆαααααΎααααααα½ααααα αΌααα αα α»αααααααααααααα»α ααΆαααααΎααααααα»ααααα·ααΆα αα·αααααΎαααΆααααααααα? αααααΊααΆαααααααααΏαααα GitLab CI/CD α αΌααα!
NB ααααα·αααΎα’αααααΎαααααΆαααααααα’αα»αααα CI/CD α¬α ααα αΆααααααΎαα’αα»ααααααΆαα’αα»ααααααα’αααα»ααααααΆααααΆααααΆαααααααααα αΌαααααα ααΌαααα α·ααααα»αααΆααααΎαααααα·ααααΆ Slurm ααααΈα
"CI/CD αα ααΎα§ααΆα ααααα Gitlab CI" . α₯α‘αΌααααααΆα’αΆα ααααΆααααααΆααααααααααααΆαα·αααΆαα»αα
Waypoint αα αααα»α GitLab CI/CD
ααΎααααΈαααα
αα’αααΈαααΆααα’ααααααα
αααα»α GitLab CI/CD ααΌαααΎαα’αααΈαααααΎαααααΌαααΆααα
αααα»αα―αααΆαααααααΎα .gitlab-ci.yml
:
- ααΆααααΌα α’αααααααΌαααΆαααΌαααΆαααΌαααααΆα ααΎααααΈααααΎαααΆααα ααΆααααα»αααΆα Waypoint ααααΎαααΆαααΎααΆαα ααα αΆαααΈαα»α ααΆαα½α ααΆααααΌαααΆααα Docker ααΌα ααααααΎαα’αΆα ααααΎαααΆαααΆαα½αααΌαααΆα Docker ααΌαα α
- αααααΆααα’αααααααΌαααα‘αΎα Waypoint αα
αααα»αααΌαααΆααααα αα
αααα’ααΆααααΎαα’αΆα
αααααΌαααΆαα
ααΌαααΆααααααΎαααααΆ αα·ααααα αααααΎαααΆαααααααααΆαααααα½αα’αααα - ααΈαααα»αααΎαααΉαααααΎαααΆαααΆααααααααΆ Waypoint
ααΆαααΎααΊααΆα’αααΈααααααααΆααααααααααααα αΌααααααααααααΎαααΉαααααΌαααααΎαααΆαααααααΈααααααααΌαααΆαααΎααααΈα’αα»ααααααΆαααΆαααααααΆα ααα»ααααααΎααααΈααΆαααααααΆααα
ααΆαα AWS ααΎαααααΌαααΆαααΏααα½ααααα ααΎαααααΌαα
αΌααα
ααααΈ AWS ααααααΎαα αα
αααα»αααΆααα·αααααΆ Waypoint
ααΆααααααΎαααΆα
αααΎααααααΆααααΆααααααααααΆαα GitLab CICD αα
ααΎ AWS α αααααΎαααααΌαααΊααααΌαααααΎα§αααααααααΆααααααΆαα½α 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 αα·α GitLab αα½ααααα»αα αα»αααΆααΆααααααααα·ααΈααα’αααα»ααααα»αααΆαα’αα·αααααααααααα·ααΈαααααΆααΆααΌααααααααααΆααααααααααααααααααααΆ αα·αααΆααααααααααα αααααΆαα
ααΆααααααααα Waypoint ααΆααααααα αΆααα½αααααααα»ααα·ααα
ααααΉαααααΌα α αΎαααΎααααααΉααααα
αΆαααΆαα’αα·αααααααααααααααααααααααα α’αααα’αΆα
ααααααααααααααα’αααΈ Waypoint
α’αααα’αΆα
αααααΈαααααΆααααα CI/CD ααααααααα subtleties ααΆααα’ααααααΆαααααΎααΆαααΆαα½α Gitlab CI α αΎαα
αΆααααααΎαα’αα»ααααααΆαα’αα»ααααααα’αααα»αααααααα
αααααααα·ααααΆααΈααα’αΌ
ααααα: www.habr.com