@@ -21,21 +21,24 @@ CRD_URLS=${CRD_URLS:-}
2121OUTPUT_DIR=${OUTPUT_DIR:- }
2222KUBERNETES_CRD_GROUP_PREFIX=${KUBERNETES_CRD_GROUP_PREFIX:- }
2323PACKAGE_NAME=${PACKAGE_NAME:- }
24+ CLUSTER_NAME=${CLUSTER_NAME:- " crd-model-gen" }
2425
2526print_usage () {
2627 echo " Usage: generate Java model classes from CRDs" >& 2
2728 echo " -n: the prefix of the target CRD's api group to generate." >& 2
2829 echo " -p: the base package name of the generated java project. " >& 2
2930 echo " -o: output directory of the generated java project. " >& 2
3031 echo " -u: url location of the YAML manifest to install CRDs to a Kubernetes cluster. " >& 2
32+ echo " -c: cluster name of kind. " >& 2
3133}
3234
33- while getopts ' u:n:p:o:' flag; do
35+ while getopts ' u:n:p:o:c: ' flag; do
3436 case " ${flag} " in
3537 u) CRD_URLS+=(" ${OPTARG} " ) ;;
3638 n) KUBERNETES_CRD_GROUP_PREFIX=" ${OPTARG} " ;;
3739 p) PACKAGE_NAME=" ${OPTARG} " ;;
3840 o) OUTPUT_DIR=" ${OPTARG} " ;;
41+ c) CLUSTER_NAME=" ${OPTARG} " ;;
3942 * ) print_usage
4043 exit 1 ;;
4144 esac
4447set -e
4548
4649# create a KinD cluster on the host
47- kind create cluster
50+ kind create cluster --name ${CLUSTER_NAME}
4851
4952# install CRDs to the KinD cluster and dump the swagger spec
5053for url in " ${CRD_URLS[@]} " ; do
@@ -62,19 +65,19 @@ kubectl get crd -o name \
6265 do
6366 if [[ $( kubectl get $L -o jsonpath=' {.status.conditions[?(@.type=="NonStructuralSchema")].status}' ) == " True" ]]; then
6467 echo " $L failed publishing openapi schema because it's attached non-structral-schema condition."
65- kind delete cluster
68+ kind delete cluster --name ${CLUSTER_NAME}
6669 exit 1
6770 fi
6871 if [[ $( kubectl get $L -o jsonpath=' {.spec.preserveUnknownFields}' ) == " true" ]]; then
6972 echo " $L failed publishing openapi schema because it explicitly disabled unknown fields pruning."
70- kind delete cluster
73+ kind delete cluster --name ${CLUSTER_NAME}
7174 exit 1
7275 fi
7376 echo " $L successfully installed"
7477 done
7578
7679# destroy the KinD cluster
77- kind delete cluster
80+ kind delete cluster --name ${CLUSTER_NAME}
7881
7982# execute the generation script
8083bash java-crd-cmd.sh -n " ${KUBERNETES_CRD_GROUP_PREFIX} " -p " ${PACKAGE_NAME} " -l 2 -o " ${OUTPUT_DIR} /gen" < /tmp/swagger
0 commit comments