Skip to content

Commit

Permalink
bump code generators
Browse files Browse the repository at this point in the history
Signed-off-by: Tim Ramlot <[email protected]>
  • Loading branch information
inteon committed May 17, 2024
1 parent 515559a commit 256f161
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 98 deletions.
99 changes: 30 additions & 69 deletions hack/k8s-codegen.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,21 +26,7 @@ defaultergen=$5
conversiongen=$6
openapigen=$7

# If the envvar "VERIFY_ONLY" is set, we only check if everything's up to date
# and don't actually generate anything

VERIFY_FLAGS=""
VERB="Generating"

if [[ ${VERIFY_ONLY:-} ]]; then
VERIFY_FLAGS="--verify-only"
VERB="Verifying"
fi

export VERIFY_FLAGS
export VERB

echo "+++ ${VERB} code..." >&2
echo "+++ Generating code..." >&2

module_name="github.com/cert-manager/cert-manager"

Expand Down Expand Up @@ -113,11 +99,6 @@ conversion_inputs=(

# clean will delete files matching name in path.
clean() {
if [[ ${VERIFY_ONLY:-} ]]; then
# don't delete files if we're only verifying
return 0
fi

path=$1
name=$2
if [[ ! -d "$path" ]]; then
Expand All @@ -128,90 +109,76 @@ clean() {

gen-openapi-acme() {
clean pkg/acme/webhook/openapi 'zz_generated.openapi.go'
echo "+++ ${VERB} ACME openapi..." >&2
echo "+++ Generating ACME openapi..." >&2
mkdir -p hack/openapi_reports
"$openapigen" \
${VERIFY_FLAGS} \
--go-header-file "hack/boilerplate-go.txt" \
--report-filename "hack/openapi_reports/acme.txt" \
--input-dirs "k8s.io/apimachinery/pkg/version" \
--input-dirs "k8s.io/apimachinery/pkg/runtime" \
--input-dirs "k8s.io/apimachinery/pkg/apis/meta/v1" \
--input-dirs "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" \
--input-dirs "github.com/cert-manager/cert-manager/pkg/acme/webhook/apis/acme/v1alpha1" \
--trim-path-prefix "github.com/cert-manager/cert-manager" \
--output-package "github.com/cert-manager/cert-manager/pkg/acme/webhook/openapi" \
--output-base ./ \
-O zz_generated.openapi
--output-dir ./pkg/acme/webhook/openapi/ \
--output-pkg "github.com/cert-manager/cert-manager/pkg/acme/webhook/openapi" \
--output-file zz_generated.openapi.go \
"k8s.io/apimachinery/pkg/version" \
"k8s.io/apimachinery/pkg/runtime" \
"k8s.io/apimachinery/pkg/apis/meta/v1" \
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" \
"github.com/cert-manager/cert-manager/pkg/acme/webhook/apis/acme/v1alpha1"
}

gen-deepcopy() {
clean pkg/apis 'zz_generated.deepcopy.go'
clean pkg/acme/webhook/apis 'zz_generated.deepcopy.go'
clean pkg/webhook/handlers/testdata/apis 'zz_generated.deepcopy.go'
echo "+++ ${VERB} deepcopy methods..." >&2
echo "+++ Generating deepcopy methods..." >&2
prefixed_inputs=( "${deepcopy_inputs[@]/#/$module_name/}" )
joined=$( IFS=$','; echo "${prefixed_inputs[*]}" )
"$deepcopygen" \
${VERIFY_FLAGS} \
--go-header-file hack/boilerplate-go.txt \
--input-dirs "$joined" \
--output-file-base zz_generated.deepcopy \
--trim-path-prefix="$module_name" \
--output-file zz_generated.deepcopy.go \
--bounding-dirs "${module_name}" \
--output-base ./
"${prefixed_inputs[@]}"
}

gen-clientsets() {
clean "${client_subpackage}"/clientset '*.go'
echo "+++ ${VERB} clientset..." >&2
echo "+++ Generating clientset..." >&2
prefixed_inputs=( "${client_inputs[@]/#/$module_name/}" )
joined=$( IFS=$','; echo "${prefixed_inputs[*]}" )
"$clientgen" \
${VERIFY_FLAGS} \
--go-header-file hack/boilerplate-go.txt \
--clientset-name versioned \
--input-base "" \
--input "$joined" \
--trim-path-prefix="$module_name" \
--output-package "${client_package}"/clientset \
--output-base ./
--output-dir "${client_subpackage}"/clientset \
--output-pkg "${client_package}"/clientset
}

gen-listers() {
clean "${client_subpackage}/listers" '*.go'
echo "+++ ${VERB} listers..." >&2
echo "+++ Generating listers..." >&2
prefixed_inputs=( "${client_inputs[@]/#/$module_name/}" )
joined=$( IFS=$','; echo "${prefixed_inputs[*]}" )
"$listergen" \
${VERIFY_FLAGS} \
--go-header-file hack/boilerplate-go.txt \
--input-dirs "$joined" \
--trim-path-prefix="$module_name" \
--output-package "${client_package}"/listers \
--output-base ./
--output-dir "${client_subpackage}"/listers \
--output-pkg "${client_package}"/listers \
"${prefixed_inputs[@]}"
}

gen-informers() {
clean "${client_subpackage}"/informers '*.go'
echo "+++ ${VERB} informers..." >&2
echo "+++ Generating informers..." >&2
prefixed_inputs=( "${client_inputs[@]/#/$module_name/}" )
joined=$( IFS=$','; echo "${prefixed_inputs[*]}" )
"$informergen" \
${VERIFY_FLAGS} \
--go-header-file hack/boilerplate-go.txt \
--input-dirs "$joined" \
--versioned-clientset-package "${client_package}"/clientset/versioned \
--listers-package "${client_package}"/listers \
--trim-path-prefix="$module_name" \
--output-package "${client_package}"/informers \
--output-base ./
--output-dir "${client_subpackage}"/informers \
--output-pkg "${client_package}"/informers \
"${prefixed_inputs[@]}"
}

gen-defaulters() {
clean internal/apis 'zz_generated.defaults.go'
clean pkg/webhook/handlers/testdata/apis 'zz_generated.defaults.go'
echo "+++ ${VERB} defaulting functions..." >&2
echo "+++ Generating defaulting functions..." >&2

DEFAULT_EXTRA_PEER_PKGS=(
github.com/cert-manager/cert-manager/internal/apis/meta \
Expand All @@ -224,19 +191,16 @@ gen-defaulters() {
DEFAULT_PKGS=( "${defaulter_inputs[@]/#/$module_name/}" )

"$defaultergen" \
${VERIFY_FLAGS} \
--go-header-file hack/boilerplate-go.txt \
--extra-peer-dirs "$( IFS=$','; echo "${DEFAULT_EXTRA_PEER_PKGS[*]}" )" \
--input-dirs "$( IFS=$','; echo "${DEFAULT_PKGS[*]}" )" \
--trim-path-prefix="$module_name" \
-O zz_generated.defaults \
--output-base ./
--output-file zz_generated.defaults.go \
"${DEFAULT_PKGS[@]}"
}

gen-conversions() {
clean internal/apis 'zz_generated.conversion.go'
clean pkg/webhook/handlers/testdata/apis 'zz_generated.conversion.go'
echo "+++ ${VERB} conversion functions..." >&2
echo "+++ Generating conversion functions..." >&2

CONVERSION_EXTRA_PEER_PKGS=(
github.com/cert-manager/cert-manager/internal/apis/meta \
Expand All @@ -249,14 +213,11 @@ gen-conversions() {
CONVERSION_PKGS=( "${conversion_inputs[@]/#/$module_name/}" )

"$conversiongen" \
${VERIFY_FLAGS} \
--go-header-file hack/boilerplate-go.txt \
--extra-peer-dirs "$( IFS=$','; echo "${CONVERSION_EXTRA_PEER_PKGS[*]}" )" \
--extra-dirs "$( IFS=$','; echo "${CONVERSION_PKGS[*]}" )" \
--input-dirs "$( IFS=$','; echo "${CONVERSION_PKGS[*]}" )" \
--trim-path-prefix="$module_name" \
-O zz_generated.conversion \
--output-base ./
--output-file zz_generated.conversion.go \
"${CONVERSION_PKGS[@]}"
}

gen-openapi-acme
Expand Down
5 changes: 0 additions & 5 deletions hack/openapi_reports/acme.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
API rule violation: list_type_missing,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,JSON,Raw
API rule violation: list_type_missing,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,WebhookClientConfig,CABundle
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,FieldsV1,Raw
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/runtime,RawExtension,Raw
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/runtime,Unknown,Raw
API rule violation: names_match,github.com/cert-manager/cert-manager/pkg/acme/webhook/apis/acme/v1alpha1,ChallengeResponse,Result
API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,JSONSchemaProps,Ref
API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,JSONSchemaProps,Schema
Expand Down
4 changes: 2 additions & 2 deletions klone.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ targets:
repo_hash: e44cf74061351e8e463a786e47daacd98f4eab60
repo_path: modules/repository-base
- folder_name: tools
repo_url: https://github.com/cert-manager/makefile-modules.git
repo_url: https://github.com/inteon/makefile-modules.git
repo_ref: main
repo_hash: e44cf74061351e8e463a786e47daacd98f4eab60
repo_hash: 17587621836a12bac11c186f9bd95e05e4b057f5
repo_path: modules/tools
9 changes: 5 additions & 4 deletions make/_shared/tools/00_mod.mk
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ tools += rclone=v1.66.0

### go packages
# https://pkg.go.dev/sigs.k8s.io/controller-tools/cmd/controller-gen?tab=versions
tools += controller-gen=v0.14.0
tools += controller-gen=v0.15.0
# https://pkg.go.dev/golang.org/x/tools/cmd/goimports?tab=versions
tools += goimports=v0.20.0
# https://pkg.go.dev/github.com/google/go-licenses/licenses?tab=versions
Expand Down Expand Up @@ -132,15 +132,16 @@ tools += gci=v0.13.4
tools += yamlfmt=v0.12.1

# https://pkg.go.dev/k8s.io/code-generator/cmd?tab=versions
K8S_CODEGEN_VERSION := v0.29.3
K8S_CODEGEN_VERSION := v0.30.1
tools += client-gen=$(K8S_CODEGEN_VERSION)
tools += deepcopy-gen=$(K8S_CODEGEN_VERSION)
tools += informer-gen=$(K8S_CODEGEN_VERSION)
tools += lister-gen=$(K8S_CODEGEN_VERSION)
tools += applyconfiguration-gen=$(K8S_CODEGEN_VERSION)
tools += openapi-gen=$(K8S_CODEGEN_VERSION)
tools += defaulter-gen=$(K8S_CODEGEN_VERSION)
tools += conversion-gen=$(K8S_CODEGEN_VERSION)
# https://github.com/kubernetes/kube-openapi
tools += openapi-gen=f0e62f92d13f418e2732b21c952fd17cab771c75

# https://github.com/kubernetes-sigs/kubebuilder/blob/tools-releases/build/cloudbuild_tools.yaml
KUBEBUILDER_ASSETS_VERSION := 1.30.0
Expand Down Expand Up @@ -317,9 +318,9 @@ go_dependencies += deepcopy-gen=k8s.io/code-generator/cmd/deepcopy-gen
go_dependencies += informer-gen=k8s.io/code-generator/cmd/informer-gen
go_dependencies += lister-gen=k8s.io/code-generator/cmd/lister-gen
go_dependencies += applyconfiguration-gen=k8s.io/code-generator/cmd/applyconfiguration-gen
go_dependencies += openapi-gen=k8s.io/code-generator/cmd/openapi-gen
go_dependencies += defaulter-gen=k8s.io/code-generator/cmd/defaulter-gen
go_dependencies += conversion-gen=k8s.io/code-generator/cmd/conversion-gen
go_dependencies += openapi-gen=k8s.io/kube-openapi/cmd/openapi-gen
go_dependencies += helm-tool=github.com/cert-manager/helm-tool
go_dependencies += cmctl=github.com/cert-manager/cmctl/v2
go_dependencies += cmrel=github.com/cert-manager/release/cmd/cmrel
Expand Down
15 changes: 0 additions & 15 deletions make/ci.mk
Original file line number Diff line number Diff line change
Expand Up @@ -44,21 +44,6 @@ generate-crds: | $(NEEDS_CONTROLLER-GEN)

shared_generate_targets += generate-crds

# Overwrite the verify-generate-codegen target with this
# optimised target.
.PHONY: verify-generate-codegen
verify-generate-codegen: | $(NEEDS_CLIENT-GEN) $(NEEDS_DEEPCOPY-GEN) $(NEEDS_INFORMER-GEN) $(NEEDS_LISTER-GEN) $(NEEDS_DEFAULTER-GEN) $(NEEDS_CONVERSION-GEN) $(NEEDS_OPENAPI-GEN)
VERIFY_ONLY="true" ./hack/k8s-codegen.sh \
$(CLIENT-GEN) \
$(DEEPCOPY-GEN) \
$(INFORMER-GEN) \
$(LISTER-GEN) \
$(DEFAULTER-GEN) \
$(CONVERSION-GEN) \
$(OPENAPI-GEN)

shared_verify_targets += verify-generate-codegen

.PHONY: generate-codegen
generate-codegen: | $(NEEDS_CLIENT-GEN) $(NEEDS_DEEPCOPY-GEN) $(NEEDS_INFORMER-GEN) $(NEEDS_LISTER-GEN) $(NEEDS_DEFAULTER-GEN) $(NEEDS_CONVERSION-GEN) $(NEEDS_OPENAPI-GEN)
./hack/k8s-codegen.sh \
Expand Down
4 changes: 1 addition & 3 deletions pkg/acme/webhook/openapi/zz_generated.openapi.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 256f161

Please sign in to comment.