Реализация создания нового развертывания.
Получает на вход следующие аргументы:
--project-name
– название проекта--base-domain
– базовый домен--namespace
– namespace--name
– имя развертывания--tag
– тег развертывания--app-env-override
– override уровня приложения (формат значенияFOO=BAR
, может быть передано 0 или более раз)--deployment-override
– override уровня развертывания (формат значенияFOO=BAR
, может быть передано 0 или более раз)
Успешность операции определяется по exit code (0
– успех).
Например create
с полученными аргументами может выполнять:
helm upgrade --install --namespace "$namespace" "$name" "$deployment_chart" \
--set "global.project-name=$project_name" \
--set "global.base-domain=$base-domain" \
--set "app.tag=$tag" \
--set "app.env.foo=$app_env_override_1" \
--set "app.bar=$deployment_override_1" \
--wait \
--timeout 300
Реализация обновления развертывания.
Получает на вход следующие аргументы:
--project-name
– название проекта--base-domain
– базовый домен--namespace
– namespace--name
– имя развертывания--tag
– тег развертывания--app-env-override
– override уровня приложения (формат значенияFOO=BAR
, может быть передано 0 или более раз)--deployment-override
– override уровня развертывания (формат значенияFOO=BAR
, может быть передано 0 или более раз)
Успешность операции определяется по exit code (0
– успех).
Например update
с полученными аргументами может выполнять:
helm upgrade --install --namespace "$namespace" "$name" "$deployment_chart" \
--set "global.project-name=$project_name" \
--set "global.base-domain=$base-domain" \
--set "app.tag=$tag" \
--set "app.env.foo=$app_env_override_1" \
--set "app.bar=$deployment_override_1" \
--wait \
--timeout 300
Реализация удаления развертывания.
Получает на вход следующие аргументы:
--project-name
– название проекта--base-domain
– базовый домен--namespace
– namespace--name
– имя развертывания
Успешность операции определяется по exit code (0
– успех).
Например archive
с полученными аргументами может выполнять:
helm delete "$name" --purge
Реализация проверки состояния развертывания.
Получает на вход следующие аргументы:
--project-name
– название проекта--base-domain
– базовый домен--namespace
– namespace--name
– имя развертывания
Успешность операции определяется по exit code (0
– успех).
Например check
с полученными аргументами может выполнять:
echo "{\"Deployments\": [{\"ResourceName\": \"app-${name}\", \"Namespace\": \"${namespace}\"}], \"StatefulSets\": [{\"ResourceName\": \"db-${name}\", \"Namespace\": \"${namespace}\"}]}" | \
kubedog multitrack -t 3
В примере выше используется Kubedog.
Предполагается, что пользователь сам установит Kubedog: сохранит его в /
контейнера с Control scripts или установит его в $HOME
из init.
Реализация очистки ресурсов развертывания.
Получает на вход следующие аргументы:
--project-name
– название проекта--base-domain
– базовый домен--namespace
– namespace--name
– имя развертывания
Успешность операции определяется по exit code (0
– успех).
Например cleanup
с полученными аргументами может выполнять:
kubectl delete pvc -n $namespace -l "app=$name"
Реализация проверки успешности удаления развертывания.
Получает на вход следующие аргументы:
--project-name
– название проекта--base-domain
– базовый домен--namespace
– namespace--name
– имя развертывания
Успешность операции определяется по exit code (0
– успех).
Например archive_check
с полученными аргументами может выполнять:
helm status $name
Реализация проверки существования тега развертывания.
Получает на вход следующие аргументы:
--project-name
– название проекта--base-domain
– базовый домен--namespace
– namespace--name
– имя развертывания--tag
– тег развертывания
Успешность операции определяется по exit code (0
– успех).
Реализация инициализации рабочего окружения для будущих запусков Control Scripts.
В этом скрипте предлагается настроить доступ к системам контроля версий, облачным провайдерам и т.д. Для этого можно сохранить настройки в файлы в $HOME.
Этот скрипт однократно запускается во время создания пода Octopod Server
.
Успешность операции определяется по exit code (0
– успех).
Например init
может выполнять:
mkdir $HOME/.ssh
echo -e "Host github.com\nHostname github.com\nPort 22\nUser git\nIdentityFile $HOME/.ssh/deploy.key" > $HOME/.ssh/config
echo "MY_DEPLOY_KEY" > $HOME/.ssh/deploy.key"
Реализация получения метаданных о deployment. Содержимое stdout будет использованно в качестве дополнительной информации о deployment в CLI/UI.
Ожидаемый формат stdout ― CSV ключ,значение
:
app,https://foo.example.com
api,https://api.foo.example.com
Ожидается, что ключ
не может содержать символ ,
, ограничений на значение
нет. Пробельные символы остаются без изменений.
Получает на вход следующие аргументы:
--project-name
– название проекта--base-domain
– базовый домен--namespace
– namespace--name
– имя стейджинга
Успешность операции определяется по exit code (0
– успех).
Например info
с полученными аргументами может выполнять:
echo "app,https://${name}.example.com"
echo "api,https://api.${name}.example.com"