diff --git a/build/root/Makefile.generated_files b/build/root/Makefile.generated_files index 3c4327ad616..6f354e25e7b 100644 --- a/build/root/Makefile.generated_files +++ b/build/root/Makefile.generated_files @@ -409,8 +409,10 @@ $(CONVERSION_GEN): $(k8s.io/kubernetes/vendor/k8s.io/code-generator/cmd/conversi OPENAPI_BASENAME := $(GENERATED_FILE_PREFIX)openapi OPENAPI_FILENAME := $(OPENAPI_BASENAME).go OPENAPI_OUTPUT_PKG := pkg/generated/openapi +CRD_OPENAPI_OUTPUT_PKG := staging/src/k8s.io/apiextensions-apiserver/pkg/generated/openapi BOILERPLATE_FILENAME := vendor/k8s.io/code-generator/hack/boilerplate.go.txt REPORT_FILENAME := $(OUT_DIR)/violations.report +IGNORED_REPORT_FILENAME := $(OUT_DIR)/ignored_violations.report KNOWN_VIOLATION_FILENAME := api/api-rules/violation_exceptions.list # When UPDATE_API_KNOWN_VIOLATIONS is set to be true, let the generator to write # updated API violations to the known API violation exceptions list. @@ -436,10 +438,11 @@ OPENAPI_DIRS := $(shell \ ) OPENAPI_OUTFILE := $(OPENAPI_OUTPUT_PKG)/$(OPENAPI_FILENAME) +CRD_OPENAPI_OUTFILE := $(CRD_OPENAPI_OUTPUT_PKG)/$(OPENAPI_FILENAME) # This rule is the user-friendly entrypoint for openapi generation. .PHONY: gen_openapi -gen_openapi: $(OPENAPI_OUTFILE) $(OPENAPI_GEN) +gen_openapi: $(OPENAPI_OUTFILE) $(OPENAPI_GEN) $(CRD_OPENAPI_OUTFILE) # For each dir in OPENAPI_DIRS, this establishes a dependency between the # output file and the input files that should trigger a rebuild. @@ -469,6 +472,17 @@ $(OPENAPI_OUTFILE): $(OPENAPI_GEN) $(KNOWN_VIOLATION_FILENAME) diff $(REPORT_FILENAME) $(KNOWN_VIOLATION_FILENAME) || \ (echo -e $(API_RULE_CHECK_FAILURE_MESSAGE); exit 1) +# TODO(roycaihw): move the automation to apiextensions-apiserver +$(CRD_OPENAPI_OUTFILE): $(OPENAPI_GEN) + ./hack/run-in-gopath.sh $(OPENAPI_GEN) \ + --v $(KUBE_VERBOSE) \ + --logtostderr \ + -i "k8s.io/apimachinery/pkg/apis/meta/v1,k8s.io/api/autoscaling/v1" \ + -p $(PRJ_SRC_PATH)/$(CRD_OPENAPI_OUTPUT_PKG) \ + -O $(OPENAPI_BASENAME) \ + -h $(BOILERPLATE_FILENAME) \ + -r $(IGNORED_REPORT_FILENAME) \ + "$$@" # How to build the generator tool. The deps for this are defined in # the $(GO_PKGDEPS_FILE), above. diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/generated/openapi/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/generated/openapi/BUILD new file mode 100644 index 00000000000..473b65dc552 --- /dev/null +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/generated/openapi/BUILD @@ -0,0 +1,33 @@ +package(default_visibility = ["//visibility:public"]) + +load("//build:code_generation.bzl", "gen_openapi", "openapi_deps") +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +gen_openapi( + outs = ["zz_generated.openapi.go"], + output_pkg = "k8s.io/apiextensions-apiserver/pkg/generated/openapi", +) + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "zz_generated.openapi.go", + ], + importmap = "k8s.io/kubernetes/vendor/k8s.io/apiextensions-apiserver/pkg/generated/openapi", + importpath = "k8s.io/apiextensions-apiserver/pkg/generated/openapi", + deps = openapi_deps(), # keep +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/generated/openapi/doc.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/generated/openapi/doc.go new file mode 100644 index 00000000000..5e6851f5470 --- /dev/null +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/generated/openapi/doc.go @@ -0,0 +1,18 @@ +/* +Copyright 2019 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// openapi generated definitions. +package openapi