mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 20:24:09 +00:00
bazel: add openapi generation for non-main spec and fix main spec
This commit is contained in:
parent
87b744715e
commit
53a7dcdee9
@ -51,7 +51,15 @@ def openapi_deps():
|
|||||||
deps.extend([bazel_go_library(pkg) for pkg in tags_values_pkgs["openapi-gen"]["true"]])
|
deps.extend([bazel_go_library(pkg) for pkg in tags_values_pkgs["openapi-gen"]["true"]])
|
||||||
return deps
|
return deps
|
||||||
|
|
||||||
def gen_openapi(outs, output_pkg):
|
def applies(pkg, prefixes, default):
|
||||||
|
if prefixes == None or len(prefixes) == 0:
|
||||||
|
return default
|
||||||
|
for prefix in prefixes:
|
||||||
|
if pkg == prefix or pkg.startswith(prefix + "/"):
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
def gen_openapi(outs, output_pkg, include_pkgs=[], exclude_pkgs=[]):
|
||||||
"""Calls openapi-gen to produce the zz_generated.openapi.go file,
|
"""Calls openapi-gen to produce the zz_generated.openapi.go file,
|
||||||
which should be provided in outs.
|
which should be provided in outs.
|
||||||
output_pkg should be set to the full go package name for this generated file.
|
output_pkg should be set to the full go package name for this generated file.
|
||||||
@ -72,7 +80,7 @@ def gen_openapi(outs, output_pkg):
|
|||||||
"--output-file-base zz_generated.openapi",
|
"--output-file-base zz_generated.openapi",
|
||||||
"--output-package " + output_pkg,
|
"--output-package " + output_pkg,
|
||||||
"--report-filename tmp_api_violations.report",
|
"--report-filename tmp_api_violations.report",
|
||||||
"--input-dirs " + ",".join([go_pkg(pkg) for pkg in tags_values_pkgs["openapi-gen"]["true"]]),
|
"--input-dirs " + ",".join([go_pkg(pkg) for pkg in tags_values_pkgs["openapi-gen"]["true"] if applies(pkg, include_pkgs, True) and not applies(pkg, exclude_pkgs, False)]),
|
||||||
"&& cp $$GOPATH/src/" + output_pkg + "/zz_generated.openapi.go $$GO_GENRULE_EXECROOT/$(location :zz_generated.openapi.go)",
|
"&& cp $$GOPATH/src/" + output_pkg + "/zz_generated.openapi.go $$GO_GENRULE_EXECROOT/$(location :zz_generated.openapi.go)",
|
||||||
"&& rm tmp_api_violations.report",
|
"&& rm tmp_api_violations.report",
|
||||||
]),
|
]),
|
||||||
|
@ -30,7 +30,7 @@ fi
|
|||||||
|
|
||||||
# Remove generated files prior to running kazel.
|
# Remove generated files prior to running kazel.
|
||||||
# TODO(spxtr): Remove this line once Bazel is the only way to build.
|
# TODO(spxtr): Remove this line once Bazel is the only way to build.
|
||||||
rm -f "${KUBE_ROOT}/pkg/generated/openapi/zz_generated.openapi.go"
|
rm -f "${KUBE_ROOT}/{pkg/generated,staging/src/k8s.io/apiextensions-apiserver/pkg/client,staging/src/k8s.io/kube-aggregator/pkg/client}/openapi/zz_generated.openapi.go"
|
||||||
|
|
||||||
_tmpdir="$(kube::realpath "$(mktemp -d -t verify-bazel.XXXXXX)")"
|
_tmpdir="$(kube::realpath "$(mktemp -d -t verify-bazel.XXXXXX)")"
|
||||||
kube::util::trap_add "rm -rf ${_tmpdir}" EXIT
|
kube::util::trap_add "rm -rf ${_tmpdir}" EXIT
|
||||||
|
@ -5,6 +5,10 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
|
|||||||
|
|
||||||
gen_openapi(
|
gen_openapi(
|
||||||
outs = ["zz_generated.openapi.go"],
|
outs = ["zz_generated.openapi.go"],
|
||||||
|
exclude_pkgs = [
|
||||||
|
"staging/src/k8s.io/code-generator",
|
||||||
|
"staging/src/k8s.io/sample-apiserver",
|
||||||
|
],
|
||||||
output_pkg = "k8s.io/kubernetes/pkg/generated/openapi",
|
output_pkg = "k8s.io/kubernetes/pkg/generated/openapi",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -1,16 +1,26 @@
|
|||||||
|
package(default_visibility = ["//visibility:public"])
|
||||||
|
|
||||||
|
load("//build:code_generation.bzl", "gen_openapi", "openapi_deps")
|
||||||
load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
||||||
|
|
||||||
|
gen_openapi(
|
||||||
|
outs = ["zz_generated.openapi.go"],
|
||||||
|
include_pkgs = [
|
||||||
|
"staging/src/k8s.io/apimachinery/pkg/apis/meta/v1",
|
||||||
|
"staging/src/k8s.io/apimachinery/pkg/runtime",
|
||||||
|
"staging/src/k8s.io/apimachinery/pkg/version",
|
||||||
|
"staging/src/k8s.io/sample-apiserver",
|
||||||
|
],
|
||||||
|
output_pkg = "k8s.io/sample-apiserver/pkg/generated/openapi",
|
||||||
|
)
|
||||||
|
|
||||||
go_library(
|
go_library(
|
||||||
name = "go_default_library",
|
name = "go_default_library",
|
||||||
srcs = ["zz_generated.openapi.go"],
|
srcs = ["zz_generated.openapi.go"],
|
||||||
importmap = "k8s.io/kubernetes/vendor/k8s.io/sample-apiserver/pkg/generated/openapi",
|
importmap = "k8s.io/kubernetes/vendor/k8s.io/sample-apiserver/pkg/generated/openapi",
|
||||||
importpath = "k8s.io/sample-apiserver/pkg/generated/openapi",
|
importpath = "k8s.io/sample-apiserver/pkg/generated/openapi",
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = openapi_deps(), # keep
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
|
||||||
"//vendor/github.com/go-openapi/spec:go_default_library",
|
|
||||||
"//vendor/k8s.io/kube-openapi/pkg/common:go_default_library",
|
|
||||||
],
|
|
||||||
)
|
)
|
||||||
|
|
||||||
filegroup(
|
filegroup(
|
||||||
|
Loading…
Reference in New Issue
Block a user