mirror of https://github.com/k3s-io/k3s
Merge pull request #46726 from deads2k/crd-09-proto
Automatic merge from submit-queue add protobuf for CRD Adds protobuf encoding to CRD and simplifies loopback initialization. xref: https://github.com/kubernetes/features/issues/95pull/6/head
commit
aab12f217e
|
@ -93,6 +93,7 @@ go_library(
|
||||||
"//vendor/k8s.io/kube-aggregator/pkg/apiserver:go_default_library",
|
"//vendor/k8s.io/kube-aggregator/pkg/apiserver:go_default_library",
|
||||||
"//vendor/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/typed/apiregistration/internalversion:go_default_library",
|
"//vendor/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/typed/apiregistration/internalversion:go_default_library",
|
||||||
"//vendor/k8s.io/kube-aggregator/pkg/controllers/autoregister:go_default_library",
|
"//vendor/k8s.io/kube-aggregator/pkg/controllers/autoregister:go_default_library",
|
||||||
|
"//vendor/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1beta1:go_default_library",
|
||||||
"//vendor/k8s.io/kube-apiextensions-server/pkg/apiserver:go_default_library",
|
"//vendor/k8s.io/kube-apiextensions-server/pkg/apiserver:go_default_library",
|
||||||
"//vendor/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion:go_default_library",
|
"//vendor/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion:go_default_library",
|
||||||
"//vendor/k8s.io/kube-apiextensions-server/pkg/cmd/server:go_default_library",
|
"//vendor/k8s.io/kube-apiextensions-server/pkg/cmd/server:go_default_library",
|
||||||
|
|
|
@ -20,9 +20,9 @@ limitations under the License.
|
||||||
package app
|
package app
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
|
||||||
genericapiserver "k8s.io/apiserver/pkg/server"
|
genericapiserver "k8s.io/apiserver/pkg/server"
|
||||||
genericoptions "k8s.io/apiserver/pkg/server/options"
|
genericoptions "k8s.io/apiserver/pkg/server/options"
|
||||||
|
"k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1beta1"
|
||||||
apiextensionsapiserver "k8s.io/kube-apiextensions-server/pkg/apiserver"
|
apiextensionsapiserver "k8s.io/kube-apiextensions-server/pkg/apiserver"
|
||||||
apiextensionscmd "k8s.io/kube-apiextensions-server/pkg/cmd/server"
|
apiextensionscmd "k8s.io/kube-apiextensions-server/pkg/cmd/server"
|
||||||
"k8s.io/kubernetes/cmd/kube-apiserver/app/options"
|
"k8s.io/kubernetes/cmd/kube-apiserver/app/options"
|
||||||
|
@ -33,21 +33,9 @@ func createAPIExtensionsConfig(kubeAPIServerConfig genericapiserver.Config, comm
|
||||||
// most of the config actually remains the same. We only need to mess with a couple items related to the particulars of the apiextensions
|
// most of the config actually remains the same. We only need to mess with a couple items related to the particulars of the apiextensions
|
||||||
genericConfig := kubeAPIServerConfig
|
genericConfig := kubeAPIServerConfig
|
||||||
|
|
||||||
// the apiextensions doesn't wire these up. It just delegates them to the kubeapiserver
|
|
||||||
genericConfig.EnableSwaggerUI = false
|
|
||||||
|
|
||||||
// TODO these need to be sorted out. There's an issue open
|
|
||||||
genericConfig.OpenAPIConfig = nil
|
|
||||||
genericConfig.SwaggerConfig = nil
|
|
||||||
|
|
||||||
// copy the loopbackclientconfig. We're going to change the contenttype back to json until we get protobuf serializations for it
|
|
||||||
t := *kubeAPIServerConfig.LoopbackClientConfig
|
|
||||||
genericConfig.LoopbackClientConfig = &t
|
|
||||||
genericConfig.LoopbackClientConfig.ContentConfig.ContentType = ""
|
|
||||||
|
|
||||||
// copy the etcd options so we don't mutate originals.
|
// copy the etcd options so we don't mutate originals.
|
||||||
etcdOptions := *commandOptions.Etcd
|
etcdOptions := *commandOptions.Etcd
|
||||||
etcdOptions.StorageConfig.Codec = apiextensionsapiserver.Codecs.LegacyCodec(schema.GroupVersion{Group: "apiextensions.k8s.io", Version: "v1beta1"})
|
etcdOptions.StorageConfig.Codec = apiextensionsapiserver.Codecs.LegacyCodec(v1beta1.SchemeGroupVersion)
|
||||||
etcdOptions.StorageConfig.Copier = apiextensionsapiserver.Scheme
|
etcdOptions.StorageConfig.Copier = apiextensionsapiserver.Scheme
|
||||||
genericConfig.RESTOptionsGetter = &genericoptions.SimpleRestOptionsFactory{Options: etcdOptions}
|
genericConfig.RESTOptionsGetter = &genericoptions.SimpleRestOptionsFactory{Options: etcdOptions}
|
||||||
|
|
||||||
|
|
|
@ -70,6 +70,7 @@ func New() *Generator {
|
||||||
`k8s.io/apimachinery/pkg/apis/meta/v1alpha1`,
|
`k8s.io/apimachinery/pkg/apis/meta/v1alpha1`,
|
||||||
`k8s.io/apiserver/pkg/apis/example/v1`,
|
`k8s.io/apiserver/pkg/apis/example/v1`,
|
||||||
`k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1`,
|
`k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1`,
|
||||||
|
`k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1beta1`,
|
||||||
`k8s.io/kubernetes/pkg/api/v1`,
|
`k8s.io/kubernetes/pkg/api/v1`,
|
||||||
`k8s.io/kubernetes/pkg/apis/policy/v1beta1`,
|
`k8s.io/kubernetes/pkg/apis/policy/v1beta1`,
|
||||||
`k8s.io/kubernetes/pkg/apis/extensions/v1beta1`,
|
`k8s.io/kubernetes/pkg/apis/extensions/v1beta1`,
|
||||||
|
|
|
@ -12,6 +12,7 @@ go_library(
|
||||||
srcs = [
|
srcs = [
|
||||||
"defaults.go",
|
"defaults.go",
|
||||||
"doc.go",
|
"doc.go",
|
||||||
|
"generated.pb.go",
|
||||||
"register.go",
|
"register.go",
|
||||||
"types.go",
|
"types.go",
|
||||||
"zz_generated.conversion.go",
|
"zz_generated.conversion.go",
|
||||||
|
@ -19,6 +20,7 @@ go_library(
|
||||||
],
|
],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
|
"//vendor/github.com/gogo/protobuf/proto:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,117 @@
|
||||||
|
/*
|
||||||
|
Copyright 2017 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
// This file was autogenerated by go-to-protobuf. Do not edit it manually!
|
||||||
|
|
||||||
|
syntax = 'proto2';
|
||||||
|
|
||||||
|
package k8s.io.kube_apiextensions_server.pkg.apis.apiextensions.v1beta1;
|
||||||
|
|
||||||
|
import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto";
|
||||||
|
import "k8s.io/apimachinery/pkg/runtime/generated.proto";
|
||||||
|
import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto";
|
||||||
|
import "k8s.io/apimachinery/pkg/util/intstr/generated.proto";
|
||||||
|
|
||||||
|
// Package-wide variables from generator "generated".
|
||||||
|
option go_package = "v1beta1";
|
||||||
|
|
||||||
|
// CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format
|
||||||
|
// <.spec.name>.<.spec.group>.
|
||||||
|
message CustomResourceDefinition {
|
||||||
|
optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
|
||||||
|
|
||||||
|
// Spec describes how the user wants the resources to appear
|
||||||
|
optional CustomResourceDefinitionSpec spec = 2;
|
||||||
|
|
||||||
|
// Status indicates the actual state of the CustomResourceDefinition
|
||||||
|
optional CustomResourceDefinitionStatus status = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// CustomResourceDefinitionCondition contains details for the current condition of this pod.
|
||||||
|
message CustomResourceDefinitionCondition {
|
||||||
|
// Type is the type of the condition.
|
||||||
|
optional string type = 1;
|
||||||
|
|
||||||
|
// Status is the status of the condition.
|
||||||
|
// Can be True, False, Unknown.
|
||||||
|
optional string status = 2;
|
||||||
|
|
||||||
|
// Last time the condition transitioned from one status to another.
|
||||||
|
// +optional
|
||||||
|
optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;
|
||||||
|
|
||||||
|
// Unique, one-word, CamelCase reason for the condition's last transition.
|
||||||
|
// +optional
|
||||||
|
optional string reason = 4;
|
||||||
|
|
||||||
|
// Human-readable message indicating details about last transition.
|
||||||
|
// +optional
|
||||||
|
optional string message = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
// CustomResourceDefinitionList is a list of CustomResourceDefinition objects.
|
||||||
|
message CustomResourceDefinitionList {
|
||||||
|
optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;
|
||||||
|
|
||||||
|
// Items individual CustomResourceDefinitions
|
||||||
|
repeated CustomResourceDefinition items = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition
|
||||||
|
message CustomResourceDefinitionNames {
|
||||||
|
// Plural is the plural name of the resource to serve. It must match the name of the CustomResourceDefinition-registration
|
||||||
|
// too: plural.group and it must be all lowercase.
|
||||||
|
optional string plural = 1;
|
||||||
|
|
||||||
|
// Singular is the singular name of the resource. It must be all lowercase Defaults to lowercased <kind>
|
||||||
|
optional string singular = 2;
|
||||||
|
|
||||||
|
// ShortNames are short names for the resource. It must be all lowercase.
|
||||||
|
repeated string shortNames = 3;
|
||||||
|
|
||||||
|
// Kind is the serialized kind of the resource. It is normally CamelCase and singular.
|
||||||
|
optional string kind = 4;
|
||||||
|
|
||||||
|
// ListKind is the serialized kind of the list for this resource. Defaults to <kind>List.
|
||||||
|
optional string listKind = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
// CustomResourceDefinitionSpec describes how a user wants their resource to appear
|
||||||
|
message CustomResourceDefinitionSpec {
|
||||||
|
// Group is the group this resource belongs in
|
||||||
|
optional string group = 1;
|
||||||
|
|
||||||
|
// Version is the version this resource belongs in
|
||||||
|
optional string version = 2;
|
||||||
|
|
||||||
|
// Names are the names used to describe this custom resource
|
||||||
|
optional CustomResourceDefinitionNames names = 3;
|
||||||
|
|
||||||
|
// Scope indicates whether this resource is cluster or namespace scoped. Default is namespaced
|
||||||
|
optional string scope = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
// CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition
|
||||||
|
message CustomResourceDefinitionStatus {
|
||||||
|
// Conditions indicate state for particular aspects of a CustomResourceDefinition
|
||||||
|
repeated CustomResourceDefinitionCondition conditions = 1;
|
||||||
|
|
||||||
|
// AcceptedNames are the names that are actually being used to serve discovery
|
||||||
|
// They may be different than the names in spec.
|
||||||
|
optional CustomResourceDefinitionNames acceptedNames = 2;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue