diff --git a/api/api-rules/sample_apiserver_violation_exceptions.list b/api/api-rules/sample_apiserver_violation_exceptions.list new file mode 100644 index 00000000000..c211037baf7 --- /dev/null +++ b/api/api-rules/sample_apiserver_violation_exceptions.list @@ -0,0 +1,7 @@ +API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,APIResourceList,APIResources +API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,Duration,Duration +API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,InternalEvent,Object +API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,InternalEvent,Type +API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,MicroTime,Time +API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,StatusCause,Type +API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,Time,Time diff --git a/build/kazel_generated.bzl b/build/kazel_generated.bzl index 38cab1c3f9c..43dbb7d3128 100644 --- a/build/kazel_generated.bzl +++ b/build/kazel_generated.bzl @@ -102,6 +102,8 @@ tags_values_pkgs = {"openapi-gen": { "staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1", "staging/src/k8s.io/metrics/pkg/apis/metrics/v1beta1", "staging/src/k8s.io/node-api/pkg/apis/node/v1alpha1", + "staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1", + "staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1beta1", ], }} @@ -182,4 +184,6 @@ tags_pkgs_values = {"openapi-gen": { "staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1": ["true"], "staging/src/k8s.io/metrics/pkg/apis/metrics/v1beta1": ["true"], "staging/src/k8s.io/node-api/pkg/apis/node/v1alpha1": ["true"], + "staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1": ["true"], + "staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1beta1": ["true"], }} diff --git a/staging/publishing/import-restrictions.yaml b/staging/publishing/import-restrictions.yaml index 0339e38a1ca..a38041d9e83 100644 --- a/staging/publishing/import-restrictions.yaml +++ b/staging/publishing/import-restrictions.yaml @@ -142,6 +142,7 @@ - k8s.io/client-go - k8s.io/code-generator - k8s.io/component-base + - k8s.io/kube-openapi - k8s.io/sample-apiserver - k8s.io/klog diff --git a/staging/src/k8s.io/sample-apiserver/BUILD b/staging/src/k8s.io/sample-apiserver/BUILD index 40fd961c3c6..da623ac083f 100644 --- a/staging/src/k8s.io/sample-apiserver/BUILD +++ b/staging/src/k8s.io/sample-apiserver/BUILD @@ -45,6 +45,7 @@ filegroup( "//staging/src/k8s.io/sample-apiserver/pkg/generated/informers/externalversions:all-srcs", "//staging/src/k8s.io/sample-apiserver/pkg/generated/listers/wardle/v1alpha1:all-srcs", "//staging/src/k8s.io/sample-apiserver/pkg/generated/listers/wardle/v1beta1:all-srcs", + "//staging/src/k8s.io/sample-apiserver/pkg/generated/openapi:all-srcs", "//staging/src/k8s.io/sample-apiserver/pkg/registry:all-srcs", ], tags = ["automanaged"], diff --git a/staging/src/k8s.io/sample-apiserver/go.mod b/staging/src/k8s.io/sample-apiserver/go.mod index b0fb9fee4fe..cca9d319ea5 100644 --- a/staging/src/k8s.io/sample-apiserver/go.mod +++ b/staging/src/k8s.io/sample-apiserver/go.mod @@ -5,6 +5,7 @@ module k8s.io/sample-apiserver go 1.12 require ( + github.com/go-openapi/spec v0.19.2 github.com/google/gofuzz v1.0.0 github.com/spf13/cobra v0.0.4 k8s.io/apimachinery v0.0.0 @@ -13,6 +14,7 @@ require ( k8s.io/code-generator v0.0.0 k8s.io/component-base v0.0.0 k8s.io/klog v0.3.1 + k8s.io/kube-openapi v0.0.0-20190228160746-b3a7cee44a30 ) replace ( diff --git a/staging/src/k8s.io/sample-apiserver/hack/update-codegen.sh b/staging/src/k8s.io/sample-apiserver/hack/update-codegen.sh index 378ccc0ae4b..28d6ac1a715 100755 --- a/staging/src/k8s.io/sample-apiserver/hack/update-codegen.sh +++ b/staging/src/k8s.io/sample-apiserver/hack/update-codegen.sh @@ -31,7 +31,7 @@ bash "${CODEGEN_PKG}/generate-groups.sh" all \ --output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \ --go-header-file "${SCRIPT_ROOT}"/hack/boilerplate.go.txt -bash "${CODEGEN_PKG}/generate-internal-groups.sh" "deepcopy,defaulter,conversion" \ +bash "${CODEGEN_PKG}/generate-internal-groups.sh" "deepcopy,defaulter,conversion,openapi" \ k8s.io/sample-apiserver/pkg/generated k8s.io/sample-apiserver/pkg/apis k8s.io/sample-apiserver/pkg/apis \ "wardle:v1alpha1,v1beta1" \ --output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \ diff --git a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/doc.go b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/doc.go index 69e9a569421..b73a79495f8 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/doc.go +++ b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/doc.go @@ -14,6 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ +// +k8s:openapi-gen=true // +k8s:deepcopy-gen=package // +k8s:conversion-gen=k8s.io/sample-apiserver/pkg/apis/wardle // +k8s:defaulter-gen=TypeMeta diff --git a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1beta1/doc.go b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1beta1/doc.go index a1a757cd979..ae0e25beeed 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1beta1/doc.go +++ b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1beta1/doc.go @@ -14,6 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ +// +k8s:openapi-gen=true // +k8s:deepcopy-gen=package // +k8s:conversion-gen=k8s.io/sample-apiserver/pkg/apis/wardle // +k8s:defaulter-gen=TypeMeta diff --git a/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/BUILD index fce6b66fefb..3390ce19129 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/BUILD @@ -15,6 +15,7 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//staging/src/k8s.io/apiserver/pkg/admission:go_default_library", + "//staging/src/k8s.io/apiserver/pkg/endpoints/openapi:go_default_library", "//staging/src/k8s.io/apiserver/pkg/features:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server/options:go_default_library", @@ -25,6 +26,7 @@ go_library( "//staging/src/k8s.io/sample-apiserver/pkg/apiserver:go_default_library", "//staging/src/k8s.io/sample-apiserver/pkg/generated/clientset/versioned:go_default_library", "//staging/src/k8s.io/sample-apiserver/pkg/generated/informers/externalversions:go_default_library", + "//staging/src/k8s.io/sample-apiserver/pkg/generated/openapi:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library", ], ) diff --git a/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/start.go b/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/start.go index fd3d365898b..da0b774647f 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/start.go +++ b/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/start.go @@ -27,6 +27,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/endpoints/openapi" "k8s.io/apiserver/pkg/features" genericapiserver "k8s.io/apiserver/pkg/server" genericoptions "k8s.io/apiserver/pkg/server/options" @@ -37,6 +38,7 @@ import ( "k8s.io/sample-apiserver/pkg/apiserver" clientset "k8s.io/sample-apiserver/pkg/generated/clientset/versioned" informers "k8s.io/sample-apiserver/pkg/generated/informers/externalversions" + sampleopenapi "k8s.io/sample-apiserver/pkg/generated/openapi" ) const defaultEtcdPathPrefix = "/registry/wardle.kubernetes.io" @@ -132,6 +134,11 @@ func (o *WardleServerOptions) Config() (*apiserver.Config, error) { } serverConfig := genericapiserver.NewRecommendedConfig(apiserver.Codecs) + + serverConfig.OpenAPIConfig = genericapiserver.DefaultOpenAPIConfig(sampleopenapi.GetOpenAPIDefinitions, openapi.NewDefinitionNamer(apiserver.Scheme)) + serverConfig.OpenAPIConfig.Info.Title = "Wardle" + serverConfig.OpenAPIConfig.Info.Version = "0.1" + if err := o.RecommendedOptions.ApplyTo(serverConfig); err != nil { return nil, err } diff --git a/staging/src/k8s.io/sample-apiserver/pkg/generated/openapi/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/generated/openapi/BUILD new file mode 100644 index 00000000000..7e4e36f6e31 --- /dev/null +++ b/staging/src/k8s.io/sample-apiserver/pkg/generated/openapi/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["zz_generated.openapi.go"], + importmap = "k8s.io/kubernetes/vendor/k8s.io/sample-apiserver/pkg/generated/openapi", + importpath = "k8s.io/sample-apiserver/pkg/generated/openapi", + visibility = ["//visibility:public"], + deps = [ + "//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( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/modules.txt b/vendor/modules.txt index 57c300b07ec..144459cde6a 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1714,6 +1714,7 @@ k8s.io/sample-apiserver/pkg/generated/informers/externalversions/wardle/v1alpha1 k8s.io/sample-apiserver/pkg/generated/informers/externalversions/wardle/v1beta1 k8s.io/sample-apiserver/pkg/generated/listers/wardle/v1alpha1 k8s.io/sample-apiserver/pkg/generated/listers/wardle/v1beta1 +k8s.io/sample-apiserver/pkg/generated/openapi k8s.io/sample-apiserver/pkg/registry k8s.io/sample-apiserver/pkg/registry/wardle/fischer k8s.io/sample-apiserver/pkg/registry/wardle/flunder