#!/bin/bash

set -eou pipefail


CONTROLLER_TOOLS_VERSION=v0.20.0

# This will return non-zero until all of our objects in ./pkg/apis can generate valid crds.
# allowDangerousTypes is needed for struct that use floats
go run sigs.k8s.io/controller-tools/cmd/controller-gen@${CONTROLLER_TOOLS_VERSION} \
    crd:generateEmbeddedObjectMeta=true,allowDangerousTypes=false \
    object paths=./pkg/apis/... \
    output:crd:dir=./charts/k3k/templates/crds

# add the 'helm.sh/resource-policy: keep' annotation to the CRDs
for f in ./charts/k3k/templates/crds/*.yaml; do
    sed -i '0,/^[[:space:]]*annotations:/s/^[[:space:]]*annotations:/&\n    helm.sh\/resource-policy: keep/' "$f"
    echo "Validating $f"
    yq . "$f" > /dev/null
done
