mirror of https://github.com/kubernetes/kops.git
Fixes for updated apiserver/apimachinery
This commit is contained in:
parent
3e75901e99
commit
4fdded6e4b
|
@ -1,5 +0,0 @@
|
||||||
FROM golang:1.8-alpine
|
|
||||||
ENV GOPATH /go
|
|
||||||
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH
|
|
||||||
ADD .build/dist/linux/amd64/kops-server /go/bin/kops-server
|
|
||||||
ENTRYPOINT "kops-server"
|
|
18
Makefile
18
Makefile
|
@ -347,14 +347,18 @@ apimachinery:
|
||||||
#cd pkg/apis/kops/ && ~/k8s/bin/codecgen -d 1234 -o types.generated.go instancegroup.go cluster.go federation.go
|
#cd pkg/apis/kops/ && ~/k8s/bin/codecgen -d 1234 -o types.generated.go instancegroup.go cluster.go federation.go
|
||||||
|
|
||||||
|
|
||||||
uas-docker-compile:
|
# -----------------------------------------------------
|
||||||
|
# kops-server
|
||||||
|
|
||||||
|
kops-server-docker-compile:
|
||||||
GOOS=linux GOARCH=amd64 go build -a ${EXTRA_BUILDFLAGS} -o .build/dist/linux/amd64/kops-server -ldflags "${EXTRA_LDFLAGS} -X k8s.io/kops-server.Version=${VERSION} -X k8s.io/kops-server.GitVersion=${GITSHA}" k8s.io/kops/cmd/kops-server
|
GOOS=linux GOARCH=amd64 go build -a ${EXTRA_BUILDFLAGS} -o .build/dist/linux/amd64/kops-server -ldflags "${EXTRA_LDFLAGS} -X k8s.io/kops-server.Version=${VERSION} -X k8s.io/kops-server.GitVersion=${GITSHA}" k8s.io/kops/cmd/kops-server
|
||||||
|
|
||||||
|
kops-server-build:
|
||||||
uas-build:
|
|
||||||
# Compile the API binary in linux, and copy to local filesystem
|
# Compile the API binary in linux, and copy to local filesystem
|
||||||
docker pull golang:${GOVERSION}
|
docker pull golang:${GOVERSION}
|
||||||
docker run --name=kops-api-build-${UNIQUE} -e STATIC_BUILD=yes -e VERSION=${VERSION} -v ${GOPATH}/src:/go/src -v ${MAKEDIR}:/go/src/k8s.io/kops golang:${GOVERSION} make -f /go/src/k8s.io/kops/Makefile uas-docker-compile
|
docker run --name=kops-server-build-${UNIQUE} -e STATIC_BUILD=yes -e VERSION=${VERSION} -v ${GOPATH}/src:/go/src -v ${MAKEDIR}:/go/src/k8s.io/kops golang:${GOVERSION} make -f /go/src/k8s.io/kops/Makefile kops-server-docker-compile
|
||||||
docker cp kops-api-build-${UNIQUE}:/go/.build .
|
docker cp kops-server-build-${UNIQUE}:/go/.build .
|
||||||
docker build -t krisnova/kops:latest .
|
docker build -t ${DOCKER_REGISTRY}/kops-server:latest -f images/kops-server/Dockerfile .
|
||||||
docker push krisnova/kops:latest
|
|
||||||
|
kops-server-push: kops-server-build
|
||||||
|
docker push ${DOCKER_REGISTRY}/kops-server:latest
|
||||||
|
|
|
@ -29,7 +29,6 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
flag.Parse()
|
|
||||||
rand.Seed(time.Now().UTC().UnixNano())
|
rand.Seed(time.Now().UTC().UnixNano())
|
||||||
|
|
||||||
logs.InitLogs()
|
logs.InitLogs()
|
||||||
|
@ -41,6 +40,10 @@ func main() {
|
||||||
|
|
||||||
cmd := server.NewCommandStartKopsServer(os.Stdout, os.Stderr)
|
cmd := server.NewCommandStartKopsServer(os.Stdout, os.Stderr)
|
||||||
cmd.Flags().AddGoFlagSet(flag.CommandLine)
|
cmd.Flags().AddGoFlagSet(flag.CommandLine)
|
||||||
|
|
||||||
|
// Avoid glog warnings
|
||||||
|
flag.CommandLine.Parse([]string{})
|
||||||
|
|
||||||
if err := cmd.Execute(); err != nil {
|
if err := cmd.Execute(); err != nil {
|
||||||
cmdutil.CheckErr(err)
|
cmdutil.CheckErr(err)
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,8 +21,14 @@ import (
|
||||||
crypto_rand "crypto/rand"
|
crypto_rand "crypto/rand"
|
||||||
"crypto/rsa"
|
"crypto/rsa"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
"text/template"
|
||||||
|
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
|
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/client-go/kubernetes"
|
"k8s.io/client-go/kubernetes"
|
||||||
|
"k8s.io/client-go/pkg/api/v1"
|
||||||
"k8s.io/kops/federation/model"
|
"k8s.io/kops/federation/model"
|
||||||
"k8s.io/kops/federation/targets/kubernetestarget"
|
"k8s.io/kops/federation/targets/kubernetestarget"
|
||||||
"k8s.io/kops/federation/tasks"
|
"k8s.io/kops/federation/tasks"
|
||||||
|
@ -35,8 +41,6 @@ import (
|
||||||
"k8s.io/kops/upup/pkg/kutil"
|
"k8s.io/kops/upup/pkg/kutil"
|
||||||
"k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset"
|
"k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset"
|
||||||
k8sapiv1 "k8s.io/kubernetes/pkg/api/v1"
|
k8sapiv1 "k8s.io/kubernetes/pkg/api/v1"
|
||||||
"strings"
|
|
||||||
"text/template"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type ApplyFederationOperation struct {
|
type ApplyFederationOperation struct {
|
||||||
|
@ -143,10 +147,6 @@ func (o *ApplyFederationOperation) Run() error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
k8sClient, err := kubernetes.NewForConfig(federationRestConfig)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, member := range o.Federation.Spec.Members {
|
for _, member := range o.Federation.Spec.Members {
|
||||||
glog.V(2).Infof("configuring member cluster %q", member)
|
glog.V(2).Infof("configuring member cluster %q", member)
|
||||||
|
@ -155,7 +155,7 @@ func (o *ApplyFederationOperation) Run() error {
|
||||||
return fmt.Errorf("error reading cluster %q: %v", member, err)
|
return fmt.Errorf("error reading cluster %q: %v", member, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
clusterName := strings.Replace(cluster.ObjectMeta.Name, ".", "-", -1)
|
clusterName := strings.Replace(cluster.Name, ".", "-", -1)
|
||||||
|
|
||||||
a := &FederationCluster{
|
a := &FederationCluster{
|
||||||
FederationNamespace: o.namespace,
|
FederationNamespace: o.namespace,
|
||||||
|
@ -163,7 +163,7 @@ func (o *ApplyFederationOperation) Run() error {
|
||||||
ControllerKubernetesClients: controllerKubernetesClients,
|
ControllerKubernetesClients: controllerKubernetesClients,
|
||||||
FederationClient: federationControllerClient,
|
FederationClient: federationControllerClient,
|
||||||
|
|
||||||
ClusterSecretName: "secret-" + cluster.ObjectMeta.Name,
|
ClusterSecretName: "secret-" + cluster.Name,
|
||||||
ClusterName: clusterName,
|
ClusterName: clusterName,
|
||||||
ApiserverHostname: cluster.Spec.MasterPublicName,
|
ApiserverHostname: cluster.Spec.MasterPublicName,
|
||||||
}
|
}
|
||||||
|
@ -175,7 +175,7 @@ func (o *ApplyFederationOperation) Run() error {
|
||||||
|
|
||||||
// Create default namespace
|
// Create default namespace
|
||||||
glog.V(2).Infof("Ensuring default namespace exists")
|
glog.V(2).Infof("Ensuring default namespace exists")
|
||||||
if _, err := o.ensureFederationNamespace(k8sClient, "default"); err != nil {
|
if _, err := o.ensureFederationNamespace(federationControllerClient, "default"); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -209,7 +209,7 @@ func (o *ApplyFederationOperation) buildApiserverKeypair() *fitasks.Keypair {
|
||||||
keypairName := "secret-" + o.apiserverHostName
|
keypairName := "secret-" + o.apiserverHostName
|
||||||
keypair := &fitasks.Keypair{
|
keypair := &fitasks.Keypair{
|
||||||
Name: fi.String(keypairName),
|
Name: fi.String(keypairName),
|
||||||
Subject: "cn=" + o.Federation.ObjectMeta.Name,
|
Subject: "cn=" + o.Federation.Name,
|
||||||
Type: "server",
|
Type: "server",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
FROM alpine:3.5
|
||||||
|
COPY /.build/dist/linux/amd64/kops-server /kops-server
|
||||||
|
ENTRYPOINT "/kops-server"
|
|
@ -25,6 +25,7 @@ import (
|
||||||
"k8s.io/kops/pkg/apis/kops"
|
"k8s.io/kops/pkg/apis/kops"
|
||||||
"k8s.io/kops/pkg/apis/kops/v1alpha1"
|
"k8s.io/kops/pkg/apis/kops/v1alpha1"
|
||||||
"k8s.io/kops/pkg/apis/kops/v1alpha2"
|
"k8s.io/kops/pkg/apis/kops/v1alpha2"
|
||||||
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
|
|
@ -20,15 +20,34 @@ import (
|
||||||
"k8s.io/apiserver/pkg/registry/generic"
|
"k8s.io/apiserver/pkg/registry/generic"
|
||||||
"k8s.io/apiserver/pkg/registry/rest"
|
"k8s.io/apiserver/pkg/registry/rest"
|
||||||
"k8s.io/apiserver/pkg/server"
|
"k8s.io/apiserver/pkg/server"
|
||||||
"k8s.io/kubernetes/pkg/version"
|
|
||||||
|
|
||||||
"k8s.io/kops/pkg/apis/kops"
|
"k8s.io/kops/pkg/apis/kops"
|
||||||
_ "k8s.io/kops/pkg/apis/kops/install"
|
_ "k8s.io/kops/pkg/apis/kops/install"
|
||||||
"k8s.io/kops/pkg/apis/kops/v1alpha2"
|
"k8s.io/kops/pkg/apis/kops/v1alpha2"
|
||||||
"k8s.io/kops/pkg/apiserver/registry/cluster"
|
registrycluster "k8s.io/kops/pkg/apiserver/registry/cluster"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
//registryinstancegroup "k8s.io/kops/pkg/apiserver/registry/instancegroup"
|
||||||
|
"k8s.io/kubernetes/pkg/version"
|
||||||
|
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
// we need to add the options to empty v1
|
||||||
|
// TODO fix the server code to avoid this
|
||||||
|
metav1.AddToGroupVersion(kops.Scheme, schema.GroupVersion{Version: "v1"})
|
||||||
|
|
||||||
|
// TODO: keep the generic API server from wanting this
|
||||||
|
unversioned := schema.GroupVersion{Group: "", Version: "v1"}
|
||||||
|
kops.Scheme.AddUnversionedTypes(unversioned,
|
||||||
|
&metav1.Status{},
|
||||||
|
&metav1.APIVersions{},
|
||||||
|
&metav1.APIGroupList{},
|
||||||
|
&metav1.APIGroup{},
|
||||||
|
&metav1.APIResourceList{},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
type Config struct {
|
type Config struct {
|
||||||
GenericConfig *server.Config
|
GenericConfig *server.Config
|
||||||
|
|
||||||
|
@ -71,11 +90,12 @@ func (c completedConfig) New() (*APIDiscoveryServer, error) {
|
||||||
GenericAPIServer: genericServer,
|
GenericAPIServer: genericServer,
|
||||||
}
|
}
|
||||||
|
|
||||||
apiGroupInfo := server.NewDefaultAPIGroupInfo(kops.GroupName, api.Registry, api.Scheme, api.ParameterCodec, api.Codecs)
|
apiGroupInfo := server.NewDefaultAPIGroupInfo(kops.GroupName, kops.Registry, kops.Scheme, kops.ParameterCodec, kops.Codecs)
|
||||||
|
|
||||||
apiGroupInfo.GroupMeta.GroupVersion = v1alpha2.SchemeGroupVersion
|
apiGroupInfo.GroupMeta.GroupVersion = v1alpha2.SchemeGroupVersion
|
||||||
v1alpha2storage := map[string]rest.Storage{}
|
v1alpha2storage := map[string]rest.Storage{}
|
||||||
v1alpha2storage["clusters"] = cluster.NewREST(c.RESTOptionsGetter)
|
v1alpha2storage["clusters"] = registrycluster.NewREST(c.RESTOptionsGetter)
|
||||||
|
//v1alpha2storage["instancegroups"] = registryinstancegroup.NewREST(c.RESTOptionsGetter)
|
||||||
apiGroupInfo.VersionedResourcesStorageMap["v1alpha2"] = v1alpha2storage
|
apiGroupInfo.VersionedResourcesStorageMap["v1alpha2"] = v1alpha2storage
|
||||||
|
|
||||||
if err := s.GenericAPIServer.InstallAPIGroup(&apiGroupInfo); err != nil {
|
if err := s.GenericAPIServer.InstallAPIGroup(&apiGroupInfo); err != nil {
|
||||||
|
|
|
@ -19,9 +19,7 @@ package server
|
||||||
import (
|
import (
|
||||||
"io"
|
"io"
|
||||||
|
|
||||||
"github.com/pborman/uuid"
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/apimachinery/pkg/util/wait"
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
"k8s.io/apiserver/pkg/registry/generic"
|
"k8s.io/apiserver/pkg/registry/generic"
|
||||||
|
@ -29,14 +27,12 @@ import (
|
||||||
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/apiserver/pkg/storage/storagebackend"
|
"k8s.io/apiserver/pkg/storage/storagebackend"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
|
||||||
|
|
||||||
"k8s.io/kops/pkg/apiserver"
|
"k8s.io/kops/pkg/apiserver"
|
||||||
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
//"k8s.io/kops/pkg/apis/kops/v1alpha1"
|
//"k8s.io/kops/pkg/apis/kops/v1alpha1"
|
||||||
"k8s.io/kops/pkg/apis/kops/v1alpha2"
|
|
||||||
|
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
|
"k8s.io/kops/pkg/apis/kops"
|
||||||
|
"k8s.io/kops/pkg/apis/kops/v1alpha2"
|
||||||
)
|
)
|
||||||
|
|
||||||
const defaultEtcdPathPrefix = "/registry/kops.kubernetes.io"
|
const defaultEtcdPathPrefix = "/registry/kops.kubernetes.io"
|
||||||
|
@ -55,11 +51,11 @@ type KopsServerOptions struct {
|
||||||
// NewCommandStartKopsServer provides a CLI handler for 'start master' command
|
// NewCommandStartKopsServer provides a CLI handler for 'start master' command
|
||||||
func NewCommandStartKopsServer(out, err io.Writer) *cobra.Command {
|
func NewCommandStartKopsServer(out, err io.Writer) *cobra.Command {
|
||||||
o := &KopsServerOptions{
|
o := &KopsServerOptions{
|
||||||
Etcd: genericoptions.NewEtcdOptions(
|
Etcd: genericoptions.NewEtcdOptions(&storagebackend.Config{
|
||||||
defaultEtcdPathPrefix,
|
Prefix: defaultEtcdPathPrefix,
|
||||||
api.Scheme,
|
Copier: kops.Scheme,
|
||||||
nil,
|
Codec: nil,
|
||||||
),
|
}),
|
||||||
//SecureServing: genericoptions.NewSecureServingOptions(),
|
//SecureServing: genericoptions.NewSecureServingOptions(),
|
||||||
InsecureServing: genericoptions.NewInsecureServingOptions(),
|
InsecureServing: genericoptions.NewInsecureServingOptions(),
|
||||||
Authentication: genericoptions.NewDelegatingAuthenticationOptions(),
|
Authentication: genericoptions.NewDelegatingAuthenticationOptions(),
|
||||||
|
@ -69,7 +65,7 @@ func NewCommandStartKopsServer(out, err io.Writer) *cobra.Command {
|
||||||
StdErr: err,
|
StdErr: err,
|
||||||
}
|
}
|
||||||
o.Etcd.StorageConfig.Type = storagebackend.StorageTypeETCD2
|
o.Etcd.StorageConfig.Type = storagebackend.StorageTypeETCD2
|
||||||
o.Etcd.StorageConfig.Codec = api.Codecs.LegacyCodec(v1alpha2.SchemeGroupVersion)
|
o.Etcd.StorageConfig.Codec = kops.Codecs.LegacyCodec(v1alpha2.SchemeGroupVersion)
|
||||||
//o.SecureServing.ServingOptions.BindPort = 443
|
//o.SecureServing.ServingOptions.BindPort = 443
|
||||||
|
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
|
@ -106,7 +102,7 @@ func (o KopsServerOptions) RunKopsServer() error {
|
||||||
// return fmt.Errorf("error creating self-signed certificates: %v", err)
|
// return fmt.Errorf("error creating self-signed certificates: %v", err)
|
||||||
//}
|
//}
|
||||||
|
|
||||||
genericAPIServerConfig := genericapiserver.NewConfig().WithSerializer(api.Codecs)
|
genericAPIServerConfig := genericapiserver.NewConfig().WithSerializer(kops.Codecs)
|
||||||
|
|
||||||
//if err := o.SecureServing.ApplyTo(genericAPIServerConfig); err != nil {
|
//if err := o.SecureServing.ApplyTo(genericAPIServerConfig); err != nil {
|
||||||
// return err
|
// return err
|
||||||
|
@ -122,11 +118,12 @@ func (o KopsServerOptions) RunKopsServer() error {
|
||||||
// return err
|
// return err
|
||||||
//}
|
//}
|
||||||
|
|
||||||
var err error
|
//var err error
|
||||||
privilegedLoopbackToken := uuid.NewRandom().String()
|
//privilegedLoopbackToken := uuid.NewRandom().String()
|
||||||
if genericAPIServerConfig.LoopbackClientConfig, err = genericAPIServerConfig.SecureServingInfo.NewSelfClientConfig(privilegedLoopbackToken); err != nil {
|
//loopbackCert := []byte(nil)
|
||||||
return err
|
//if genericAPIServerConfig.LoopbackClientConfig, err = genericAPIServerConfig.SecureServingInfo.NewLoopbackClientConfig(privilegedLoopbackToken, loopbackCert); err != nil {
|
||||||
}
|
// return err
|
||||||
|
//}
|
||||||
|
|
||||||
config := apiserver.Config{
|
config := apiserver.Config{
|
||||||
GenericConfig: genericAPIServerConfig,
|
GenericConfig: genericAPIServerConfig,
|
||||||
|
|
|
@ -20,7 +20,6 @@ import (
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apiserver/pkg/registry/generic"
|
"k8s.io/apiserver/pkg/registry/generic"
|
||||||
genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
|
genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
|
|
||||||
"k8s.io/kops/pkg/apis/kops"
|
"k8s.io/kops/pkg/apis/kops"
|
||||||
)
|
)
|
||||||
|
@ -33,7 +32,7 @@ type REST struct {
|
||||||
// NewREST returns a RESTStorage object that will work against kops Clusters.
|
// NewREST returns a RESTStorage object that will work against kops Clusters.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
Copier: api.Scheme,
|
Copier: kops.Scheme,
|
||||||
NewFunc: func() runtime.Object {
|
NewFunc: func() runtime.Object {
|
||||||
return &kops.Cluster{}
|
return &kops.Cluster{}
|
||||||
},
|
},
|
||||||
|
@ -41,7 +40,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||||
return &kops.ClusterList{}
|
return &kops.ClusterList{}
|
||||||
},
|
},
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
return obj.(*kops.Cluster).ObjectMeta.Name, nil
|
return obj.(*kops.Cluster).Name, nil
|
||||||
},
|
},
|
||||||
PredicateFunc: MatchCluster,
|
PredicateFunc: MatchCluster,
|
||||||
QualifiedResource: kops.Resource("clusters"),
|
QualifiedResource: kops.Resource("clusters"),
|
||||||
|
|
|
@ -27,7 +27,6 @@ import (
|
||||||
"k8s.io/apiserver/pkg/registry/generic"
|
"k8s.io/apiserver/pkg/registry/generic"
|
||||||
"k8s.io/apiserver/pkg/storage"
|
"k8s.io/apiserver/pkg/storage"
|
||||||
"k8s.io/apiserver/pkg/storage/names"
|
"k8s.io/apiserver/pkg/storage/names"
|
||||||
kapi "k8s.io/kubernetes/pkg/api"
|
|
||||||
|
|
||||||
"k8s.io/kops/pkg/apis/kops"
|
"k8s.io/kops/pkg/apis/kops"
|
||||||
)
|
)
|
||||||
|
@ -37,7 +36,7 @@ type clusterStrategy struct {
|
||||||
names.NameGenerator
|
names.NameGenerator
|
||||||
}
|
}
|
||||||
|
|
||||||
var Strategy = clusterStrategy{kapi.Scheme, names.SimpleNameGenerator}
|
var Strategy = clusterStrategy{kops.Scheme, names.SimpleNameGenerator}
|
||||||
|
|
||||||
func (clusterStrategy) NamespaceScoped() bool {
|
func (clusterStrategy) NamespaceScoped() bool {
|
||||||
return false
|
return false
|
||||||
|
@ -75,7 +74,7 @@ func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, error) {
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, nil, fmt.Errorf("given object is not a Cluster.")
|
return nil, nil, fmt.Errorf("given object is not a Cluster.")
|
||||||
}
|
}
|
||||||
return labels.Set(cluster.ObjectMeta.Labels), ClusterToSelectableFields(cluster), nil
|
return labels.Set(cluster.Labels), ClusterToSelectableFields(cluster), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// MatchCluster is the filter used by the generic etcd backend to watch events
|
// MatchCluster is the filter used by the generic etcd backend to watch events
|
||||||
|
|
|
@ -20,7 +20,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
restclient "k8s.io/client-go/rest"
|
"k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/tools/clientcmd"
|
"k8s.io/client-go/tools/clientcmd"
|
||||||
clientcmdapi "k8s.io/client-go/tools/clientcmd/api"
|
clientcmdapi "k8s.io/client-go/tools/clientcmd/api"
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue