Diki Ein "Compliance -Checker" oder Sorten, ein Detektivkontrollrahmen mit steckbaren Regelsätzen. Es ist Teil der Gärtnerfamilie, kann aber auch für andere Kubernetes-Distributionen oder sogar in Nicht-Kubernetes-Umgebungen verwendet werden, z. B. um die Einhaltung Ihrer Hyperskalerkonten zu überprüfen.
Diki ist das griechische Wort für "Versuch". Sie können es auch als "Detektivuntersuchung der wichtigsten Imperative" oder als rekursives Akronym "Diki Invales Investigates wichtige Imperative" auswendig lernen. Es ist umgangssprachlich als "Nicht weiß ich es" bekannt, was auch gut für das passt, was es tut.
Wichtig
Dieses Repository entwickelt sich aktiv. APIs können sich ohne Rückwärtskompatibilität ändern.
Wenn Sie über Github -Releases installiert werden, müssen Sie den Diki -Binär auf Ihren Weg setzen.
Ein Beispiel für ein Beispiel für macOS kann wie folgt aussehen:
# 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
Die meisten run
von DIKI werden über seine Konfigurationsdatei bereitgestellt. Optionen hängen von den verschiedenen Anbietern und Regeln ab. Hier sind ein paar Befehle, um Ihnen den Einstieg zu erleichtern:
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 kann einen menschlichen lesbaren Bericht aus den Ausgabedateien einer diki run
-Ausführung erstellen. Fusionierte Berichte können erstellt werden, indem die distinct-by
festgelegt wird. Der Wert dieser Flagge ist eine Liste von key=value
-Paaren, bei denen die Schlüssel die IDs der Anbieter sind, die wir in den zusammengeführten Bericht aufnehmen möchten, und die Werte die eindeutigen Metadatenfelder, die als Unterscheidungswerte zwischen verschiedenen Anbieterläufen verwendet werden sollen.
diki report generate
--output=report.html
output.json
diki report generate
--distinct-by=gardener=id
--output=report.html
output1.json output2.json
Diki kann einen JSON erzeugen, der den Unterschied zwischen zwei Ausgabedateien von diki run
-Ausführungen enthält. Dies kann dazu beitragen, Verbesserungen (oder Regressionen) zu identifizieren. Ein menschlicher lesbarer HTML -Differenzbericht kann aus den Differenzberichten erzeugt werden.
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
Sie können die Tests manuell durch make test
.
Beiträge sind sehr willkommen. Weitere Informationen finden Sie im Leitfaden für Mitarbeiter.
Ein besonderes Dankeschön an @vlerenc, @AleksAsavchev und @Dimityrmirchev, die erhebliche Beiträge zum Projekt geleistet haben, bevor es der Öffentlichkeit zur Verfügung gestellt wurde.