DIKI Un "verificador de cumplimiento" o tipos, un marco de control de detectives con conjuntos de reglas conectables. Es parte de la familia Gardener, pero también puede usarse en otras distribuciones de Kubernetes o incluso en entornos no Kubernetes, por ejemplo, para verificar el cumplimiento de sus cuentas hiperscaladoras.
Diki es la palabra griega para "juicio". También puede memorizarlo como "investigación de detectives de imperativos clave" o como acrónimo recursivo al estilo GNU "Diki investiga los imperativos clave". Se conoce coloquialmente como "No lo sé", que también es un buen ajuste para lo que hace.
Importante
Este repositorio se está desarrollando activamente. Las API pueden cambiar sin ninguna compatibilidad hacia atrás.
Si instala a través de las versiones de GitHub, debe poner el binario Diki en su camino.
Un fragmento de instalación de muestra para macOS puede verse así:
# 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
La mayoría de las configuraciones run
de DIKI se proporcionan a través de su archivo de configuración. Las opciones dependen de los diferentes proveedores y conjuntos de reglas. Aquí hay un par de comandos para comenzar:
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 puede generar un informe legible en humanos a partir de los archivos de salida de una ejecución diki run
. Los informes fusionados se pueden producir estableciendo la bandera distinct-by
. El valor de este indicador es una lista de pares de key=value
donde las claves son las ID de los proveedores que queremos incluir en el informe fusionado y los valores son los campos de metadatos únicos que se utilizarán como valores de distinción entre diferentes ejecuciones de proveedores.
diki report generate
--output=report.html
output.json
diki report generate
--distinct-by=gardener=id
--output=report.html
output1.json output2.json
DIKI puede generar un JSON que contiene la diferencia entre dos archivos de salida de ejecuciones diki run
. Esto puede ayudar a identificar mejoras (o regresiones). Se puede generar un informe de diferencia HTML legible por humanos a partir de los informes de diferencia.
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
Puede ejecutar manualmente las pruebas a través de make test
.
Las contribuciones son muy bienvenidas. Para obtener más información, consulte la Guía de contribuyentes.
Un agradecimiento especial a @vlerenc, @aleksandarsavchev y @dimityrmirchev, quienes hicieron contribuciones significativas al proyecto antes de que estuviera disponible para el público.