mirror of https://github.com/k3s-io/k3s
Promote apiregistration from v1alpha1 to v1beta1
parent
e11963194e
commit
e2f20a3539
|
@ -58,7 +58,7 @@ func createAggregatorConfig(kubeAPIServerConfig genericapiserver.Config, command
|
|||
|
||||
// copy the etcd options so we don't mutate originals.
|
||||
etcdOptions := *commandOptions.Etcd
|
||||
etcdOptions.StorageConfig.Codec = aggregatorapiserver.Codecs.LegacyCodec(schema.GroupVersion{Group: "apiregistration.k8s.io", Version: "v1alpha1"})
|
||||
etcdOptions.StorageConfig.Codec = aggregatorapiserver.Codecs.LegacyCodec(schema.GroupVersion{Group: "apiregistration.k8s.io", Version: "v1beta1"})
|
||||
etcdOptions.StorageConfig.Copier = aggregatorapiserver.Scheme
|
||||
genericConfig.RESTOptionsGetter = &genericoptions.SimpleRestOptionsFactory{Options: etcdOptions}
|
||||
|
||||
|
|
|
@ -68,7 +68,7 @@ func New() *Generator {
|
|||
`+k8s.io/apimachinery/pkg/runtime`,
|
||||
`k8s.io/apimachinery/pkg/apis/meta/v1`,
|
||||
`k8s.io/apiserver/pkg/apis/example/v1`,
|
||||
`k8s.io/kube-aggregator/pkg/apis/apiregistration/v1alpha1`,
|
||||
`k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1`,
|
||||
`k8s.io/kubernetes/pkg/api/v1`,
|
||||
`k8s.io/kubernetes/pkg/apis/policy/v1beta1`,
|
||||
`k8s.io/kubernetes/pkg/apis/extensions/v1beta1`,
|
||||
|
|
|
@ -393,12 +393,12 @@ staging/src/k8s.io/kube-aggregator
|
|||
staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/install
|
||||
staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions
|
||||
staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration
|
||||
staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/v1alpha1
|
||||
staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/v1beta1
|
||||
staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion
|
||||
staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration
|
||||
staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/internalversion
|
||||
staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/internalversion
|
||||
staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1alpha1
|
||||
staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1beta1
|
||||
staging/src/k8s.io/kube-aggregator/pkg/controllers
|
||||
staging/src/k8s.io/kube-apiextensions-server
|
||||
staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/install
|
||||
|
|
|
@ -216,7 +216,7 @@ var ignoredResources = map[schema.GroupVersionResource]struct{}{
|
|||
{Group: "authorization.k8s.io", Version: "v1beta1", Resource: "subjectaccessreviews"}: {},
|
||||
{Group: "authorization.k8s.io", Version: "v1beta1", Resource: "selfsubjectaccessreviews"}: {},
|
||||
{Group: "authorization.k8s.io", Version: "v1beta1", Resource: "localsubjectaccessreviews"}: {},
|
||||
{Group: "apiregistration.k8s.io", Version: "v1alpha1", Resource: "apiservices"}: {},
|
||||
{Group: "apiregistration.k8s.io", Version: "v1beta1", Resource: "apiservices"}: {},
|
||||
}
|
||||
|
||||
func (gb *GraphBuilder) enqueueChanges(e *event) {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
apiVersion: apiregistration.k8s.io/v1alpha1
|
||||
apiVersion: apiregistration.k8s.io/v1beta1
|
||||
kind: APIService
|
||||
metadata:
|
||||
name: RESOURCE_NAME
|
||||
|
|
|
@ -47,20 +47,20 @@ PREFIX=k8s.io/kube-aggregator/pkg/apis
|
|||
INPUT_BASE="--input-base ${PREFIX}"
|
||||
INPUT_APIS=(
|
||||
apiregistration/
|
||||
apiregistration/v1alpha1
|
||||
apiregistration/v1beta1
|
||||
)
|
||||
INPUT="--input ${INPUT_APIS[@]}"
|
||||
CLIENTSET_PATH="--clientset-path k8s.io/kube-aggregator/pkg/client/clientset_generated"
|
||||
|
||||
${CLIENTGEN} ${INPUT_BASE} ${INPUT} ${CLIENTSET_PATH} --output-base ${KUBE_ROOT}/vendor
|
||||
${CLIENTGEN} --clientset-name="clientset" ${INPUT_BASE} --input apiregistration/v1alpha1 ${CLIENTSET_PATH} --output-base ${KUBE_ROOT}/vendor
|
||||
${CLIENTGEN} --clientset-name="clientset" ${INPUT_BASE} --input apiregistration/v1beta1 ${CLIENTSET_PATH} --output-base ${KUBE_ROOT}/vendor
|
||||
|
||||
|
||||
echo "Building lister-gen"
|
||||
listergen="${PWD}/lister-gen"
|
||||
go build -o "${listergen}" ./cmd/libs/go2idl/lister-gen
|
||||
|
||||
LISTER_INPUT="--input-dirs k8s.io/kube-aggregator/pkg/apis/apiregistration --input-dirs k8s.io/kube-aggregator/pkg/apis/apiregistration/v1alpha1"
|
||||
LISTER_INPUT="--input-dirs k8s.io/kube-aggregator/pkg/apis/apiregistration --input-dirs k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1"
|
||||
LISTER_PATH="--output-package k8s.io/kube-aggregator/pkg/client/listers"
|
||||
${listergen} ${LISTER_INPUT} ${LISTER_PATH} --output-base ${KUBE_ROOT}/vendor
|
||||
|
||||
|
@ -71,7 +71,7 @@ go build -o "${informergen}" ./cmd/libs/go2idl/informer-gen
|
|||
|
||||
${informergen} \
|
||||
--output-base ${KUBE_ROOT}/vendor \
|
||||
--input-dirs k8s.io/kube-aggregator/pkg/apis/apiregistration --input-dirs k8s.io/kube-aggregator/pkg/apis/apiregistration/v1alpha1 \
|
||||
--input-dirs k8s.io/kube-aggregator/pkg/apis/apiregistration --input-dirs k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1 \
|
||||
--versioned-clientset-package k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset \
|
||||
--internal-clientset-package k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset \
|
||||
--listers-package k8s.io/kube-aggregator/pkg/client/listers \
|
||||
|
|
|
@ -30,7 +30,7 @@ import (
|
|||
_ "k8s.io/kube-aggregator/pkg/apis/apiregistration/validation"
|
||||
_ "k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset"
|
||||
_ "k8s.io/kube-aggregator/pkg/client/listers/apiregistration/internalversion"
|
||||
_ "k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1alpha1"
|
||||
_ "k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1beta1"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
|
|
@ -22,7 +22,7 @@ import (
|
|||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
"k8s.io/kube-aggregator/pkg/apis/apiregistration"
|
||||
"k8s.io/kube-aggregator/pkg/apis/apiregistration/v1alpha1"
|
||||
"k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1"
|
||||
)
|
||||
|
||||
// Install registers the API group and adds types to a scheme
|
||||
|
@ -31,12 +31,12 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r
|
|||
&announced.GroupMetaFactoryArgs{
|
||||
GroupName: apiregistration.GroupName,
|
||||
RootScopedKinds: sets.NewString("APIService"),
|
||||
VersionPreferenceOrder: []string{v1alpha1.SchemeGroupVersion.Version},
|
||||
VersionPreferenceOrder: []string{v1beta1.SchemeGroupVersion.Version},
|
||||
ImportPrefix: "k8s.io/kube-aggregator/pkg/apis/apiregistration",
|
||||
AddInternalObjectsToScheme: apiregistration.AddToScheme,
|
||||
},
|
||||
announced.VersionToSchemeFunc{
|
||||
v1alpha1.SchemeGroupVersion.Version: v1alpha1.AddToScheme,
|
||||
v1beta1.SchemeGroupVersion.Version: v1beta1.AddToScheme,
|
||||
},
|
||||
).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil {
|
||||
panic(err)
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
/*
|
||||
Copyright 2016 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.
|
||||
*/
|
||||
|
||||
// +k8s:deepcopy-gen=package,register
|
||||
// +k8s:conversion-gen=k8s.io/kubernetes/vendor/k8s.io/kube-aggregator/pkg/apis/apiregistration
|
||||
|
||||
// Package v1alpha1 is the v1alpha1 version of the API.
|
||||
// +groupName=apiregistration.k8s.io
|
||||
package v1alpha1 // import "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1alpha1"
|
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
Copyright 2016 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.
|
||||
*/
|
||||
|
||||
// +k8s:deepcopy-gen=package,register
|
||||
// +k8s:conversion-gen=k8s.io/kubernetes/vendor/k8s.io/kube-aggregator/pkg/apis/apiregistration
|
||||
|
||||
// Package v1beta1 contains the API Registration API, which is responsible for
|
||||
// registering an API `Group`/`Version` with another kubernetes like API server.
|
||||
// The `APIService` holds information about the other API server in
|
||||
// `APIServiceSpec` type as well as general `TypeMeta` and `ObjectMeta`. The
|
||||
// `APIServiceSpec` type have the main configuration needed to do the
|
||||
// aggregation. Any request coming for specified `Group`/`Version` will be
|
||||
// directed to the service defined by `ServiceReference` (on port 443) after
|
||||
// validating the target using provided `CABundle` or skipping validation
|
||||
// if development flag `InsecureSkipTLSVerify` is set. `Priority` is controlling
|
||||
// the order of this API group in the overall discovery document.
|
||||
// The return status is a set of conditions for this aggregation. Currently
|
||||
// there is only one condition named "Available", if true, it means the
|
||||
// api/server requests will be redirected to specified API server.
|
||||
//
|
||||
// +groupName=apiregistration.k8s.io
|
||||
package v1beta1 // import "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1"
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package v1alpha1
|
||||
package v1beta1
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
|
@ -25,7 +25,7 @@ import (
|
|||
const GroupName = "apiregistration.k8s.io"
|
||||
|
||||
// SchemeGroupVersion is group version used to register these objects
|
||||
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"}
|
||||
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1beta1"}
|
||||
|
||||
// Resource takes an unqualified resource and returns back a Group qualified GroupResource
|
||||
func Resource(resource string) schema.GroupResource {
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package v1alpha1
|
||||
package v1beta1
|
||||
|
||||
import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
|
|
@ -36,7 +36,7 @@ import (
|
|||
|
||||
"k8s.io/kube-aggregator/pkg/apis/apiregistration"
|
||||
"k8s.io/kube-aggregator/pkg/apis/apiregistration/install"
|
||||
"k8s.io/kube-aggregator/pkg/apis/apiregistration/v1alpha1"
|
||||
"k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1"
|
||||
"k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset"
|
||||
informers "k8s.io/kube-aggregator/pkg/client/informers/internalversion"
|
||||
listers "k8s.io/kube-aggregator/pkg/client/listers/apiregistration/internalversion"
|
||||
|
@ -158,12 +158,12 @@ func (c completedConfig) NewWithDelegate(delegationTarget genericapiserver.Deleg
|
|||
}
|
||||
|
||||
apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(apiregistration.GroupName, registry, Scheme, metav1.ParameterCodec, Codecs)
|
||||
apiGroupInfo.GroupMeta.GroupVersion = v1alpha1.SchemeGroupVersion
|
||||
v1alpha1storage := map[string]rest.Storage{}
|
||||
apiGroupInfo.GroupMeta.GroupVersion = v1beta1.SchemeGroupVersion
|
||||
v1beta1storage := map[string]rest.Storage{}
|
||||
apiServiceREST := apiservicestorage.NewREST(Scheme, c.GenericConfig.RESTOptionsGetter)
|
||||
v1alpha1storage["apiservices"] = apiServiceREST
|
||||
v1alpha1storage["apiservices/status"] = apiservicestorage.NewStatusREST(Scheme, apiServiceREST)
|
||||
apiGroupInfo.VersionedResourcesStorageMap["v1alpha1"] = v1alpha1storage
|
||||
v1beta1storage["apiservices"] = apiServiceREST
|
||||
v1beta1storage["apiservices/status"] = apiservicestorage.NewStatusREST(Scheme, apiServiceREST)
|
||||
apiGroupInfo.VersionedResourcesStorageMap["v1beta1"] = v1beta1storage
|
||||
|
||||
if err := s.GenericAPIServer.InstallAPIGroup(&apiGroupInfo); err != nil {
|
||||
return nil, err
|
||||
|
|
|
@ -27,7 +27,7 @@ import (
|
|||
"k8s.io/apiserver/pkg/endpoints/handlers/responsewriters"
|
||||
|
||||
apiregistrationapi "k8s.io/kube-aggregator/pkg/apis/apiregistration"
|
||||
apiregistrationv1alpha1api "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1alpha1"
|
||||
apiregistrationv1beta1api "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1"
|
||||
listers "k8s.io/kube-aggregator/pkg/client/listers/apiregistration/internalversion"
|
||||
)
|
||||
|
||||
|
@ -42,13 +42,13 @@ var discoveryGroup = metav1.APIGroup{
|
|||
Name: apiregistrationapi.GroupName,
|
||||
Versions: []metav1.GroupVersionForDiscovery{
|
||||
{
|
||||
GroupVersion: apiregistrationv1alpha1api.SchemeGroupVersion.String(),
|
||||
Version: apiregistrationv1alpha1api.SchemeGroupVersion.Version,
|
||||
GroupVersion: apiregistrationv1beta1api.SchemeGroupVersion.String(),
|
||||
Version: apiregistrationv1beta1api.SchemeGroupVersion.Version,
|
||||
},
|
||||
},
|
||||
PreferredVersion: metav1.GroupVersionForDiscovery{
|
||||
GroupVersion: apiregistrationv1alpha1api.SchemeGroupVersion.String(),
|
||||
Version: apiregistrationv1alpha1api.SchemeGroupVersion.Version,
|
||||
GroupVersion: apiregistrationv1beta1api.SchemeGroupVersion.String(),
|
||||
Version: apiregistrationv1beta1api.SchemeGroupVersion.Version,
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ import (
|
|||
kubeclientset "k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/rest"
|
||||
"k8s.io/client-go/tools/clientcmd"
|
||||
"k8s.io/kube-aggregator/pkg/apis/apiregistration/v1alpha1"
|
||||
"k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1"
|
||||
"k8s.io/kube-aggregator/pkg/apiserver"
|
||||
)
|
||||
|
||||
|
@ -91,7 +91,7 @@ func (o *AggregatorOptions) AddFlags(fs *pflag.FlagSet) {
|
|||
// NewDefaultOptions builds a "normal" set of options. You wouldn't normally expose this, but hyperkube isn't cobra compatible
|
||||
func NewDefaultOptions(out, err io.Writer) *AggregatorOptions {
|
||||
o := &AggregatorOptions{
|
||||
RecommendedOptions: genericoptions.NewRecommendedOptions(defaultEtcdPathPrefix, apiserver.Scheme, apiserver.Codecs.LegacyCodec(v1alpha1.SchemeGroupVersion)),
|
||||
RecommendedOptions: genericoptions.NewRecommendedOptions(defaultEtcdPathPrefix, apiserver.Scheme, apiserver.Codecs.LegacyCodec(v1beta1.SchemeGroupVersion)),
|
||||
|
||||
StdOut: out,
|
||||
StdErr: err,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
apiVersion: apiregistration.k8s.io/v1alpha1
|
||||
apiVersion: apiregistration.k8s.io/v1beta1
|
||||
kind: APIService
|
||||
metadata:
|
||||
name: v1alpha1.wardle.k8s.io
|
||||
|
|
|
@ -38,7 +38,7 @@ import (
|
|||
"k8s.io/client-go/tools/clientcmd"
|
||||
clientcmdapi "k8s.io/client-go/tools/clientcmd/api"
|
||||
"k8s.io/client-go/util/cert"
|
||||
apiregistrationv1alpha1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1alpha1"
|
||||
apiregistrationv1beta1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1"
|
||||
aggregatorclient "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset"
|
||||
kubeaggregatorserver "k8s.io/kube-aggregator/pkg/cmd/server"
|
||||
"k8s.io/kubernetes/cmd/kube-apiserver/app"
|
||||
|
@ -303,10 +303,10 @@ func TestAggregatedAPIServer(t *testing.T) {
|
|||
t.Fatal(err)
|
||||
}
|
||||
aggregatorClient := aggregatorclient.NewForConfigOrDie(aggregatorClientConfig)
|
||||
_, err = aggregatorClient.ApiregistrationV1alpha1().APIServices().Create(&apiregistrationv1alpha1.APIService{
|
||||
_, err = aggregatorClient.ApiregistrationV1beta1().APIServices().Create(&apiregistrationv1beta1.APIService{
|
||||
ObjectMeta: metav1.ObjectMeta{Name: "v1alpha1.wardle.k8s.io"},
|
||||
Spec: apiregistrationv1alpha1.APIServiceSpec{
|
||||
Service: &apiregistrationv1alpha1.ServiceReference{
|
||||
Spec: apiregistrationv1beta1.APIServiceSpec{
|
||||
Service: &apiregistrationv1beta1.ServiceReference{
|
||||
Namespace: "kube-wardle",
|
||||
Name: "api",
|
||||
},
|
||||
|
@ -327,9 +327,9 @@ func TestAggregatedAPIServer(t *testing.T) {
|
|||
t.Fatal(err)
|
||||
}
|
||||
|
||||
_, err = aggregatorClient.ApiregistrationV1alpha1().APIServices().Create(&apiregistrationv1alpha1.APIService{
|
||||
_, err = aggregatorClient.ApiregistrationV1beta1().APIServices().Create(&apiregistrationv1beta1.APIService{
|
||||
ObjectMeta: metav1.ObjectMeta{Name: "v1."},
|
||||
Spec: apiregistrationv1alpha1.APIServiceSpec{
|
||||
Spec: apiregistrationv1beta1.APIServiceSpec{
|
||||
// register this as a loca service so it doesn't try to lookup the default kubernetes service
|
||||
// which will have an unroutable IP address since its fake.
|
||||
Group: "",
|
||||
|
|
Loading…
Reference in New Issue