1. Halyard란?

Spinnaker 배포 주기를 관리하기 위한 CLI 도구이다.

참고로 Spinnaker란,

소프트웨어 변경 사항을 빠르고 안정적으로 릴리스하기 위한 도구로 넷플릭스에서 개발하였다. Jenkins와 통합 가능하다. 흐름은 다음과 같다.

  • 개발자가 코드를 푸시한다. GitHub에 했다고 하자.
  • GitHub가 Jenkins를 트리거한다.
  • Jenkins가 Docker 이미지를 빌드하고 태그를 달아 ECR에 푸시한다.
  • ECR이 새로운 이미지를 수신하면 Spinnaker 파이프라인이 트리거된다.
  • Spinnaker가 일을 시작한다.
    1) Helm을 사용하여 Kubernetes 배포 파일을 생성한다.
    2) 개발 환경에 Kubernetes를 배포한다.
    3) 운영 환경에 배포되기 전에 확인 과정을 거친다. 일단 대기..
    4) 운영 환경에 배포된다.

2. 설치

우분투에서 설치함을 전제로 한다.

인스톨 쉘을 다운로드한다.

$ curl -O https://raw.githubusercontent.com/spinnaker/halyard/master/install/debian/InstallHalyard.sh

쉘 파일을 다운로드받고 실행한다.

$ ./InstallHalyard.sh
Halyard version will be stable
Halyard will be downloaded from gs://spinnaker-artifacts/halyard
Halyard config will come from bucket gs://halconfig
Halconfig will be stored at /home/ubuntu/.hal/config
mkdir: cannot create directory ‘/opt/spinnaker’: Permission denied

일반 계정으로 그냥 실행하면 위와 같이 권한 문제가 발생. 따라서 실행은 root 권한으로 한다.

$ sudo ./InstallHalyard.sh
Please supply a non-root user to run Halyard as: ubuntu
Halyard version will be stable
Halyard will be downloaded from gs://spinnaker-artifacts/halyard
Halyard config will come from bucket gs://halconfig
Halconfig will be stored at /home/ubuntu/.hal/config
Uninstall script is located at /home/ubuntu/.hal/uninstall.sh
Java is already installed & at the right version
~/halyard/installhalyard.EZaU ~/halyard
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  274M  100  274M    0     0  74.8M      0  0:00:03  0:00:03 --:--:-- 74.7M
halyard/
halyard/config/
halyard/config/halyard.yml
halyard/bin/
halyard/bin/hal.bat
halyard/bin/halyard.bat
halyard/bin/hal
halyard/bin/halyard
halyard/lib/
halyard/lib/aws-java-sdk-groundstation-1.11.622.jar
halyard/lib/json-simple-1.1.jar
halyard/lib/aws-java-sdk-ssm-1.11.622.jar
halyard/lib/google-api-services-cloudkms-v1-rev8-1.22.0.jar
halyard/lib/maven-builder-support-3.3.9.jar
halyard/lib/aws-java-sdk-cloudwatch-1.11.622.jar
halyard/lib/aws-java-sdk-connect-1.11.622.jar
halyard/lib/maven-repository-metadata-3.3.9.jar
halyard/lib/aws-java-sdk-forecastquery-1.11.622.jar
halyard/lib/aws-java-sdk-cloudtrail-1.11.622.jar
halyard/lib/aws-java-sdk-comprehend-1.11.622.jar
halyard/lib/aws-java-sdk-glue-1.11.622.jar
halyard/lib/aws-java-sdk-machinelearning-1.11.622.jar
halyard/lib/spectator-ext-jvm-0.75.0.jar
halyard/lib/jsoup-1.8.1.jar
halyard/lib/hk2-utils-2.5.0-b42.jar
halyard/lib/aws-java-sdk-eks-1.11.622.jar
halyard/lib/aws-java-sdk-rekognition-1.11.622.jar
halyard/lib/clouddriver-azure-5.8.0.jar
halyard/lib/aspectjweaver-1.9.4.jar

길어서 생략한다.


3. 설치 확인

$ hal -v
1.24.0-20191002142815