Skip to content

Commit f462747

Browse files
committed
v1alpha2: Update code generation scripts to account for multiple apis.
Signed-off-by: Nadia Pinaeva <[email protected]>
1 parent 0632ff8 commit f462747

File tree

2 files changed

+47
-32
lines changed

2 files changed

+47
-32
lines changed

hack/update-codegen.sh

Lines changed: 45 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,10 @@ fi
4545

4646
export GOMODCACHE GO111MODULE GOFLAGS GOPATH
4747

48-
readonly API_VERSION=v1alpha1
48+
readonly APIS_PKG=sigs.k8s.io/network-policy-api
4949
readonly OUTPUT_PKG=sigs.k8s.io/network-policy-api/pkg/client
50-
readonly OUTPUT_DIR=${SCRIPT_ROOT}/pkg/client
51-
readonly API_DIR=${SCRIPT_ROOT}/apis/${API_VERSION}
50+
readonly OUTPUT_DIR=pkg/client
51+
readonly APIS_PATH=apis
5252
readonly CLIENTSET_NAME=versioned
5353
readonly CLIENTSET_PKG_NAME=clientset
5454
readonly APPLYCONFIG_PKG_NAME=applyconfiguration
@@ -58,45 +58,58 @@ readonly COMMON_FLAGS="${VERIFY_FLAG:-} --go-header-file ${SCRIPT_ROOT}/hack/boi
5858
echo "Generating CRDs"
5959
go run ./pkg/generator
6060

61-
echo "Generating applyconfig at ${OUTPUT_PKG}/${APPLYCONFIG_PKG_NAME}"
61+
INPUT_DIRS_SPACE=""
62+
INPUT_DIRS_CLIENTSET=""
63+
64+
mapfile -t VERSIONS < <(find "${APIS_PATH}" -maxdepth 1 -type d -name "v*" -printf '%f\n' | LC_ALL=C sort -u)
65+
for VERSION in "${VERSIONS[@]}"; do
66+
INPUT_DIRS_SPACE+="${APIS_PKG}/${APIS_PATH}/${VERSION} "
67+
INPUT_DIRS_CLIENTSET+="${APIS_PATH}/${VERSION},"
68+
done
69+
70+
INPUT_DIRS_SPACE="${INPUT_DIRS_SPACE%,}" # drop trailing space
71+
INPUT_DIRS_CLIENTSET="${INPUT_DIRS_CLIENTSET%,}" # drop trailing comma
72+
73+
echo "Generating applyconfig at ${APIS_PKG}/${APPLYCONFIG_PKG_NAME}"
6274
go run k8s.io/code-generator/cmd/applyconfiguration-gen \
63-
"${API_DIR}" \
64-
--output-pkg "${OUTPUT_PKG}/${APPLYCONFIG_PKG_NAME}" \
65-
--output-dir "${OUTPUT_DIR}/${APPLYCONFIG_PKG_NAME}" \
66-
${COMMON_FLAGS}
75+
--output-pkg "${OUTPUT_PKG}/${APPLYCONFIG_PKG_NAME}" \
76+
--output-dir "${OUTPUT_DIR}/${APPLYCONFIG_PKG_NAME}" \
77+
${COMMON_FLAGS} \
78+
${INPUT_DIRS_SPACE}
6779

6880
echo "Generating clientset at ${OUTPUT_PKG}/${CLIENTSET_PKG_NAME}"
6981
go run k8s.io/code-generator/cmd/client-gen \
70-
--clientset-name "${CLIENTSET_NAME}" \
71-
--input-base "" \
72-
--input "${API_DIR}" \
73-
--output-dir "${OUTPUT_DIR}/${CLIENTSET_PKG_NAME}" \
74-
--output-pkg "${OUTPUT_PKG}/${CLIENTSET_PKG_NAME}" \
75-
--apply-configuration-package "${OUTPUT_PKG}/${APPLYCONFIG_PKG_NAME}" \
76-
${COMMON_FLAGS}
82+
--clientset-name "${CLIENTSET_NAME}" \
83+
--input-base "${APIS_PKG}" \
84+
--input "${INPUT_DIRS_CLIENTSET}" \
85+
--output-dir "${OUTPUT_DIR}/${CLIENTSET_PKG_NAME}" \
86+
--output-pkg "${OUTPUT_PKG}/${CLIENTSET_PKG_NAME}" \
87+
--apply-configuration-package "${OUTPUT_PKG}/${APPLYCONFIG_PKG_NAME}" \
88+
${COMMON_FLAGS}
7789

7890
echo "Generating listers at ${OUTPUT_PKG}/listers"
7991
go run k8s.io/code-generator/cmd/lister-gen \
80-
"${API_DIR}" \
81-
--output-dir "${OUTPUT_DIR}/listers" \
82-
--output-pkg "${OUTPUT_PKG}/listers" \
83-
${COMMON_FLAGS}
92+
--output-dir "${OUTPUT_DIR}/listers" \
93+
--output-pkg "${OUTPUT_PKG}/listers" \
94+
${COMMON_FLAGS} \
95+
${INPUT_DIRS_SPACE}
8496

8597
echo "Generating informers at ${OUTPUT_PKG}/informers"
8698
go run k8s.io/code-generator/cmd/informer-gen \
87-
--versioned-clientset-package "${OUTPUT_PKG}/${CLIENTSET_PKG_NAME}/${CLIENTSET_NAME}" \
88-
--listers-package "${OUTPUT_DIR}/listers" \
89-
--output-dir "${OUTPUT_DIR}/informers" \
90-
--output-pkg "${OUTPUT_PKG}/informers" \
91-
${COMMON_FLAGS}
92-
93-
echo "Generating ${API_VERSION} register at ${API_DIR}"
99+
--versioned-clientset-package "${OUTPUT_PKG}/${CLIENTSET_PKG_NAME}/${CLIENTSET_NAME}" \
100+
--listers-package "${OUTPUT_PKG}/listers" \
101+
--output-dir "${OUTPUT_DIR}/informers" \
102+
--output-pkg "${OUTPUT_PKG}/informers" \
103+
${COMMON_FLAGS} \
104+
${INPUT_DIRS_SPACE}
105+
106+
echo "Generating register"
94107
go run k8s.io/code-generator/cmd/register-gen \
95-
"${API_DIR}" \
96-
--output-file "zz_generated.register.go" \
97-
${COMMON_FLAGS}
108+
--output-file "zz_generated.register.go" \
109+
${COMMON_FLAGS} \
110+
${INPUT_DIRS_SPACE}
98111

99-
echo "Generating ${API_VERSION} deepcopy at ${API_DIR}"
112+
echo "Generating deepcopy at ${APIS_PATH}"
100113
go run sigs.k8s.io/controller-tools/cmd/controller-gen \
101-
object:headerFile="${SCRIPT_ROOT}/hack/boilerplate.generatego.txt" \
102-
paths="${API_DIR}"
114+
object:headerFile="${SCRIPT_ROOT}/hack/boilerplate.generatego.txt" \
115+
paths="./${APIS_PATH}"

pkg/generator/main.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ const (
3939
var standardKinds = map[string]bool{
4040
"AdminNetworkPolicy": true,
4141
"BaselineAdminNetworkPolicy": true,
42+
"ClusterNetworkPolicy": true,
4243
}
4344

4445
// This generation code is largely copied from
@@ -47,6 +48,7 @@ func main() {
4748
roots, err := loader.LoadRoots(
4849
"k8s.io/apimachinery/pkg/runtime/schema", // Needed to parse generated register functions.
4950
"sigs.k8s.io/network-policy-api/apis/v1alpha1",
51+
"sigs.k8s.io/network-policy-api/apis/v1alpha2",
5052
)
5153
if err != nil {
5254
log.Fatalf("failed to load package roots: %s", err)

0 commit comments

Comments
 (0)