Diki A «Проверка соответствия» или сортировки, детективная структура управления с подключаемыми наборами правил. Это часть семейства садовников, но может использоваться также на других дистрибуциях Kubernetes или даже в условиях, не связанных с некубернетами, например, чтобы проверить соблюдение ваших учетных записей гиперсклада.
Дики - греческое слово «испытание». Вы также можете запомнить его как «детективное расследование ключевых императивов» или как рекурсивную аббревиатуру в стиле GNU ». Дики исследует ключевые императивы». Он в разговорной речи известен как «Не знаю, я это не знаю», что хорошо подходит для того, что он делает.
Важный
Этот репозиторий активно развивается. API могут измениться без какой -либо обратной совместимости.
Если вы установите через выпуск GitHub, вам нужно поместить бинар Diki на свой путь.
Образец установки фрагмента для macOS может выглядеть так:
# Example for macOS
# set operating system and architecture
os=darwin # choose between darwin, linux, windows
arch=amd64 # choose between amd64, arm64
# Get latest version. Alternatively set your desired version
version= $( curl -Ls -H ' Accept: application/json ' https://github.com/gardener/diki/releases/latest | jq -r ' .tag_name ' )
# Download diki
curl -LO " https://github.com/gardener/diki/releases/download/ ${version} /diki- ${os} - ${arch} "
# Make the diki binary executable
chmod +x " ./diki- ${os} - ${arch} "
# Move the binary in to your PATH
sudo mv " ./diki- ${os} - ${arch} " /usr/local/bin/diki
Большинство конфигураций Diki run
предоставляются через его файл конфигурации. Варианты зависят от различных поставщиков и наборов правил. Вот пара команд, чтобы начать вас:
diki run
--config=config.yaml
--all
diki run
--config=config.yaml
--all
--output=./report.json
diki run
--config=config.yaml
--provider=gardener
--ruleset-id=disa-kubernetes-stig
--ruleset-version=v2r1
diki run
--config=config.yaml
--provider=gardener
--ruleset-id=disa-kubernetes-stig
--ruleset-version=v2r1
--rule-id=242414
Diki может генерировать читаемый отчет о человеке из выходных файлов выполнения diki run
. Объединенные отчеты могут быть произведены путем установки distinct-by
флага. Значение этого флага - это список паров key=value
, где ключи являются идентификаторами поставщиков, которые мы хотим включить в объединенный отчет, и значения являются уникальными полями метаданных, которые будут использоваться в качестве значений различия между различными пробегами.
diki report generate
--output=report.html
output.json
diki report generate
--distinct-by=gardener=id
--output=report.html
output1.json output2.json
Diki может генерировать JSON, содержащий разницу между двумя выходными файлами выполнения diki run
. Это может помочь определить улучшения (или регрессии). Отчеты о различии HTML -HTML человека можно сгенерировать из отчетов о различиях.
diki report diff
--title=Title
--old=output1.json
--new=output2.json
--output=difference.json
diki report generate diff
--identity-attributes=gardener=id
--output=difference.html
difference1.json difference2.json
Вы можете вручную запустить тесты с помощью make test
.
Взносы очень приветствуются. Чтобы узнать больше, см. Руководство для участника.
Особая благодарность @vlerenc, @aleksandarsavchev и @dimityrmirchev, которые внесли значительный вклад в проект до того, как он был доступен для публики.