Сегодня немного дополним более ранний пост про использование inputs в пайплайнах. Это такое, что точно можно использовать, если все почему-то так еще не делаете. Рассмотрим проект запуска пайплайна в ручную, с указанием разных типов переменных. В этом случае хорошо получается заменить их на inputs и сделать все удобнее.
Как мы разбирали уже ранее - есть условия переменных и при выборе окружения будет возможность выбрать стенды только внутри этого окружения, но теперь добавим еще разные типы, проверяем поля и так мы убедимся, что запуск пайплайна не упадет из-за некорректных данных указанных при запуске
inputs:
environment:
description: "Target environment"
options: ["test", "stage", "prod"]
default: "test"
landscape:
description: "Target stand"
rules:
- if: $[[ inputs.environment ]] == "prod"
options: ["my-prod01", "my-prod02"]
default: "my-prod01"
- if: $[[ inputs.environment ]] == "stage"
options: ["my-stage01", "my-stage02"]
default: "my-stage01"
- options: ["my-test01", "my-test02", "sandbox01"]
default: "my-test01"
playbook:
description: "Playbook to run"
rules:
- if: $[[ inputs.environment ]] == "prod"
options: ["deploy", "check", "rollback"]
default: "check"
- if: $[[ inputs.environment ]] == "stage"
options: ["deploy", "check", "rollback", "smoke", "migrate"]
default: "deploy"
- options: ["first_playbook", "deploy", "check", "smoke", "migrate", "debug"]
default: "first_playbook"
mode:
description: "Execution mode"
options: ["apply", "check", "diff"]
default: "apply"
limit_hosts:
description: "Optional ansible --limit"
default: ""
regex: '^$|^[A-Za-z0-9_.:,-]+$'
forks:
description: "Ansible forks"
type: number
default: 10
gather_facts:
description: "Enable gather_facts"
type: boolean
default: true
verbose:
description: "Enable -vvv"
type: boolean
default: false
confirmation:
description: "Type APPROVE for production apply"
default: ""
Для числовых знаний поставим type: number и boolean когда просто выбираем true/false что-бы не писать это текстом - можно и ошибиться.
Получаем основные поля - выбираются из предложенных вариантов. Число в специальном поле и переключатели там где это уместно. Остается пару полей с строкой - в данном случае это для гибкости.
