DIKI A "Verificador de conformidade" ou classifica, uma estrutura de controle de detetives com conjuntos de regras flugable. Faz parte da família Gardener, mas também pode ser usada em outras distritos de Kubernetes ou mesmo em ambientes que não sejam de Kubernetes, por exemplo, para verificar a conformidade de suas contas de hiperscaler.
Diki é a palavra grega para "julgamento". Você também pode memorizá-lo como "investigação detetive dos principais imperativos" ou como acrônimo recursivo no estilo GNU "Diki investiga os principais imperativos". É coloquialmente conhecido como "Não sei", o que é um bom ajuste também para o que faz.
Importante
Este repositório está se desenvolvendo ativamente. As APIs podem mudar sem qualquer compatibilidade com versões anteriores.
Se você instalar via lançamentos do GitHub, precisará colocar o binário diki em seu caminho.
Um snippet de instalação de amostra para macOS pode ser assim:
# 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
A maioria das configurações run
de Diki é fornecida por meio de seu arquivo de configuração. As opções dependem dos diferentes fornecedores e regras. Aqui estão alguns comandos para você começar:
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
O DIKI pode gerar um relatório legível humano a partir dos arquivos de saída de uma execução do diki run
. Relatórios mesclados podem ser produzidos definindo o sinalizador distinct-by
causa. O valor desse sinalizador é uma lista de pares de key=value
onde as chaves são os IDs dos provedores que queremos incluir no relatório mesclado e os valores são os campos de metadados exclusivos a serem usados como valores de distinção entre diferentes execuções de provedores.
diki report generate
--output=report.html
output.json
diki report generate
--distinct-by=gardener=id
--output=report.html
output1.json output2.json
O Diki pode gerar um JSON contendo a diferença entre dois arquivos de saída de execuções diki run
. Isso pode ajudar a identificar melhorias (ou regressões). Um relatório de diferença de HTML legível humano pode ser gerado a partir dos relatórios de diferenças.
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
Você pode executar manualmente os testes via make test
.
As contribuições são muito bem -vindas. Para saber mais, consulte o guia do colaborador.
Um agradecimento especial a @vlerenc, @aleksandarsavchev e @dimityrmirchev, que fizeram contribuições significativas para o projeto antes de ser disponibilizado ao público.