#! /bin/sh

cd $(dirname $0)/../

CONTROLLER_GEN="go tool -modfile gotools/controller-gen/go.mod controller-gen"

# 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
$CONTROLLER_GEN crd:generateEmbeddedObjectMeta=true,allowDangerousTypes=false paths=./pkg/apis/... output:crd:dir=./pkg/crds/yaml/generated

# remove empty CRD that is generated from our use of // +kubebuilder:skipversion
rm -f ./pkg/crds/yaml/generated/_.yaml

# Generate the sample CRD used for documenting dynamic objects in rke-machine.cattle.io (machines and machinetemplates).
$CONTROLLER_GEN crd paths=./pkg/controllers/capr/dynamicschema/sample output:crd:dir=./pkg/controllers/capr/dynamicschema/sample
