Draft: A very simple Helm Chart
Fixes #134
Follow-up to !78 (closed)
Ich hab mal ein (rudimentäres) Helm Chart gebastelt. Ein erster Versuch damit war schon ganz viel versprechend. Basiert noch auf dem aktuellen master-Branch, sollte aber auch relativ einfach anzupassen sein wenn !76 (merged) gemergt ist.
Die Templates habe ich einfach aus den bestehenden Policies abgeleitet:
cd policies
for POLICY in *.yaml
do
cat $POLICY | sed -e 's/kind: ClusterPolicy/kind: {{ .Values.policyKind }}/' | sed -e 's/validationFailureAction: audit/validationFailureAction: {{ .Values.validationFailureAction }}/' > ../igbvc-bsi-policies/templates/$POLICY
done
cd ..
rm igbvc-bsi-policies/templates/kustomization.yaml
Das hat auch ziemlich gut funktioniert, nur an require-unique-uid-per-workload
musste ich nochmal von Hand ran.
Das könnte man natürlich noch ein bisschen ausbauen und zum Beispiel validationFailureAction
für jede einzelne Policy überschreibbar machen wie bei den kyverno-policies. Wird dann natürlich irgendwann ziemlich aufwändig, Änderungen an den Policies nochmal in den Templates einzupflegen. Wenn man wirklich ein Helm Chart will, wäre der umgedrehte Weg wahrscheinlich besser. Also nur noch die Templates ändern und daraus die Policies generieren:
#!/bin/bash
MYDIR=$(dirname $0)
TEMPDIR=$(mktemp -d)
trap "rm -rf $TEMPDIR" EXIT
helm template --output-dir "$TEMPDIR" "$MYDIR"/igbvc-bsi-policies
cp "$TEMPDIR"/igbvc-bsi-policies/templates/*.yaml "$MYDIR"/policies
Oder so.