Diki un "vérificateur de conformité" ou trie, un cadre de contrôle de détective avec des ensembles de règles enfichables. Il fait partie de la famille des jardiniers, mais peut également être utilisé sur d'autres distros de Kubernetes ou même sur des environnements non Kubernetes, par exemple pour vérifier la conformité de vos comptes d'hyperscaler.
Diki est le mot grec pour "essai". Vous pouvez également le mémoriser en tant que "enquête détective sur les impératifs clés" ou en tant qu'acronyme récursif de style GNU "Diki enquête sur les impératifs clés". Il est familièrement connu sous le nom de "Je ne le sais pas", ce qui convient également à ce qu'il fait.
Important
Ce référentiel se développe activement. Les API peuvent changer sans aucune compatibilité vers l'arrière.
Si vous installez via des versions GitHub, vous devez mettre le binaire Diki sur votre chemin.
Un exemple d'extrait d'installation pour macOS peut ressembler à ceci:
# 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 plupart des configurations run
de Diki sont fournies via son fichier de configuration. Les options dépendent des différents fournisseurs et ensembles de règles. Voici quelques commandes pour vous aider à démarrer:
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 peut générer un rapport lisible par l'homme à partir des fichiers de sortie d'une exécution diki run
. Des rapports fusionnés peuvent être produits en définissant le drapeau distinct-by
. La valeur de ce drapeau est une liste de paires key=value
où les clés sont les ID des fournisseurs que nous voulons inclure dans le rapport fusionné et les valeurs sont les champs de métadonnées uniques à utiliser comme valeurs de distinction entre les différentes exécutions du fournisseur.
diki report generate
--output=report.html
output.json
diki report generate
--distinct-by=gardener=id
--output=report.html
output1.json output2.json
Diki peut générer un JSON contenant la différence entre deux fichiers de sortie des exécutions diki run
. Cela peut aider à identifier les améliorations (ou les régressions). Un rapport de différence HTML lisible par l'homme peut être généré à partir des rapports de différence.
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
Vous pouvez exécuter manuellement les tests via make test
.
Les contributions sont les bienvenues. Pour en savoir plus, consultez le Guide des contributeurs.
Un merci spécial à @vlerenc, @aleksandarsavchev et @dimityrmirchev qui a apporté des contributions importantes au projet avant d'être mis à la disposition du public.