Установка Spinnaker в Unix/Linux

Spinnaker — это платформа для создание пайплайнов непрерывного деплоймента, позволяющая быстро и уверенно сообщать об изменениях. Данное ПО разрабатывала Netflix, потом начала поддерживать и Google. Служит для деплоя приложений в Kubernetes (k8s) автоматическим способом.

Архитектура выглядит следующим образом:

Компоненты Spinnaker-а:

  • Deck: Один из микросервисов, который лужит веб UI интерфесом, для конйигурации Spinnaker через веб-браузер. Так же, просмотр приложений и проектов, пайплайнов.
  • Gate: Один из микросервисов, который лужит API сервисом и пользовательский интерфейс Spinnaker, который взаимодействуют с сервером Spinnaker через этот API-шлюз, который называется Gate.
  • Orca: Один из микросервисов, который служит для управления пайплайнами и другими специальными операциями через данный оркестровщик, называемый Orca.
  • Clouddriver: Один из микросервисов, который служит для индексации и кэшировании развернутых ресурсов. Так же, взаимодействует с таким облачным провайдерам, как AWS, GCE и Azure.
  • Echo: Один из микросервисов, который отвечает за отправку уведомлений, а также выступает в качестве входящего webhook-а.
  • Igor: Один из микросервисов, используется для запуска конвейеров (pipelines) с помощью заданий непрерывной интеграции в таких системах, как Jenkins и Travis CI, и позволяет использовать Jenkins / Travis stag-ы в пайплайнах.
  • Front50: Один из микросервисов, который служит хранилищем метаданных в Spinnaker. Он сохраняет метаданные для всех ресурсов, включая пайплайны, проекты, приложения и уведомления.
  • Rosco: Один из микросервисов, который служит для создания (аббревиатура bakes в спиннакере) образов машин (AWS AMIs, Azure VM images, GCE images).
  • Rush: Один из микросервисов, служит для выполнения скриптов.

Перейдем к установке.

Установка Spinnaker в Unix/Linux

Есть довольно много способов как установить спинакер на различные ОС. Приведу наглядные примеры как это можно сделать.

Способы установки Spinnaker в Unix/Linux:

  • Использовать Minio (при использовании Minikube или Docker Desktop).
  • Использовать AWS S3 (при использовании Minikube или Docker Desktop).
  • Использовать харнилище от GCP (при использовании Minikube или Docker Desktop). Пока не будет примеров.
  • Azure сторедж (при использовании Minikube или Docker Desktop).
  • Redis (при использовании Minikube или Docker Desktop). Пока не будет примеров.
  • Так же, можно будет установить Spinnaker используя AWS EKS. Пока не будет примеров.
  • Можно будет установить Spinnaker используя GCP GKE. Пока не будет примеров.

Установка spinnaker используя Docker Desktop в Unix/Linux

У меня МакОС и я буду использовать Docker Desktop. У меня он уже установлен, по этому — начнем.

Способы установки описанные в данном пункте:

  • Использовать Minio.
  • Использовать AWS S3.

Потребуется настроить докер на использование следующих ресурсов:

  • 4Gb Оперативной памяти. Я ипользую 9Гб.
  • 2Gb swap (подкачки). Я ипользую 4Гб.
  • 4 CPU ядер. Я ипользую 6 ядер.

Настраиваем и перезапускаем докер.

Устанавливаем Halyard:

# cd /usr/local/src && $ curl -O https://raw.githubusercontent.com/spinnaker/halyard/master/install/macos/InstallHalyard.sh

Выполним установку:

$ sudo bash ./InstallHalyard.sh -y --user $USER

Проверим версию:

$ hal -v
1.21.1-20190624135101

Или, можно просмотреть список доступных версий:

$ hal version list

Чтобы использовать другую версию, выполните:

$ hal config version edit --version 1.12.13

Где:

  • 1.12.13 — Это версия ПО.

Можно его установить с помощью Docker-а, но мне это не нужно было.

Выполним установку некоторых тулов:

$ brew install kubectl kubernetes-helm 

PS: Если не установлен homebrew, установка тут.

Переключимся на нужный контекст:

$ kubectl config use-context docker-for-desktop

Разрешаем кубернетис:

$ helm init --wait

Проверяем, работает ли kubernetes провайдер:

$ hal config provider kubernetes enable

Установим контекст и имя аккаунта:

$ export CONTEXT=$(kubectl config current-context) 
$ export ACCOUNT=my-k8s-v2-account

Добавляем аккаунт:

$ hal config provider kubernetes account add $ACCOUNT \
   --provider-version v2 \
   --context $CONTEXT

Выставляем конфиг-опции:

$ hal config features edit --artifacts true

Spinnaker развертывается в локальном кластере Kubernetes, причем каждый микросервис развертывается независимо. Halyard выполняем установку Spinnaker и его микросервисов, обеспечивая нулевое время простоя обновления.

Установим параметры ENV:

$ hal config deploy edit --type distributed --account-name $ACCOUNT

Далее, стоит выбрать сторедж который будет использоваться для хранения конфигурационный файлов, проектов, приложений. Выберете один из ниже предложенных, и выполните ряд действий который там описаны.

-=== Используем Minio ===-

Для Spinnaker требуется внешнее хранилище для сохранения настроек вашего приложения и настроенных пайплайнов — в качестве примера, развернем Minio S3 в отдельном Kubernetes контексте.

Minio — это S3-совместимое хранилище объектов, которое вы можете установить самостоятельно (селф-хостед).

Пробросим необходимые переменые:

$ export MINIO_ACCESS_KEY="VHK5D359RAXHEXAMPLE" && \
export MINIO_SECRET_KEY="vE8qPsiWjluG2mZRD1WHZANzSYW8X8C3BExAmPLe" && \
export MINIO_STORAGE_NAME="local-s3-storage" 

Запускаем minio:

$ helm install \
	--set persistence.size=8Gi \
	--set accessKey=$MINIO_ACCESS_KEY,secretKey=$MINIO_SECRET_KEY \
	--name $MINIO_STORAGE_NAME \
	--namespace storage \
	stable/minio

Запускаем следующую команду:

$ kubectl get pods --namespace=storage -w

Ждем пока не будет «READY 1/1»

Нам будет нужна еще одна переменная:

$ export POD_NAME=$(kubectl get pods --namespace storage -l "release=`echo ${MINIO_STORAGE_NAME}`" -o jsonpath="{.items[0].metadata.name}")

Далее, запускаем прокси в бэкграунде:

$ nohup kubectl port-forward $POD_NAME 9001:9000 --namespace storage &

PS: Можем открыть http://localhost:9001 чтобы зайти в S3 хранилище.

Определим ендпоинт который будем юзать:

$ export ENDPOINT="http://${MINIO_STORAGE_NAME}.storage.svc.cluster.local:9000"

Так же, стоит выбрать имя для деплоймента:

$ export DEPLOYMENT=default

Создадим проект:

$ mkdir -p ~/.hal/$DEPLOYMENT/profiles

Установим опцию игнорирования версий S3:

$ echo "spinnaker.s3.versioning: false" > \
      ~/.hal/$DEPLOYMENT/profiles/front50-local.yml

Конфигурируем S3 сторедж ендпоинт и креденшелы для Halyard:

$ echo $MINIO_SECRET_KEY | hal config storage s3 edit \
	--endpoint $ENDPOINT \
	--access-key-id $MINIO_ACCESS_KEY \
	--secret-access-key # will be read on STDIN

Включаем созданный S3 сторедж:

$ hal config storage edit --type s3

Теперь, когда включили провайдер Kubernetes (Docker for Desktop), выбрали среду распределенного развертывания и настроили постоянное хранилище Minio S3, теперь необходимо выбрать версию Spinnaker, развернуть ее и подключиться к ней.

Выставляем версию для деплоймента Spinnaker:

$ export VERSION="1.14.7" && \
hal config version edit --version $VERSION

Выполняем деплоймент:

$ hal deploy apply

Для проверки состояний, можно использовать:

$ kubectl get pods --namespace=spinnaker -w

Выполняем форвардинг портов 9000 (Deck UI) и 8084 (Gate API service):

$ hal deploy connect

-=== Используем AWS S3 ===-

Выполним:

$ export AWS_ACCESS_KEY="AWS_ACCESS_KEY"
$ export AWS_SECRET_KEY="AWS_SECRET_KEY"
$ export AWS_REGION="eu-north-1"
$ export AWS_S3_STORAGE_NAME="AWS_S3_STORAGE_NAME" 
$ export AWS_S3_ENDPOINT="https://${AWS_S3_STORAGE_NAME}.s3.amazonaws.com"
$ export DEPLOYMENT=default
$ mkdir -p ~/.hal/$DEPLOYMENT/profiles
$ echo "spinnaker.s3.versioning: false" > \
	~/.hal/$DEPLOYMENT/profiles/front50-local.yml
$ echo $AWS_SECRET_KEY | hal config storage s3 edit \
	--AWS_S3_ENDPOINT $AWS_S3_ENDPOINT \
	--access-key-id $AWS_ACCESS_KEY \
	--region $REGION \
	--secret-access-key # will be read on STDIN
$ hal config storage edit --type s3

Вот и все.

Удаление созданного барахла

Для удаления всего созданного, нужно выполнить ряд следующих команд.

Для начала, удаляем все деплойменты от спинакера:

$ hal deploy clean

Выполним команду для проверки:

$ kubectl get pods --namespace=spinnaker -w

Удалим неймспейс:

$ kubectl delete namespace spinnaker

Завершаем работу прокси от minio:

$ kill $(ps -ef | grep port-forward | grep my-s3-storage | awk '{ print $2 }')

Удаляем minio:

$ kubectl delete deployment ${MINIO_STORAGE_NAME} --namespace storage 
$ helm delete --purge ${MINIO_STORAGE_NAME}

Опять таки, можно выполнить команду для проверки:

$ kubectl get pods --namespace=storage -w

Удаляем неймспейс:

$ kubectl delete namespace storage

Еще, ели нужно удалить еще и Halyard, то выполняем:

$ kill $(ps -ef | grep com.netflix.spinnaker.halyard.Main | awk '{ print $2 }')
$ sudo ~/.hal/uninstall.sh

Удаление завершено.

Установка spinnaker используя Minikube в Unix/Linux

Устанавливаем Halyard:

# cd /usr/local/src && $ curl -O https://raw.githubusercontent.com/spinnaker/halyard/master/install/macos/InstallHalyard.sh

Выполним установку:

$ sudo bash ./InstallHalyard.sh -y --user $USER

Я буду использовать minikube для работы с k8s:

$ minikube start --cpus 4 --memory 8192

Поглядим под-ы:

$ kubectl get nodes

Выбираем контекст:

$ kubectl config use-context minikube

Иницилиализируемся:

$ helm init --wait

Включаем куб:

$ hal config provider kubernetes enable

Пробрасываем переменные:

$ export MINIO_ACCESS_KEY=VHK5D359RAXHEXAMPLE && \
  export MINIO_SECRET_KEY=vE8qPsiWjluG2mZRD1WHZANzSYW8X8C3BExAmPLe && \
  export ACCOUNT=demo-account

В отдельном окне терминала, запускаем минио:

$ docker run -p 9000:9000 --name minio1 \
  -e "MINIO_ACCESS_KEY=${MINIO_ACCESS_KEY}" \
  -e "MINIO_SECRET_KEY=${MINIO_SECRET_KEY}" \
  minio/minio server /data

ЗАМЕЧАНИЕ: можно еще добавить:

  • -v /home/captain/minio/data:/data \
  • -v /home/captain/minio/config:/root/.minio \

Но нужно их создать для начала (я за папки).

Добавляем минио к кубернетес:

$ echo ${MINIO_SECRET_KEY} | hal config storage s3 edit --endpoint http://localhost:9000     --access-key-id ${MINIO_ACCESS_KEY}     --secret-access-key
+ Get current deployment
  Success
+ Get persistent store
  Success
Generated bucket name: spin-ec1fb70b-43b4-4a05-88ab-868e8950637a
+ Edit persistent store
  Success
Problems in default.persistentStorage:
- WARNING Your deployment will most likely fail until you configure
  and enable a persistent store.

+ Successfully edited persistent store "s3".

И потом, еще одну команду:

$ hal config storage edit --type s3
+ Get current deployment
  Success
+ Get persistent storage settings
  Success
+ Edit persistent storage settings
  Success
+ Successfully edited persistent storage.

Для настройки Spinnaker kubernetes требуется как минимум Docker регистри. Добавляем регистри так:

hal config provider docker-registry account add dockerhub --address index.docker.io --repositories library/nginx

ЗАМЕЧАНИЕ: Можно использовать приватный докер регистри. Например, чтобы запустить локальный докер-регистри, можно выполнить:

$ docker run -d -p 5000:5000 --restart=always --name registry registry:2

Можете добавить приватный Docker регистр:

$ hal config provider docker-registry account add docker-private-repo --address https://localhost:5000 --username myuser  --password mypassword
+ Get current deployment
  Success
+ Add the docker-private-repo account
  Success
Problems in default.provider.dockerRegistry.docker-private-repo:
- WARNING Your docker registry has no repositories specified, and
  the registry's catalog is empty. Spinnaker will not be able to deploy any images
  until some are pushed to this registry.
? Manually specify some repositories for this docker registry to
  index.

+ Successfully added account docker-private-repo for provider
  dockerRegistry.

Разрешаем докер-регистри:

$ hal config provider docker-registry enable
+ Get current deployment
  Success
+ Edit the dockerRegistry provider
  Success
Problems in default.provider.dockerRegistry.docker-private-repo:
- WARNING Your docker registry has no repositories specified, and
  the registry's catalog is empty. Spinnaker will not be able to deploy any images
  until some are pushed to this registry.
? Manually specify some repositories for this docker registry to
  index.

+ Successfully enabled dockerRegistry

Добавляем аккаунт:

$ hal config provider kubernetes account add ${ACCOUNT} --kubeconfig-file=/Users/captain/.kube/config --docker-registries dockerhub --context $(kubectl config current-context)
+ Get current deployment
  Success
+ Add the demo-account account
  Success
+ Successfully added account demo-account for provider
  kubernetes.

Установим параметры ENV:

$ hal config deploy edit --type=distributed --account-name ${ACCOUNT}
+ Get current deployment
  Success
+ Get the deployment environment
  Success
+ Edit the deployment environment
  Success
+ Successfully updated your deployment environment.

Смотрим версии Spinnaker:

$ hal version list
+ Get current deployment
  Success
+ Get Spinnaker version
  Success
+ Get released versions
  Success
+ You are on version "", and the following are available:
 - 1.12.13 (Unbreakable):
   Changelog: https://gist.github.com/spinnaker-release/89e02b2d04aff5b5cab69c3963cbb157
   Published: Thu Jun 20 18:12:21 EEST 2019
   (Requires Halyard >= 1.11)
 - 1.13.10 (BirdBox):
   Changelog: https://gist.github.com/spinnaker-release/3056119e8dd52f5d24041fdf0a42fe3e
   Published: Thu Jun 20 18:31:31 EEST 2019
   (Requires Halyard >= 1.17)
 - 1.14.1 (LoveDeathAndRobots):
   Changelog: https://gist.github.com/spinnaker-release/4b4bb42d4e3b6073fbd5f89fa7c3e060
   Published: Fri May 24 18:17:14 EEST 2019
   (Requires Halyard >= 1.17)
 - 1.14.7 (LoveDeathAndRobots):
   Changelog: https://gist.github.com/spinnaker-release/cf6b8a7290ba0d9277360e7a794e0b6b
   Published: Mon Jun 24 17:03:24 EEST 2019
   (Requires Halyard >= 1.17)

Выбираем нужную и применяем настройку:

$ hal config version edit --version 1.14.7
+ Get current deployment
  Success
+ Edit Spinnaker version
  Success
+ Spinnaker has been configured to update/install version "1.14.7".
  Deploy this version of Spinnaker with `hal deploy apply`.

Деплоим:

$ hal deploy apply

Во время деплоймента, можно смотреть на создающиеся поды:

$ kubectl get pods --namespace spinnaker -w
NAME                                    READY   STATUS    RESTARTS   AGE
spin-clouddriver-bootstrap-v000-s2pnh   1/1     Running   0          105s
spin-clouddriver-v000-bs8gt             0/1     Running   0          26s
spin-deck-v000-hdwtg                    1/1     Running   0          26s
spin-echo-v000-8qnfr                    0/1     Running   0          26s
spin-front50-v000-7nxn6                 0/1     Running   0          26s
spin-gate-v000-qgq9w                    0/1     Running   0          26s
spin-igor-v000-bfpp4                    0/1     Running   0          25s
spin-orca-bootstrap-v000-swvpr          1/1     Running   0          69s
spin-orca-v000-njqz2                    0/1     Running   0          26s
spin-redis-bootstrap-v000-vkpx4         1/1     Running   0          110s
spin-redis-v000-rtbfj                   1/1     Running   0          37s
spin-rosco-v000-lwrc2                   0/1     Running   0          25s

Для запуска Spinnaker UI:

$ hal deploy connect

Если вы не хотите использовать hal для подключения, вы можете сделать переадресацию портов на модули Spinnaker:

alias spin_gate='kubectl port-forward -n spinnaker $(kubectl get pods -n spinnaker -o=custom-columns=NAME:.metadata.name | grep gate) 8084:8084'

alias spin_deck='kubectl port-forward -n spinnaker $(kubectl get pods -n spinnaker -o=custom-columns=NAME:.metadata.name | grep deck) 9001:9000'

alias spinnaker='spin_gate &; spin_deck &'

После чего, запускаем:

$ spinnaker
[1] 20836
[2] 20840

❯ Forwarding from 127.0.0.1:8084 -> 8084
Forwarding from [::1]:8084 -> 8084
Forwarding from 127.0.0.1:9001 -> 9000
Forwarding from [::1]:9001 -> 9000

Открываем http://localhost:9001

Готово!

Установка spinnaker используя Docker и Docker-Compose в Unix/Linux

Копируем код:

$ git clone https://github.com/spinnaker/spinnaker.git

Заходим в папку:

$ cd spinnaker/experimental/docker-compose/

Для удобства использования, я создам новую докер-машину:

$ docker-machine create spinnaker

Далее, выполняем:

$ export DOCKER_IP=$(docker-machine ip spinnaker) && \
docker-compose up -d

После деплоймента, можно выполнить:

$ open http://$(docker-machine ip spinnaker):9000

Честно говоря, у меня не вышло запустить сервис данным образом. Я оставил данное действие в качестве примера. Данный запуск, находится в эксперементальном режиме, они еще его тестируют и отлаживают.

Установка spinnaker используя Kubernetes и Helm в Unix/Linux

Устанавливаем kubernetes (Docker for Desktop или Minikube, AWS EKS, GCP GKE etc).

Для данного примера, я возьму Docker for Desktop. Выполнил настройку как в примере выше.

Устанавливаем HELM:

Установка Helm в Unix/Linux

Затем, скачиваем чарт:

$ curl -Lo values.yaml https://raw.githubusercontent.com/kubernetes/charts/master/stable/spinnaker/values.yaml

Отредактируйте values.yaml, чтобы вставить учетные данные Docker Hub под учетной записью dockerhub. Добавьте репо, который вы открыли из моей учетной записи Github, в список репозиториев, например:

.........
dockerRegistries:
- name: dockerhub
  address: index.docker.io
  username: YOUR_USERNAME_HERE
  password: YOUR_PASSWORD_HERE
  repositories:
    - library/alpine
    - library/ubuntu
    - library/centos
    - library/nginx
.........

Где:

  • YOUR_USERNAME_HERE — Пользователь от докер Хаба
  • YOUR_PASSWORD_HERE — Пароль от пользователя от докер Хаба

У меня была ошибка с minio ПОД-ом, исправлением служило замена тега для образа minio, блок выглядит так:

.....
minio:
  enabled: true
  imageTag: latest
  serviceType: ClusterIP
  accessKey: spinnakeradmin
  secretKey: spinnakeradmin
  bucket: "spinnaker"
  pullPolicy: IfNotPresent
  nodeSelector: {}
.......

Теперь запустите Spinnaker с обновленной конфигурацией:

$ helm install -n kubelive stable/spinnaker -f values.yaml --timeout 300 --version 0.3.5 --namespace spinnaker

Откройте порт Spinnaker для хоста с помощью следующих команд:

$ export DECK_POD=$(kubectl get pods --namespace spinnaker -l "component=deck,app=kubelive-spinnaker" -o jsonpath="{.items[0].metadata.name}") && \
kubectl port-forward --namespace spinnaker $DECK_POD 9000

После этого, можно открыть Spinnaker из браузера, посетив http://localhost:9000

Как-то так.

Установка spinnaker используя AWS EKS в Unix/Linux

Пока не пробовал. Оставлю так, после дополню.

Установка spinnaker используя GCP GKE в Unix/Linux

Пока не пробовал. Оставлю так, после дополню.

Настройка/Использование Spinnaker в Unix/Linux

И так, настройка прошла успешно. Открыли Spinnaker на http://localhost:9000. Домашняя станица Spinnaker-а выглядит следующим образом:

В поле поиска, можно поискать проекты, кластера, ЛБ, секьюрити группы и тд и тп. Например:

Приступим к использованию!

Создание Spinnaker пайплайна

Начну создание приложения под названием MyTestApp:

Нажимаем на кнопку «Create». Созданное приложение выглядит так:

Идем далее, создаем лоад баллансер, для этого клацаем по «Load Balancers» -> «Create Load Balancer»:

Во вкладке с «BASIC SETTINGS», заполняем:

  • Account -> local.
  • Namespace -> default.
  • Stack -> prod.

Далее, во вкладке с «PORTS»:

В данной вкладке стоит прописать:

  • Target Port -> 80.

Далее, во вкладке с «ADVANCED SETTINGS»:

В данной вкладке, прописываем:

  • Type -> NodePort.

Нажимаем на «Create». Аналогичными действиями, создаем ЛБ с названием «dev», но только в последней вкладке стоит выбрать «ClusterIP»:

После чего, должно выти что-то типа следующего:

ЛБы готовы и теперь можно создавать pipeline, переходим в данную вкладку и нажимаем на «Create»:

Заполняем:

  • Pipeline Name -> DeployToProd

Нажимаем на «Create»:

Жмакаем на «Save Changes». Прокручиваем стрцницу вверх и кликаем на «Add stage»:

Заполняем:

  • Stage name -> Deploy

Затем кликаем по «Add server group»:

Я выбрал:

  • Copy configuration from -> None. Т.к у меня нет подходящих шаблонов для этого деплоймента.

Нажимаем на «Continue without a template»:

Нажимаем на вкладку «LOAD BALANCERS» и выбираем нужный (в данном случае — mytestapp-prod):

Переходим во «CONTAINER» вкладку и заполняем:

В данной вкладке, стоит открыть «Probes» и добавляем использование Readiness Probe и Liveness Probe:

И так, нажимаем на «Add» чтобы добавить наши ченджи. И потом, кликаем по «Save Changes».

Т.к я деплою nginx, а не приложение с кодом (так бы сработал триггер по коммиту), то запущу «Start manual execution»:

Выбераем параметры:

Нажимаем на «Run».

Получаем сервисы:

$ kubectl get svc
NAME             TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
kubernetes       ClusterIP   10.96.0.1        <none>        443/TCP        178m
mytestapp-dev    ClusterIP   10.105.171.103   <none>        80/TCP         47m
mytestapp-prod   NodePort    10.109.30.179    <none>        80:30294/TCP   57m

Чтобы проверить, работает ли деплоймент, пробросим прокси куба:

$ kubectl proxy
Starting to serve on 127.0.0.1:8001

ЗАМЕЧАНИЕ: для того чтобы прокси работал в бэкграунде, выполняем:

$ kubectl proxy &

Т.к я деплоил mytestapp-prod приложение, а оно находится на http://127.0.0.1:30294/ то кликаем по нему и попадаем собственно на задеплоенный nginx!

Стоит выполнить ряд действий для dev стейджа. Клацаем «Pipelines» -> «Create». Название выбираем название «DeployToDev»:

После чего. Нажимаем на «Save Changes». И кликаем «Add Stage»:

Заполняем:

  • Type -> Deploy.
  • Stage Name -> Deploy.

В поле «Add server group», выбераем «mytestapp-prod-v000»:

Выбираем из списка и нажимаем на «Use this template». Он скопирует темплейт в новый. Немного поправим его:

Далее, в поле «Load Balancers»:

Заменили и идем в «Container»:

Во вкладке «Probes», включаем Readiness Probe и Liveness Probe (как в примерах выше). После всех настроек, клацаем на «Add» -> «Save Changes».

Вернусь в главное меню апликейшина и нажму на только созданный пайплайн:

Скачаем дашборды для куба:

$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/kubernetes-dashboard.yaml

Смотрим токены:

$ kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')

Открываем — http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

С помощью данных бордов можно смотреть инфу.

В завершении, содаем новый пайплайн с названием PromoteToProd:

Жмакаем на «Create». И заполняем поля:

Нажимаем на «Save Changes». После чего, открываем «Add Stage»:

Заполняем и клацаем на «Save Changes». Клацаем на «Add stage» для создания деплоя на ПРОД:

Клацаем на «Add server group» и выбераем «Copy configuration from», а имеено с «None» и кликаем на «Continue without any templates». Заполняем:

Кликаем на «Add» -> «Save Changes».

Нажимаем на билды. Перекидываем с dev -> prod:

Проверяем через ИП деплой! Все должно работать.

Вот и все, статья «Установка Spinnaker в Unix/Linux» завершена.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.