mirror of https://github.com/kubernetes/kops.git
Code updates
This commit is contained in:
parent
b3c0772073
commit
cb4641fea3
3
Makefile
3
Makefile
|
@ -255,6 +255,9 @@ utils-dist:
|
|||
# See docs/development/dependencies.md
|
||||
copydeps:
|
||||
rsync -avz _vendor/ vendor/ --delete --exclude vendor/ --exclude .git
|
||||
ln -sf kubernetes/staging/src/k8s.io/apimachinery vendor/k8s.io/apimachinery
|
||||
ln -sf kubernetes/staging/src/k8s.io/apiserver vendor/k8s.io/apiserver
|
||||
ln -sf kubernetes/staging/src/k8s.io/client-go vendor/k8s.io/client-go
|
||||
|
||||
gofmt:
|
||||
gofmt -w -s channels/
|
||||
|
|
|
@ -19,9 +19,10 @@ package main
|
|||
import (
|
||||
"fmt"
|
||||
"github.com/spf13/cobra"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/client-go/pkg/api/v1"
|
||||
"k8s.io/kops/channels/pkg/channels"
|
||||
"k8s.io/kops/util/pkg/tables"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
"os"
|
||||
)
|
||||
|
||||
|
@ -59,7 +60,7 @@ func (c *GetAddonsCmd) Run(args []string) error {
|
|||
return err
|
||||
}
|
||||
|
||||
namespaces, err := k8sClient.Namespaces().List(v1.ListOptions{})
|
||||
namespaces, err := k8sClient.CoreV1().Namespaces().List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
return fmt.Errorf("error listing namespaces: %v", err)
|
||||
}
|
||||
|
|
|
@ -20,11 +20,10 @@ import (
|
|||
goflag "flag"
|
||||
"fmt"
|
||||
|
||||
"github.com/golang/glog"
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/spf13/viper"
|
||||
k8s_clientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
|
||||
"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/tools/clientcmd"
|
||||
)
|
||||
|
||||
type RootCmd struct {
|
||||
|
@ -79,24 +78,21 @@ func (c *RootCmd) AddCommand(cmd *cobra.Command) {
|
|||
c.cobraCommand.AddCommand(cmd)
|
||||
}
|
||||
|
||||
func (c *RootCmd) KubernetesClient() (*k8s_clientset.Clientset, error) {
|
||||
config := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(
|
||||
clientcmd.NewDefaultClientConfigLoadingRules(),
|
||||
&clientcmd.ConfigOverrides{})
|
||||
clientConfig, err := config.ClientConfig()
|
||||
if err != nil {
|
||||
if clientcmd.IsEmptyConfig(err) {
|
||||
glog.V(2).Infof("No client config found; will use default config")
|
||||
clientConfig, err = clientcmd.DefaultClientConfig.ClientConfig()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("cannot build default kube config settings: %v", err)
|
||||
}
|
||||
} else {
|
||||
return nil, fmt.Errorf("cannot load kubecfg settings: %v", err)
|
||||
}
|
||||
func (c *RootCmd) KubernetesClient() (kubernetes.Interface, error) {
|
||||
loadingRules := clientcmd.NewDefaultClientConfigLoadingRules()
|
||||
loadingRules.DefaultClientConfig = &clientcmd.DefaultClientConfig
|
||||
|
||||
configOverrides := &clientcmd.ConfigOverrides{
|
||||
ClusterDefaults: clientcmd.ClusterDefaults,
|
||||
}
|
||||
|
||||
k8sClient, err := k8s_clientset.NewForConfig(clientConfig)
|
||||
kubeConfig := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(loadingRules, configOverrides)
|
||||
config, err := kubeConfig.ClientConfig()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("cannot load kubecfg settings: %v", err)
|
||||
}
|
||||
|
||||
k8sClient, err := kubernetes.NewForConfig(config)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("cannot build kube client: %v", err)
|
||||
}
|
||||
|
|
|
@ -17,8 +17,8 @@ limitations under the License.
|
|||
package api
|
||||
|
||||
import (
|
||||
v1 "k8s.io/kubernetes/pkg/api/v1"
|
||||
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
v1 "k8s.io/client-go/pkg/api/v1"
|
||||
)
|
||||
|
||||
type Addons struct {
|
||||
|
|
|
@ -19,9 +19,9 @@ package channels
|
|||
import (
|
||||
"fmt"
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/kops/channels/pkg/api"
|
||||
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
|
||||
"k8s.io/kubernetes/pkg/util/validation/field"
|
||||
"net/url"
|
||||
)
|
||||
|
||||
|
@ -57,7 +57,7 @@ func (a *Addon) buildChannel() *Channel {
|
|||
}
|
||||
return channel
|
||||
}
|
||||
func (a *Addon) GetRequiredUpdates(k8sClient *clientset.Clientset) (*AddonUpdate, error) {
|
||||
func (a *Addon) GetRequiredUpdates(k8sClient kubernetes.Interface) (*AddonUpdate, error) {
|
||||
newVersion := a.ChannelVersion()
|
||||
|
||||
channel := a.buildChannel()
|
||||
|
@ -78,7 +78,7 @@ func (a *Addon) GetRequiredUpdates(k8sClient *clientset.Clientset) (*AddonUpdate
|
|||
}, nil
|
||||
}
|
||||
|
||||
func (a *Addon) EnsureUpdated(k8sClient *clientset.Clientset) (*AddonUpdate, error) {
|
||||
func (a *Addon) EnsureUpdated(k8sClient kubernetes.Interface) (*AddonUpdate, error) {
|
||||
required, err := a.GetRequiredUpdates(k8sClient)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
|
@ -21,10 +21,10 @@ import (
|
|||
"fmt"
|
||||
"github.com/blang/semver"
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/pkg/api/v1"
|
||||
"strings"
|
||||
)
|
||||
|
||||
|
@ -116,8 +116,8 @@ func (c *ChannelVersion) Replaces(existing *ChannelVersion) bool {
|
|||
return true
|
||||
}
|
||||
|
||||
func (c *Channel) GetInstalledVersion(k8sClient *clientset.Clientset) (*ChannelVersion, error) {
|
||||
ns, err := k8sClient.Namespaces().Get(c.Namespace, metav1.GetOptions{})
|
||||
func (c *Channel) GetInstalledVersion(k8sClient kubernetes.Interface) (*ChannelVersion, error) {
|
||||
ns, err := k8sClient.CoreV1().Namespaces().Get(c.Namespace, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error querying namespace %q: %v", c.Namespace, err)
|
||||
}
|
||||
|
@ -137,9 +137,9 @@ type annotationPatchMetadata struct {
|
|||
Annotations map[string]string `json:"annotations,omitempty"`
|
||||
}
|
||||
|
||||
func (c *Channel) SetInstalledVersion(k8sClient *clientset.Clientset, version *ChannelVersion) error {
|
||||
func (c *Channel) SetInstalledVersion(k8sClient kubernetes.Interface, version *ChannelVersion) error {
|
||||
// Primarily to check it exists
|
||||
_, err := k8sClient.Namespaces().Get(c.Namespace, metav1.GetOptions{})
|
||||
_, err := k8sClient.CoreV1().Namespaces().Get(c.Namespace, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return fmt.Errorf("error querying namespace %q: %v", c.Namespace, err)
|
||||
}
|
||||
|
@ -157,7 +157,7 @@ func (c *Channel) SetInstalledVersion(k8sClient *clientset.Clientset, version *C
|
|||
|
||||
glog.V(2).Infof("sending patch: %q", string(annotationPatchJson))
|
||||
|
||||
_, err = k8sClient.Namespaces().Patch(c.Namespace, api.StrategicMergePatchType, annotationPatchJson)
|
||||
_, err = k8sClient.CoreV1().Namespaces().Patch(c.Namespace, types.StrategicMergePatchType, annotationPatchJson)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error applying annotation to namespace: %v", err)
|
||||
}
|
||||
|
|
|
@ -23,16 +23,15 @@ import (
|
|||
"bytes"
|
||||
"github.com/golang/glog"
|
||||
"github.com/spf13/cobra"
|
||||
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
"k8s.io/kops/cmd/kops/util"
|
||||
kopsapi "k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/apis/kops/v1alpha1"
|
||||
"k8s.io/kops/upup/pkg/fi/cloudup"
|
||||
"k8s.io/kops/util/pkg/vfs"
|
||||
k8sapi "k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/errors"
|
||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||
"k8s.io/kubernetes/pkg/kubectl/resource"
|
||||
"k8s.io/kubernetes/pkg/runtime/schema"
|
||||
)
|
||||
|
||||
type CreateOptions struct {
|
||||
|
@ -80,7 +79,7 @@ func RunCreate(f *util.Factory, out io.Writer, c *CreateOptions) error {
|
|||
}
|
||||
|
||||
// Codecs provides access to encoding and decoding for the scheme
|
||||
codecs := k8sapi.Codecs //serializer.NewCodecFactory(scheme)
|
||||
codecs := kopsapi.Codecs //serializer.NewCodecFactory(scheme)
|
||||
|
||||
codec := codecs.UniversalDecoder(kopsapi.SchemeGroupVersion)
|
||||
|
||||
|
@ -106,7 +105,7 @@ func RunCreate(f *util.Factory, out io.Writer, c *CreateOptions) error {
|
|||
case *kopsapi.Federation:
|
||||
_, err = clientset.Federations().Create(v)
|
||||
if err != nil {
|
||||
if errors.IsAlreadyExists(err) {
|
||||
if apierrors.IsAlreadyExists(err) {
|
||||
return fmt.Errorf("federation %q already exists", v.ObjectMeta.Name)
|
||||
}
|
||||
return fmt.Errorf("error creating federation: %v", err)
|
||||
|
@ -121,7 +120,7 @@ func RunCreate(f *util.Factory, out io.Writer, c *CreateOptions) error {
|
|||
}
|
||||
_, err = clientset.Clusters().Create(v)
|
||||
if err != nil {
|
||||
if errors.IsAlreadyExists(err) {
|
||||
if apierrors.IsAlreadyExists(err) {
|
||||
return fmt.Errorf("cluster %q already exists", v.ObjectMeta.Name)
|
||||
}
|
||||
return fmt.Errorf("error creating cluster: %v", err)
|
||||
|
@ -134,7 +133,7 @@ func RunCreate(f *util.Factory, out io.Writer, c *CreateOptions) error {
|
|||
}
|
||||
_, err = clientset.InstanceGroups(clusterName).Create(v)
|
||||
if err != nil {
|
||||
if errors.IsAlreadyExists(err) {
|
||||
if apierrors.IsAlreadyExists(err) {
|
||||
return fmt.Errorf("instanceGroup %q already exists", v.ObjectMeta.Name)
|
||||
}
|
||||
return fmt.Errorf("error creating instanceGroup: %v", err)
|
||||
|
|
|
@ -27,6 +27,7 @@ import (
|
|||
|
||||
"github.com/golang/glog"
|
||||
"github.com/spf13/cobra"
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
"k8s.io/kops"
|
||||
"k8s.io/kops/cmd/kops/util"
|
||||
api "k8s.io/kops/pkg/apis/kops"
|
||||
|
@ -36,7 +37,6 @@ import (
|
|||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kops/upup/pkg/fi/cloudup"
|
||||
"k8s.io/kops/upup/pkg/fi/utils"
|
||||
"k8s.io/kubernetes/pkg/util/sets"
|
||||
)
|
||||
|
||||
type CreateClusterOptions struct {
|
||||
|
|
|
@ -20,18 +20,17 @@ import (
|
|||
"bytes"
|
||||
"github.com/golang/glog"
|
||||
"io/ioutil"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/kops/cmd/kops/util"
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/diff"
|
||||
k8sapi "k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
"path"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
var MagicTimestamp = v1.Time{Time: time.Date(2017, 1, 1, 0, 0, 0, 0, time.UTC)}
|
||||
var MagicTimestamp = metav1.Time{Time: time.Date(2017, 1, 1, 0, 0, 0, 0, time.UTC)}
|
||||
|
||||
// TestCreateClusterMinimal runs kops create cluster minimal.example.com --zones us-test-1a
|
||||
func TestCreateClusterMinimal(t *testing.T) {
|
||||
|
@ -119,7 +118,7 @@ func runCreateClusterIntegrationTest(t *testing.T, srcDir string, version string
|
|||
}
|
||||
|
||||
// Compare cluster
|
||||
clusters, err := clientset.Clusters().List(k8sapi.ListOptions{})
|
||||
clusters, err := clientset.Clusters().List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("error listing clusters: %v", err)
|
||||
}
|
||||
|
@ -143,7 +142,7 @@ func runCreateClusterIntegrationTest(t *testing.T, srcDir string, version string
|
|||
|
||||
// Compare instance groups
|
||||
|
||||
instanceGroups, err := clientset.InstanceGroups(clusters.Items[0].ObjectMeta.Name).List(k8sapi.ListOptions{})
|
||||
instanceGroups, err := clientset.InstanceGroups(clusters.Items[0].ObjectMeta.Name).List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("error listing instance groups: %v", err)
|
||||
}
|
||||
|
|
|
@ -22,13 +22,13 @@ import (
|
|||
"fmt"
|
||||
"github.com/spf13/cobra"
|
||||
"io"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/kops/cmd/kops/util"
|
||||
api "k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/apis/kops/registry"
|
||||
"k8s.io/kops/pkg/apis/kops/validation"
|
||||
"k8s.io/kops/pkg/edit"
|
||||
"k8s.io/kops/upup/pkg/fi/cloudup"
|
||||
k8sapi "k8s.io/kubernetes/pkg/api"
|
||||
util_editor "k8s.io/kubernetes/pkg/kubectl/cmd/util/editor"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
@ -81,7 +81,7 @@ func RunEditCluster(f *util.Factory, cmd *cobra.Command, args []string, out io.W
|
|||
return err
|
||||
}
|
||||
|
||||
list, err := clientset.InstanceGroups(oldCluster.ObjectMeta.Name).List(k8sapi.ListOptions{})
|
||||
list, err := clientset.InstanceGroups(oldCluster.ObjectMeta.Name).List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -22,8 +22,8 @@ import (
|
|||
"io"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
api "k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
)
|
||||
|
||||
// GetCmd represents the get command
|
||||
|
|
|
@ -23,11 +23,11 @@ import (
|
|||
|
||||
"github.com/spf13/cobra"
|
||||
"io"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
api "k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/apis/kops/registry"
|
||||
"k8s.io/kops/util/pkg/tables"
|
||||
k8sapi "k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/util/sets"
|
||||
)
|
||||
|
||||
type GetClusterOptions struct {
|
||||
|
@ -77,7 +77,7 @@ func RunGetClusters(context Factory, out io.Writer, options *GetClusterOptions)
|
|||
return err
|
||||
}
|
||||
|
||||
clusterList, err := client.Clusters().List(k8sapi.ListOptions{})
|
||||
clusterList, err := client.Clusters().List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -23,9 +23,9 @@ import (
|
|||
"strings"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
api "k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/util/pkg/tables"
|
||||
k8sapi "k8s.io/kubernetes/pkg/api"
|
||||
)
|
||||
|
||||
type GetFederationOptions struct {
|
||||
|
@ -56,7 +56,7 @@ func RunGetFederations(context Factory, out io.Writer, options *GetFederationOpt
|
|||
return err
|
||||
}
|
||||
|
||||
list, err := client.Federations().List(k8sapi.ListOptions{})
|
||||
list, err := client.Federations().List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -23,9 +23,9 @@ import (
|
|||
"strings"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
api "k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/util/pkg/tables"
|
||||
k8sapi "k8s.io/kubernetes/pkg/api"
|
||||
)
|
||||
|
||||
type GetInstanceGroupsCmd struct {
|
||||
|
@ -63,7 +63,7 @@ func (c *GetInstanceGroupsCmd) Run(args []string) error {
|
|||
return err
|
||||
}
|
||||
|
||||
list, err := clientset.InstanceGroups(clusterName).List(k8sapi.ListOptions{})
|
||||
list, err := clientset.InstanceGroups(clusterName).List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -26,7 +26,6 @@ import (
|
|||
"k8s.io/kops/util/pkg/vfs"
|
||||
|
||||
kopsapi "k8s.io/kops/pkg/apis/kops"
|
||||
k8sapi "k8s.io/kubernetes/pkg/api"
|
||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||
"k8s.io/kubernetes/pkg/kubectl/resource"
|
||||
)
|
||||
|
@ -64,7 +63,7 @@ func RunReplace(f *util.Factory, cmd *cobra.Command, out io.Writer, c *ReplaceOp
|
|||
}
|
||||
|
||||
// Codecs provides access to encoding and decoding for the scheme
|
||||
codecs := k8sapi.Codecs //serializer.NewCodecFactory(scheme)
|
||||
codecs := kopsapi.Codecs //serializer.NewCodecFactory(scheme)
|
||||
|
||||
codec := codecs.UniversalDecoder(kopsapi.SchemeGroupVersion)
|
||||
|
||||
|
|
|
@ -25,16 +25,16 @@ import (
|
|||
|
||||
"github.com/golang/glog"
|
||||
"github.com/spf13/cobra"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/pkg/api/v1"
|
||||
"k8s.io/client-go/tools/clientcmd"
|
||||
"k8s.io/kops/cmd/kops/util"
|
||||
api "k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/featureflag"
|
||||
"k8s.io/kops/upup/pkg/fi/cloudup"
|
||||
"k8s.io/kops/upup/pkg/kutil"
|
||||
"k8s.io/kops/util/pkg/tables"
|
||||
k8sapi "k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
k8s_clientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
|
||||
"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
|
||||
)
|
||||
|
||||
// Command Object for a Rolling Update.
|
||||
|
@ -171,14 +171,14 @@ func RunRollingUpdateCluster(f *util.Factory, out io.Writer, options *RollingUpd
|
|||
}
|
||||
|
||||
var nodes []v1.Node
|
||||
var k8sClient *k8s_clientset.Clientset
|
||||
var k8sClient kubernetes.Interface
|
||||
if !options.CloudOnly {
|
||||
k8sClient, err = k8s_clientset.NewForConfig(config)
|
||||
k8sClient, err = kubernetes.NewForConfig(config)
|
||||
if err != nil {
|
||||
return fmt.Errorf("cannot build kube client for %q: %v", contextName, err)
|
||||
}
|
||||
|
||||
nodeList, err := k8sClient.Nodes().List(v1.ListOptions{})
|
||||
nodeList, err := k8sClient.CoreV1().Nodes().List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "Unable to reach the kubernetes API.\n")
|
||||
fmt.Fprintf(os.Stderr, "Use --cloudonly to do a rolling-update without confirming progress with the k8s API\n\n")
|
||||
|
@ -190,7 +190,7 @@ func RunRollingUpdateCluster(f *util.Factory, out io.Writer, options *RollingUpd
|
|||
}
|
||||
}
|
||||
|
||||
list, err := clientset.InstanceGroups(cluster.ObjectMeta.Name).List(k8sapi.ListOptions{})
|
||||
list, err := clientset.InstanceGroups(cluster.ObjectMeta.Name).List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -25,12 +25,12 @@ import (
|
|||
"github.com/golang/glog"
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/spf13/viper"
|
||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||
"k8s.io/client-go/tools/clientcmd"
|
||||
"k8s.io/kops/cmd/kops/util"
|
||||
kopsapi "k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/client/simple"
|
||||
"k8s.io/kops/upup/pkg/kutil"
|
||||
"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
|
||||
"k8s.io/kubernetes/pkg/util/validation/field"
|
||||
|
||||
// Register our APIs
|
||||
_ "k8s.io/kops/pkg/apis/kops/install"
|
||||
|
|
|
@ -20,11 +20,11 @@ import (
|
|||
"fmt"
|
||||
"github.com/spf13/cobra"
|
||||
"io"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/kops/cmd/kops/util"
|
||||
api "k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/upup/pkg/fi/cloudup/awsup"
|
||||
"k8s.io/kops/upup/pkg/kutil"
|
||||
k8sapi "k8s.io/kubernetes/pkg/api"
|
||||
)
|
||||
|
||||
type ToolboxConvertImportedOptions struct {
|
||||
|
@ -82,7 +82,7 @@ func RunToolboxConvertImported(f *util.Factory, out io.Writer, options *ToolboxC
|
|||
return err
|
||||
}
|
||||
|
||||
list, err := clientset.InstanceGroups(cluster.ObjectMeta.Name).List(k8sapi.ListOptions{})
|
||||
list, err := clientset.InstanceGroups(cluster.ObjectMeta.Name).List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -27,6 +27,7 @@ import (
|
|||
|
||||
"github.com/golang/glog"
|
||||
"github.com/spf13/cobra"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/kops/cmd/kops/util"
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/apis/kops/registry"
|
||||
|
@ -34,7 +35,6 @@ import (
|
|||
"k8s.io/kops/upup/pkg/fi/cloudup"
|
||||
"k8s.io/kops/upup/pkg/fi/utils"
|
||||
"k8s.io/kops/upup/pkg/kutil"
|
||||
k8sapi "k8s.io/kubernetes/pkg/api"
|
||||
)
|
||||
|
||||
type UpdateClusterOptions struct {
|
||||
|
@ -153,7 +153,7 @@ func RunUpdateCluster(f *util.Factory, clusterName string, out io.Writer, c *Upd
|
|||
|
||||
var instanceGroups []*kops.InstanceGroup
|
||||
{
|
||||
list, err := clientset.InstanceGroups(cluster.ObjectMeta.Name).List(k8sapi.ListOptions{})
|
||||
list, err := clientset.InstanceGroups(cluster.ObjectMeta.Name).List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@ import (
|
|||
"github.com/blang/semver"
|
||||
"github.com/golang/glog"
|
||||
"github.com/spf13/cobra"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/kops"
|
||||
api "k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/apis/kops/util"
|
||||
|
@ -30,7 +31,6 @@ import (
|
|||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kops/upup/pkg/fi/cloudup"
|
||||
"k8s.io/kops/util/pkg/tables"
|
||||
k8sapi "k8s.io/kubernetes/pkg/api"
|
||||
)
|
||||
|
||||
type UpgradeClusterCmd struct {
|
||||
|
@ -85,7 +85,7 @@ func (c *UpgradeClusterCmd) Run(args []string) error {
|
|||
return err
|
||||
}
|
||||
|
||||
list, err := clientset.InstanceGroups(cluster.ObjectMeta.Name).List(k8sapi.ListOptions{})
|
||||
list, err := clientset.InstanceGroups(cluster.ObjectMeta.Name).List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -18,10 +18,10 @@ package util
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||
"k8s.io/kops/pkg/client/simple"
|
||||
"k8s.io/kops/pkg/client/simple/vfsclientset"
|
||||
"k8s.io/kops/util/pkg/vfs"
|
||||
"k8s.io/kubernetes/pkg/util/validation/field"
|
||||
|
||||
// Register our APIs
|
||||
_ "k8s.io/kops/pkg/apis/kops/install"
|
||||
|
|
|
@ -24,14 +24,14 @@ import (
|
|||
|
||||
"github.com/golang/glog"
|
||||
"github.com/spf13/cobra"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/pkg/api/v1"
|
||||
"k8s.io/client-go/tools/clientcmd"
|
||||
"k8s.io/kops/cmd/kops/util"
|
||||
api "k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/validation"
|
||||
"k8s.io/kops/util/pkg/tables"
|
||||
k8sapi "k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
k8s_clientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
|
||||
"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
|
||||
)
|
||||
|
||||
type ValidateClusterOptions struct {
|
||||
|
@ -73,7 +73,7 @@ func RunValidateCluster(f *util.Factory, cmd *cobra.Command, args []string, out
|
|||
return err
|
||||
}
|
||||
|
||||
list, err := clientSet.InstanceGroups(cluster.ObjectMeta.Name).List(k8sapi.ListOptions{})
|
||||
list, err := clientSet.InstanceGroups(cluster.ObjectMeta.Name).List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
return fmt.Errorf("cannot get InstanceGroups for %q: %v", cluster.ObjectMeta.Name, err)
|
||||
}
|
||||
|
@ -99,7 +99,7 @@ func RunValidateCluster(f *util.Factory, cmd *cobra.Command, args []string, out
|
|||
return fmt.Errorf("Cannot load kubecfg settings for %q: %v\n", contextName, err)
|
||||
}
|
||||
|
||||
k8sClient, err := k8s_clientset.NewForConfig(config)
|
||||
k8sClient, err := kubernetes.NewForConfig(config)
|
||||
if err != nil {
|
||||
return fmt.Errorf("Cannot build kube api client for %q: %v\n", contextName, err)
|
||||
}
|
||||
|
|
|
@ -26,10 +26,9 @@ import (
|
|||
"k8s.io/kops/dns-controller/pkg/dns"
|
||||
"k8s.io/kops/dns-controller/pkg/watchers"
|
||||
"k8s.io/kubernetes/federation/pkg/dnsprovider"
|
||||
client "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1"
|
||||
client_extensions "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/extensions/v1beta1"
|
||||
kubectl_util "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/rest"
|
||||
_ "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53"
|
||||
_ "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns"
|
||||
)
|
||||
|
@ -58,9 +57,6 @@ func main() {
|
|||
|
||||
flag.Set("logtostderr", "true")
|
||||
|
||||
flags.AddGoFlagSet(flag.CommandLine)
|
||||
clientConfig := kubectl_util.DefaultClientConfig(flags)
|
||||
|
||||
flags.Parse(os.Args)
|
||||
|
||||
zoneRules, err := dns.ParseZoneRules(zones)
|
||||
|
@ -69,21 +65,21 @@ func main() {
|
|||
os.Exit(1)
|
||||
}
|
||||
|
||||
config, err := clientConfig.ClientConfig()
|
||||
config, err := rest.InClusterConfig()
|
||||
if err != nil {
|
||||
glog.Errorf("error building client configuration: %v", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
kubeClient, err := client.NewForConfig(config)
|
||||
kubeClient, err := kubernetes.NewForConfig(config)
|
||||
if err != nil {
|
||||
glog.Fatalf("error building REST client: %v", err)
|
||||
}
|
||||
|
||||
kubeExtensionsClient, err := client_extensions.NewForConfig(config)
|
||||
if err != nil {
|
||||
glog.Fatalf("error building extensions REST client: %v", err)
|
||||
}
|
||||
//kubeExtensionsClient, err := client_extensions.NewForConfig(config)
|
||||
//if err != nil {
|
||||
// glog.Fatalf("error building extensions REST client: %v", err)
|
||||
//}
|
||||
|
||||
dnsProvider, err := dnsprovider.GetDnsProvider(dnsProviderId, nil)
|
||||
if err != nil {
|
||||
|
@ -121,7 +117,7 @@ func main() {
|
|||
|
||||
var ingressController *watchers.IngressController
|
||||
if watchIngress {
|
||||
ingressController, err = watchers.NewIngressController(kubeExtensionsClient, dnsController)
|
||||
ingressController, err = watchers.NewIngressController(kubeClient, dnsController)
|
||||
if err != nil {
|
||||
glog.Errorf("Error building ingress controller: %v", err)
|
||||
os.Exit(1)
|
||||
|
|
|
@ -22,23 +22,23 @@ import (
|
|||
|
||||
"github.com/golang/glog"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/watch"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/pkg/apis/extensions/v1beta1"
|
||||
"k8s.io/kops/dns-controller/pkg/dns"
|
||||
"k8s.io/kops/dns-controller/pkg/util"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
|
||||
client_extensions "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/extensions/v1beta1"
|
||||
"k8s.io/kubernetes/pkg/watch"
|
||||
)
|
||||
|
||||
// IngressController watches for Ingress objects with dns labels
|
||||
type IngressController struct {
|
||||
util.Stoppable
|
||||
kubeClient client_extensions.ExtensionsV1beta1Interface
|
||||
kubeClient kubernetes.Interface
|
||||
scope dns.Scope
|
||||
}
|
||||
|
||||
// newIngressController creates a ingressController
|
||||
func NewIngressController(kubeClient client_extensions.ExtensionsV1beta1Interface, dns dns.Context) (*IngressController, error) {
|
||||
func NewIngressController(kubeClient kubernetes.Interface, dns dns.Context) (*IngressController, error) {
|
||||
scope, err := dns.CreateScope("ingress")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error building dns scope: %v", err)
|
||||
|
@ -64,12 +64,12 @@ func (c *IngressController) Run() {
|
|||
|
||||
func (c *IngressController) runWatcher(stopCh <-chan struct{}) {
|
||||
runOnce := func() (bool, error) {
|
||||
var listOpts v1.ListOptions
|
||||
var listOpts metav1.ListOptions
|
||||
glog.Warningf("querying without label filter")
|
||||
//listOpts.LabelSelector = labels.Everything()
|
||||
glog.Warningf("querying without field filter")
|
||||
//listOpts.FieldSelector = fields.Everything()
|
||||
ingressList, err := c.kubeClient.Ingresses("").List(listOpts)
|
||||
ingressList, err := c.kubeClient.ExtensionsV1beta1().Ingresses("").List(listOpts)
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("error listing ingresss: %v", err)
|
||||
}
|
||||
|
@ -86,7 +86,7 @@ func (c *IngressController) runWatcher(stopCh <-chan struct{}) {
|
|||
//listOpts.FieldSelector = fields.Everything()
|
||||
listOpts.Watch = true
|
||||
listOpts.ResourceVersion = ingressList.ResourceVersion
|
||||
watcher, err := c.kubeClient.Ingresses("").Watch(listOpts)
|
||||
watcher, err := c.kubeClient.ExtensionsV1beta1().Ingresses("").Watch(listOpts)
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("error watching ingresss: %v", err)
|
||||
}
|
||||
|
|
|
@ -21,23 +21,23 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/golang/glog"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/watch"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/pkg/api/v1"
|
||||
"k8s.io/kops/dns-controller/pkg/dns"
|
||||
"k8s.io/kops/dns-controller/pkg/util"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
client "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1"
|
||||
"k8s.io/kubernetes/pkg/watch"
|
||||
)
|
||||
|
||||
// NodeController watches for nodes
|
||||
type NodeController struct {
|
||||
util.Stoppable
|
||||
kubeClient client.CoreV1Interface
|
||||
kubeClient kubernetes.Interface
|
||||
scope dns.Scope
|
||||
}
|
||||
|
||||
// newNodeController creates a nodeController
|
||||
func NewNodeController(kubeClient client.CoreV1Interface, dns dns.Context) (*NodeController, error) {
|
||||
func NewNodeController(kubeClient kubernetes.Interface, dns dns.Context) (*NodeController, error) {
|
||||
scope, err := dns.CreateScope("node")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error building dns scope: %v", err)
|
||||
|
@ -63,14 +63,14 @@ func (c *NodeController) Run() {
|
|||
|
||||
func (c *NodeController) runWatcher(stopCh <-chan struct{}) {
|
||||
runOnce := func() (bool, error) {
|
||||
var listOpts v1.ListOptions
|
||||
var listOpts metav1.ListOptions
|
||||
|
||||
// Note we need to watch all the nodes, to set up alias targets
|
||||
//listOpts.LabelSelector = labels.Everything()
|
||||
glog.Warningf("querying without field filter")
|
||||
//listOpts.FieldSelector = fields.Everything()
|
||||
|
||||
nodeList, err := c.kubeClient.Nodes().List(listOpts)
|
||||
nodeList, err := c.kubeClient.CoreV1().Nodes().List(listOpts)
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("error listing nodes: %v", err)
|
||||
}
|
||||
|
@ -88,7 +88,7 @@ func (c *NodeController) runWatcher(stopCh <-chan struct{}) {
|
|||
|
||||
listOpts.Watch = true
|
||||
listOpts.ResourceVersion = nodeList.ResourceVersion
|
||||
watcher, err := c.kubeClient.Nodes().Watch(listOpts)
|
||||
watcher, err := c.kubeClient.CoreV1().Nodes().Watch(listOpts)
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("error watching nodes: %v", err)
|
||||
}
|
||||
|
|
|
@ -22,23 +22,24 @@ import (
|
|||
|
||||
"github.com/golang/glog"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/watch"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/pkg/api/v1"
|
||||
"k8s.io/kops/dns-controller/pkg/dns"
|
||||
"k8s.io/kops/dns-controller/pkg/util"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
client "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1"
|
||||
"k8s.io/kubernetes/pkg/watch"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// PodController watches for Pods with dns annotations
|
||||
type PodController struct {
|
||||
util.Stoppable
|
||||
kubeClient client.CoreV1Interface
|
||||
kubeClient kubernetes.Interface
|
||||
scope dns.Scope
|
||||
}
|
||||
|
||||
// newPodController creates a podController
|
||||
func NewPodController(kubeClient client.CoreV1Interface, dns dns.Context) (*PodController, error) {
|
||||
func NewPodController(kubeClient kubernetes.Interface, dns dns.Context) (*PodController, error) {
|
||||
scope, err := dns.CreateScope("pod")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error building dns scope: %v", err)
|
||||
|
@ -64,12 +65,12 @@ func (c *PodController) Run() {
|
|||
|
||||
func (c *PodController) runWatcher(stopCh <-chan struct{}) {
|
||||
runOnce := func() (bool, error) {
|
||||
var listOpts v1.ListOptions
|
||||
var listOpts metav1.ListOptions
|
||||
glog.Warningf("querying without label filter")
|
||||
//listOpts.LabelSelector = labels.Everything()
|
||||
glog.Warningf("querying without field filter")
|
||||
//listOpts.FieldSelector = fields.Everything()
|
||||
podList, err := c.kubeClient.Pods("").List(listOpts)
|
||||
podList, err := c.kubeClient.CoreV1().Pods("").List(listOpts)
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("error listing pods: %v", err)
|
||||
}
|
||||
|
@ -86,7 +87,7 @@ func (c *PodController) runWatcher(stopCh <-chan struct{}) {
|
|||
//listOpts.FieldSelector = fields.Everything()
|
||||
listOpts.Watch = true
|
||||
listOpts.ResourceVersion = podList.ResourceVersion
|
||||
watcher, err := c.kubeClient.Pods("").Watch(listOpts)
|
||||
watcher, err := c.kubeClient.CoreV1().Pods("").Watch(listOpts)
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("error watching pods: %v", err)
|
||||
}
|
||||
|
|
|
@ -18,28 +18,26 @@ package watchers
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/golang/glog"
|
||||
|
||||
"strings"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/watch"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/pkg/api/v1"
|
||||
"k8s.io/kops/dns-controller/pkg/dns"
|
||||
"k8s.io/kops/dns-controller/pkg/util"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
client "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1"
|
||||
"k8s.io/kubernetes/pkg/watch"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
// ServiceController watches for services with dns annotations
|
||||
type ServiceController struct {
|
||||
util.Stoppable
|
||||
kubeClient client.CoreV1Interface
|
||||
kubeClient kubernetes.Interface
|
||||
scope dns.Scope
|
||||
}
|
||||
|
||||
// newServiceController creates a serviceController
|
||||
func NewServiceController(kubeClient client.CoreV1Interface, dns dns.Context) (*ServiceController, error) {
|
||||
func NewServiceController(kubeClient kubernetes.Interface, dns dns.Context) (*ServiceController, error) {
|
||||
scope, err := dns.CreateScope("service")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error building dns scope: %v", err)
|
||||
|
@ -65,12 +63,12 @@ func (c *ServiceController) Run() {
|
|||
|
||||
func (c *ServiceController) runWatcher(stopCh <-chan struct{}) {
|
||||
runOnce := func() (bool, error) {
|
||||
var listOpts v1.ListOptions
|
||||
var listOpts metav1.ListOptions
|
||||
glog.Warningf("querying without label filter")
|
||||
//listOpts.LabelSelector = labels.Everything()
|
||||
glog.Warningf("querying without field filter")
|
||||
//listOpts.FieldSelector = fields.Everything()
|
||||
serviceList, err := c.kubeClient.Services("").List(listOpts)
|
||||
serviceList, err := c.kubeClient.CoreV1().Services("").List(listOpts)
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("error listing services: %v", err)
|
||||
}
|
||||
|
@ -87,7 +85,7 @@ func (c *ServiceController) runWatcher(stopCh <-chan struct{}) {
|
|||
//listOpts.FieldSelector = fields.Everything()
|
||||
listOpts.Watch = true
|
||||
listOpts.ResourceVersion = serviceList.ResourceVersion
|
||||
watcher, err := c.kubeClient.Services("").Watch(listOpts)
|
||||
watcher, err := c.kubeClient.CoreV1().Services("").Watch(listOpts)
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("error watching services: %v", err)
|
||||
}
|
||||
|
|
|
@ -22,8 +22,12 @@ import (
|
|||
"crypto/rsa"
|
||||
"fmt"
|
||||
"github.com/golang/glog"
|
||||
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/pkg/api/v1"
|
||||
"k8s.io/kops/federation/model"
|
||||
"k8s.io/kops/federation/targets/kubernetes"
|
||||
"k8s.io/kops/federation/targets/kubernetestarget"
|
||||
"k8s.io/kops/federation/tasks"
|
||||
kopsapi "k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/apis/kops/registry"
|
||||
|
@ -33,10 +37,7 @@ import (
|
|||
"k8s.io/kops/upup/pkg/fi/k8sapi"
|
||||
"k8s.io/kops/upup/pkg/kutil"
|
||||
federation_clientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset"
|
||||
"k8s.io/kubernetes/pkg/api/errors"
|
||||
k8sapiv1 "k8s.io/kubernetes/pkg/api/v1"
|
||||
meta_v1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
k8s_clientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
|
||||
"strings"
|
||||
"text/template"
|
||||
)
|
||||
|
@ -112,7 +113,7 @@ func (o *ApplyFederationOperation) Run() error {
|
|||
|
||||
// TODO: sync clusters
|
||||
|
||||
var controllerKubernetesClients []k8s_clientset.Interface
|
||||
var controllerKubernetesClients []kubernetes.Interface
|
||||
for _, controller := range o.Federation.Spec.Controllers {
|
||||
cluster, err := o.KopsClient.Clusters().Get(controller)
|
||||
if err != nil {
|
||||
|
@ -129,7 +130,7 @@ func (o *ApplyFederationOperation) Run() error {
|
|||
return err
|
||||
}
|
||||
|
||||
k8s := context.Target.(*kubernetes.KubernetesTarget).KubernetesClient
|
||||
k8s := context.Target.(*kubernetestarget.KubernetesTarget).KubernetesClient
|
||||
controllerKubernetesClients = append(controllerKubernetesClients, k8s)
|
||||
}
|
||||
|
||||
|
@ -192,7 +193,7 @@ func (o *ApplyFederationOperation) federationContextForCluster(cluster *kopsapi.
|
|||
return nil, err
|
||||
}
|
||||
|
||||
target, err := kubernetes.NewKubernetesTarget(o.KopsClient, clusterKeystore, cluster)
|
||||
target, err := kubernetestarget.NewKubernetesTarget(o.KopsClient, clusterKeystore, cluster)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -359,20 +360,20 @@ func (o *ApplyFederationOperation) executeTemplate(key string, templateDefinitio
|
|||
}
|
||||
|
||||
func (o *ApplyFederationOperation) EnsureNamespace(c *fi.Context) error {
|
||||
k8s := c.Target.(*kubernetes.KubernetesTarget).KubernetesClient
|
||||
k8s := c.Target.(*kubernetestarget.KubernetesTarget).KubernetesClient
|
||||
|
||||
ns, err := k8s.Core().Namespaces().Get(o.namespace, meta_v1.GetOptions{})
|
||||
if err != nil {
|
||||
if errors.IsNotFound(err) {
|
||||
if apierrors.IsNotFound(err) {
|
||||
ns = nil
|
||||
} else {
|
||||
return fmt.Errorf("error reading namespace: %v", err)
|
||||
}
|
||||
}
|
||||
if ns == nil {
|
||||
ns = &k8sapiv1.Namespace{}
|
||||
ns = &v1.Namespace{}
|
||||
ns.Name = o.namespace
|
||||
ns, err = k8s.Core().Namespaces().Create(ns)
|
||||
ns, err = k8s.CoreV1().Namespaces().Create(ns)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error creating namespace: %v", err)
|
||||
}
|
||||
|
|
|
@ -19,22 +19,23 @@ package federation
|
|||
import (
|
||||
"fmt"
|
||||
"github.com/golang/glog"
|
||||
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/pkg/api/v1"
|
||||
kopsapi "k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/apis/kops/registry"
|
||||
"k8s.io/kops/pkg/kubeconfig"
|
||||
"k8s.io/kops/upup/pkg/kutil"
|
||||
"k8s.io/kubernetes/federation/apis/federation/v1beta1"
|
||||
"k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset"
|
||||
"k8s.io/kubernetes/pkg/api/errors"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
meta_v1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
k8s_clientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
|
||||
k8sapiv1 "k8s.io/kubernetes/pkg/api/v1"
|
||||
)
|
||||
|
||||
type FederationCluster struct {
|
||||
FederationNamespace string
|
||||
|
||||
ControllerKubernetesClients []k8s_clientset.Interface
|
||||
ControllerKubernetesClients []kubernetes.Interface
|
||||
FederationClient federation_clientset.Interface
|
||||
|
||||
ClusterSecretName string
|
||||
|
@ -90,7 +91,7 @@ func (o *FederationCluster) Run(cluster *kopsapi.Cluster) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (o *FederationCluster) ensureFederationSecret(k8s k8s_clientset.Interface, caCertData []byte, user kubeconfig.KubectlUser) error {
|
||||
func (o *FederationCluster) ensureFederationSecret(k8s kubernetes.Interface, caCertData []byte, user kubeconfig.KubectlUser) error {
|
||||
_, err := mutateSecret(k8s, o.FederationNamespace, o.ClusterSecretName, func(s *v1.Secret) (*v1.Secret, error) {
|
||||
var kubeconfigData []byte
|
||||
var err error
|
||||
|
@ -169,7 +170,7 @@ func (o *FederationCluster) ensureFederationCluster(federationClient federation_
|
|||
}
|
||||
|
||||
// Secret containing credentials for connecting to cluster
|
||||
c.Spec.SecretRef = &v1.LocalObjectReference{
|
||||
c.Spec.SecretRef = &k8sapiv1.LocalObjectReference{
|
||||
Name: o.ClusterSecretName,
|
||||
}
|
||||
return c, nil
|
||||
|
@ -182,7 +183,7 @@ func findCluster(k8s federation_clientset.Interface, name string) (*v1beta1.Clus
|
|||
glog.V(2).Infof("querying k8s for federation cluster %s", name)
|
||||
c, err := k8s.Federation().Clusters().Get(name, meta_v1.GetOptions{})
|
||||
if err != nil {
|
||||
if errors.IsNotFound(err) {
|
||||
if apierrors.IsNotFound(err) {
|
||||
return nil, nil
|
||||
} else {
|
||||
return nil, fmt.Errorf("error reading federation cluster %s: %v", name, err)
|
||||
|
|
|
@ -19,16 +19,16 @@ package federation
|
|||
import (
|
||||
"fmt"
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/kops/federation/targets/kubernetes"
|
||||
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/pkg/api/v1"
|
||||
"k8s.io/kops/federation/targets/kubernetestarget"
|
||||
kopsapi "k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/kubeconfig"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kops/upup/pkg/fi/fitasks"
|
||||
"k8s.io/kops/upup/pkg/kutil"
|
||||
"k8s.io/kubernetes/pkg/api/errors"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
meta_v1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
k8s_clientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
|
||||
)
|
||||
|
||||
const UserAdmin = "admin"
|
||||
|
@ -65,7 +65,7 @@ func (o *FederationConfiguration) extractKubecfg(c *fi.Context, f *kopsapi.Feder
|
|||
return nil, err
|
||||
}
|
||||
|
||||
k8s := c.Target.(*kubernetes.KubernetesTarget).KubernetesClient
|
||||
k8s := c.Target.(*kubernetestarget.KubernetesTarget).KubernetesClient
|
||||
|
||||
// Basic auth
|
||||
secret, err := findSecret(k8s, o.Namespace, o.ApiserverSecretName)
|
||||
|
@ -168,7 +168,7 @@ func (o *FederationConfiguration) EnsureConfiguration(c *fi.Context) error {
|
|||
return fmt.Errorf("cannot find server keypair")
|
||||
}
|
||||
|
||||
k8s := c.Target.(*kubernetes.KubernetesTarget).KubernetesClient
|
||||
k8s := c.Target.(*kubernetestarget.KubernetesTarget).KubernetesClient
|
||||
|
||||
adminPassword := ""
|
||||
//adminToken := ""
|
||||
|
@ -275,7 +275,7 @@ func (o *FederationConfiguration) EnsureConfiguration(c *fi.Context) error {
|
|||
}
|
||||
|
||||
func (o *FederationConfiguration) ensureSecretKubeconfig(c *fi.Context, caCert *fi.Certificate, user kubeconfig.KubectlUser) error {
|
||||
k8s := c.Target.(*kubernetes.KubernetesTarget).KubernetesClient
|
||||
k8s := c.Target.(*kubernetestarget.KubernetesTarget).KubernetesClient
|
||||
|
||||
_, err := mutateSecret(k8s, o.Namespace, o.KubeconfigSecretName, func(s *v1.Secret) (*v1.Secret, error) {
|
||||
var kubeconfigData []byte
|
||||
|
@ -341,11 +341,11 @@ func (o *FederationConfiguration) ensureSecretKubeconfig(c *fi.Context, caCert *
|
|||
return err
|
||||
}
|
||||
|
||||
func findSecret(k8s k8s_clientset.Interface, namespace, name string) (*v1.Secret, error) {
|
||||
func findSecret(k8s kubernetes.Interface, namespace, name string) (*v1.Secret, error) {
|
||||
glog.V(2).Infof("querying k8s for secret %s/%s", namespace, name)
|
||||
s, err := k8s.Core().Secrets(namespace).Get(name, meta_v1.GetOptions{})
|
||||
s, err := k8s.CoreV1().Secrets(namespace).Get(name, meta_v1.GetOptions{})
|
||||
if err != nil {
|
||||
if errors.IsNotFound(err) {
|
||||
if apierrors.IsNotFound(err) {
|
||||
return nil, nil
|
||||
} else {
|
||||
return nil, fmt.Errorf("error reading secret %s/%s: %v", namespace, name, err)
|
||||
|
@ -354,7 +354,7 @@ func findSecret(k8s k8s_clientset.Interface, namespace, name string) (*v1.Secret
|
|||
return s, nil
|
||||
}
|
||||
|
||||
func mutateSecret(k8s k8s_clientset.Interface, namespace string, name string, fn func(s *v1.Secret) (*v1.Secret, error)) (*v1.Secret, error) {
|
||||
func mutateSecret(k8s kubernetes.Interface, namespace string, name string, fn func(s *v1.Secret) (*v1.Secret, error)) (*v1.Secret, error) {
|
||||
existing, err := findSecret(k8s, namespace, name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -370,7 +370,7 @@ func mutateSecret(k8s k8s_clientset.Interface, namespace string, name string, fn
|
|||
|
||||
if createObject {
|
||||
glog.V(2).Infof("creating k8s secret %s/%s", namespace, name)
|
||||
created, err := k8s.Core().Secrets(namespace).Create(updated)
|
||||
created, err := k8s.CoreV1().Secrets(namespace).Create(updated)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error creating secret %s/%s: %v", namespace, name, err)
|
||||
}
|
||||
|
|
|
@ -19,17 +19,17 @@ package federation
|
|||
import (
|
||||
"fmt"
|
||||
"github.com/golang/glog"
|
||||
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset"
|
||||
"k8s.io/kubernetes/pkg/api/errors"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
meta_v1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
func findNamespace(k8s federation_clientset.Interface, name string) (*v1.Namespace, error) {
|
||||
glog.V(2).Infof("querying k8s for federation Namespace %s", name)
|
||||
c, err := k8s.Core().Namespaces().Get(name, meta_v1.GetOptions{})
|
||||
c, err := k8s.CoreV1().Namespaces().Get(name, meta_v1.GetOptions{})
|
||||
if err != nil {
|
||||
if errors.IsNotFound(err) {
|
||||
if apierrors.IsNotFound(err) {
|
||||
return nil, nil
|
||||
} else {
|
||||
return nil, fmt.Errorf("error reading federation Namespace %s: %v", name, err)
|
||||
|
@ -53,7 +53,7 @@ func mutateNamespace(k8s federation_clientset.Interface, name string, fn func(s
|
|||
|
||||
if createObject {
|
||||
glog.V(2).Infof("creating federation Namespace %s", name)
|
||||
created, err := k8s.Core().Namespaces().Create(updated)
|
||||
created, err := k8s.CoreV1().Namespaces().Create(updated)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error creating federation Namespace %s: %v", name, err)
|
||||
}
|
||||
|
|
|
@ -14,21 +14,21 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package kubernetes
|
||||
package kubernetestarget
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
kopsapi "k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/client/simple"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kops/upup/pkg/kutil"
|
||||
k8s_clientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
|
||||
)
|
||||
|
||||
type KubernetesTarget struct {
|
||||
//kubectlContext string
|
||||
//keystore *k8sapi.KubernetesKeystore
|
||||
KubernetesClient k8s_clientset.Interface
|
||||
KubernetesClient kubernetes.Interface
|
||||
cluster *kopsapi.Cluster
|
||||
}
|
||||
|
||||
|
@ -50,7 +50,7 @@ func NewKubernetesTarget(clientset simple.Clientset, keystore fi.Keystore, clust
|
|||
return nil, fmt.Errorf("error building configuration for cluster %q: %v", cluster.ObjectMeta.Name, err)
|
||||
}
|
||||
|
||||
k8sClient, err := k8s_clientset.NewForConfig(clientConfig)
|
||||
k8sClient, err := kubernetes.NewForConfig(clientConfig)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("cannot build k8s client: %v", err)
|
||||
}
|
|
@ -18,9 +18,9 @@ package tasks
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"k8s.io/kops/federation/targets/kubernetes"
|
||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||
"k8s.io/kops/federation/targets/kubernetestarget"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kubernetes/pkg/util/validation/field"
|
||||
)
|
||||
|
||||
//go:generate fitask -type=KubernetesResource
|
||||
|
@ -57,7 +57,7 @@ func (_ *KubernetesResource) Render(c *fi.Context, a, e, changes *KubernetesReso
|
|||
return field.Required(field.NewPath("Name"), "")
|
||||
}
|
||||
|
||||
target, ok := c.Target.(*kubernetes.KubernetesTarget)
|
||||
target, ok := c.Target.(*kubernetestarget.KubernetesTarget)
|
||||
if !ok {
|
||||
return fmt.Errorf("Expected KubernetesTarget, got %T", c.Target)
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ k8s.io/kops/dns-controller/pkg/watchers
|
|||
k8s.io/kops/examples/kops-api-example
|
||||
k8s.io/kops/federation
|
||||
k8s.io/kops/federation/model
|
||||
k8s.io/kops/federation/targets/kubernetes
|
||||
k8s.io/kops/federation/targets/kubernetestarget
|
||||
k8s.io/kops/federation/tasks
|
||||
k8s.io/kops/nodeup/pkg/bootstrap
|
||||
k8s.io/kops/nodeup/pkg/distros
|
||||
|
|
|
@ -19,13 +19,13 @@ package bootstrap
|
|||
import (
|
||||
"fmt"
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
"k8s.io/kops/nodeup/pkg/distros"
|
||||
"k8s.io/kops/pkg/systemd"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kops/upup/pkg/fi/nodeup/local"
|
||||
"k8s.io/kops/upup/pkg/fi/nodeup/nodetasks"
|
||||
"k8s.io/kops/util/pkg/vfs"
|
||||
"k8s.io/kubernetes/pkg/util/sets"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
|
|
@ -20,11 +20,11 @@ import (
|
|||
"bytes"
|
||||
"fmt"
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/client-go/pkg/api"
|
||||
"k8s.io/client-go/pkg/api/v1"
|
||||
|
||||
_ "k8s.io/kubernetes/pkg/api/install"
|
||||
_ "k8s.io/client-go/pkg/api/install"
|
||||
)
|
||||
|
||||
func encoder() runtime.Encoder {
|
||||
|
|
|
@ -20,13 +20,13 @@ import (
|
|||
"fmt"
|
||||
"strings"
|
||||
|
||||
"k8s.io/apimachinery/pkg/api/resource"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/util/intstr"
|
||||
"k8s.io/client-go/pkg/api/v1"
|
||||
"k8s.io/kops/pkg/flagbuilder"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kops/upup/pkg/fi/nodeup/nodetasks"
|
||||
"k8s.io/kubernetes/pkg/api/resource"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
"k8s.io/kubernetes/pkg/util/intstr"
|
||||
)
|
||||
|
||||
// KubeAPIServerBuilder install kube-apiserver (just the manifest at the moment)
|
||||
|
@ -83,7 +83,7 @@ func (b *KubeAPIServerBuilder) buildPod() (*v1.Pod, error) {
|
|||
APIVersion: "v1",
|
||||
Kind: "Pod",
|
||||
},
|
||||
ObjectMeta: v1.ObjectMeta{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "kube-apiserver",
|
||||
Namespace: "kube-system",
|
||||
Annotations: b.buildAnnotations(),
|
||||
|
|
|
@ -18,13 +18,13 @@ package model
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"k8s.io/apimachinery/pkg/api/resource"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/util/intstr"
|
||||
"k8s.io/client-go/pkg/api/v1"
|
||||
"k8s.io/kops/pkg/flagbuilder"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kops/upup/pkg/fi/nodeup/nodetasks"
|
||||
"k8s.io/kubernetes/pkg/api/resource"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
"k8s.io/kubernetes/pkg/util/intstr"
|
||||
"strings"
|
||||
)
|
||||
|
||||
|
@ -82,7 +82,7 @@ func (b *KubeControllerManagerBuilder) buildPod() (*v1.Pod, error) {
|
|||
APIVersion: "v1",
|
||||
Kind: "Pod",
|
||||
},
|
||||
ObjectMeta: v1.ObjectMeta{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "kube-controller-manager",
|
||||
Namespace: "kube-system",
|
||||
Labels: map[string]string{
|
||||
|
|
|
@ -20,11 +20,11 @@ import (
|
|||
"fmt"
|
||||
"github.com/blang/semver"
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/kops/pkg/apis/kops/util"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kops/util/pkg/vfs"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
"net/url"
|
||||
)
|
||||
|
||||
|
@ -34,7 +34,7 @@ const AlphaChannel = "alpha"
|
|||
|
||||
type Channel struct {
|
||||
v1.TypeMeta `json:",inline"`
|
||||
ObjectMeta api.ObjectMeta `json:"metadata,omitempty"`
|
||||
ObjectMeta metav1.ObjectMeta `json:"metadata,omitempty"`
|
||||
|
||||
Spec ChannelSpec `json:"spec,omitempty"`
|
||||
}
|
||||
|
|
|
@ -19,20 +19,19 @@ package kops
|
|||
import (
|
||||
"fmt"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
type Cluster struct {
|
||||
v1.TypeMeta `json:",inline"`
|
||||
ObjectMeta api.ObjectMeta `json:"metadata,omitempty"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
ObjectMeta metav1.ObjectMeta `json:"metadata,omitempty"`
|
||||
|
||||
Spec ClusterSpec `json:"spec,omitempty"`
|
||||
}
|
||||
|
||||
type ClusterList struct {
|
||||
v1.TypeMeta `json:",inline"`
|
||||
v1.ListMeta `json:"metadata,omitempty"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ListMeta `json:"metadata,omitempty"`
|
||||
|
||||
Items []Cluster `json:"items"`
|
||||
}
|
||||
|
|
|
@ -20,16 +20,14 @@ import (
|
|||
"bytes"
|
||||
"fmt"
|
||||
"github.com/golang/glog"
|
||||
k8sapi "k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/runtime/schema"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
)
|
||||
|
||||
func decoder() runtime.Decoder {
|
||||
// TODO: Cache?
|
||||
// Codecs provides access to encoding and decoding for the scheme
|
||||
codecs := k8sapi.Codecs
|
||||
codec := codecs.UniversalDecoder(SchemeGroupVersion)
|
||||
codec := Codecs.UniversalDecoder(SchemeGroupVersion)
|
||||
return codec
|
||||
}
|
||||
|
||||
|
@ -38,12 +36,12 @@ func encoder(version string) runtime.Encoder {
|
|||
//yaml := json.NewYAMLSerializer(json.DefaultMetaFactory, k8sapi.Scheme, k8sapi.Scheme)
|
||||
|
||||
// TODO: Cache?
|
||||
yaml, ok := runtime.SerializerInfoForMediaType(k8sapi.Codecs.SupportedMediaTypes(), "application/yaml")
|
||||
yaml, ok := runtime.SerializerInfoForMediaType(Codecs.SupportedMediaTypes(), "application/yaml")
|
||||
if !ok {
|
||||
glog.Fatalf("no YAML serializer registered")
|
||||
}
|
||||
gv := schema.GroupVersion{Group: GroupName, Version: version}
|
||||
return k8sapi.Codecs.EncoderForVersion(yaml.Serializer, gv)
|
||||
return Codecs.EncoderForVersion(yaml.Serializer, gv)
|
||||
}
|
||||
|
||||
func preferredAPIVersion() string {
|
||||
|
|
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||
package kops
|
||||
|
||||
import (
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
)
|
||||
|
||||
// ApiType adds a Validate() method to runtime.Object
|
||||
|
|
|
@ -16,7 +16,7 @@ limitations under the License.
|
|||
|
||||
package kops
|
||||
|
||||
import metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
|
||||
type KubeletConfigSpec struct {
|
||||
// not used for clusters version 1.6 and later - flag removed
|
||||
|
|
|
@ -17,14 +17,13 @@ limitations under the License.
|
|||
package kops
|
||||
|
||||
import (
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
// Federation represents a federated set of kubernetes clusters
|
||||
type Federation struct {
|
||||
v1.TypeMeta `json:",inline"`
|
||||
ObjectMeta api.ObjectMeta `json:"metadata,omitempty"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
ObjectMeta metav1.ObjectMeta `json:"metadata,omitempty"`
|
||||
|
||||
Spec FederationSpec `json:"spec,omitempty"`
|
||||
}
|
||||
|
@ -37,8 +36,8 @@ type FederationSpec struct {
|
|||
}
|
||||
|
||||
type FederationList struct {
|
||||
v1.TypeMeta `json:",inline"`
|
||||
v1.ListMeta `json:"metadata,omitempty"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ListMeta `json:"metadata,omitempty"`
|
||||
|
||||
Items []Federation `json:"items"`
|
||||
}
|
||||
|
|
|
@ -19,19 +19,22 @@ limitations under the License.
|
|||
package install
|
||||
|
||||
import (
|
||||
"k8s.io/apimachinery/pkg/apimachinery/announced"
|
||||
"k8s.io/apimachinery/pkg/apimachinery/registered"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/apis/kops/v1alpha1"
|
||||
"k8s.io/kops/pkg/apis/kops/v1alpha2"
|
||||
"k8s.io/kubernetes/pkg/apimachinery/announced"
|
||||
)
|
||||
|
||||
func init() {
|
||||
if err := register(); err != nil {
|
||||
if err := Install(kops.GroupFactoryRegistry, kops.Registry, kops.Scheme); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
func register() error {
|
||||
// Install registers the API group and adds types to a scheme
|
||||
func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *registered.APIRegistrationManager, scheme *runtime.Scheme) error {
|
||||
return announced.NewGroupMetaFactory(
|
||||
&announced.GroupMetaFactoryArgs{
|
||||
GroupName: kops.GroupName,
|
||||
|
@ -47,5 +50,5 @@ func register() error {
|
|||
v1alpha1.SchemeGroupVersion.Version: v1alpha1.AddToScheme,
|
||||
v1alpha2.SchemeGroupVersion.Version: v1alpha2.AddToScheme,
|
||||
},
|
||||
).Announce().RegisterAndEnable()
|
||||
).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme)
|
||||
}
|
||||
|
|
|
@ -19,24 +19,23 @@ package kops
|
|||
import (
|
||||
"fmt"
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
"k8s.io/kubernetes/pkg/util/validation/field"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||
)
|
||||
|
||||
const LabelClusterName = "kops.k8s.io/cluster"
|
||||
|
||||
// InstanceGroup represents a group of instances (either nodes or masters) with the same configuration
|
||||
type InstanceGroup struct {
|
||||
v1.TypeMeta `json:",inline"`
|
||||
ObjectMeta api.ObjectMeta `json:"metadata,omitempty"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
ObjectMeta metav1.ObjectMeta `json:"metadata,omitempty"`
|
||||
|
||||
Spec InstanceGroupSpec `json:"spec,omitempty"`
|
||||
}
|
||||
|
||||
type InstanceGroupList struct {
|
||||
v1.TypeMeta `json:",inline"`
|
||||
v1.ListMeta `json:"metadata,omitempty"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ListMeta `json:"metadata,omitempty"`
|
||||
|
||||
Items []InstanceGroup `json:"items"`
|
||||
}
|
||||
|
|
|
@ -17,8 +17,12 @@ limitations under the License.
|
|||
package kops
|
||||
|
||||
import (
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/runtime/schema"
|
||||
"k8s.io/apimachinery/pkg/apimachinery/announced"
|
||||
"k8s.io/apimachinery/pkg/apimachinery/registered"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
"k8s.io/apimachinery/pkg/runtime/serializer"
|
||||
"os"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -26,6 +30,14 @@ var (
|
|||
AddToScheme = SchemeBuilder.AddToScheme
|
||||
)
|
||||
|
||||
var GroupFactoryRegistry = make(announced.APIGroupFactoryRegistry)
|
||||
|
||||
var Registry = registered.NewOrDie(os.Getenv("KOPS_API_VERSIONS"))
|
||||
|
||||
var Scheme = runtime.NewScheme()
|
||||
|
||||
var Codecs = serializer.NewCodecFactory(Scheme)
|
||||
|
||||
// GroupName is the group name use in this package
|
||||
const GroupName = "kops"
|
||||
|
||||
|
|
|
@ -18,11 +18,11 @@ package registry
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||
api "k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kops/upup/pkg/fi/secrets"
|
||||
"k8s.io/kops/util/pkg/vfs"
|
||||
"k8s.io/kubernetes/pkg/util/validation/field"
|
||||
"strings"
|
||||
)
|
||||
|
||||
|
|
|
@ -17,13 +17,12 @@ limitations under the License.
|
|||
package v1alpha1
|
||||
|
||||
import (
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
meta_v1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
type Cluster struct {
|
||||
meta_v1.TypeMeta `json:",inline"`
|
||||
ObjectMeta v1.ObjectMeta `json:"metadata,omitempty"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
ObjectMeta metav1.ObjectMeta `json:"metadata,omitempty"`
|
||||
|
||||
// Spec defines the behavior of a Cluster.
|
||||
Spec ClusterSpec `json:"spec,omitempty"`
|
||||
|
@ -34,8 +33,8 @@ type Cluster struct {
|
|||
}
|
||||
|
||||
type ClusterList struct {
|
||||
meta_v1.TypeMeta `json:",inline"`
|
||||
meta_v1.ListMeta `json:"metadata,omitempty"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ListMeta `json:"metadata,omitempty"`
|
||||
|
||||
Items []Cluster `json:"items"`
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ limitations under the License.
|
|||
|
||||
package v1alpha1
|
||||
|
||||
import metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
|
||||
type KubeletConfigSpec struct {
|
||||
// not used for clusters version 1.6 and later
|
||||
|
|
|
@ -18,8 +18,8 @@ package v1alpha1
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"k8s.io/apimachinery/pkg/conversion"
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kubernetes/pkg/conversion"
|
||||
"reflect"
|
||||
"sort"
|
||||
"strings"
|
||||
|
|
|
@ -18,7 +18,7 @@ package v1alpha1
|
|||
|
||||
import (
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
)
|
||||
|
||||
func addDefaultingFuncs(scheme *runtime.Scheme) error {
|
||||
|
|
|
@ -17,13 +17,12 @@ limitations under the License.
|
|||
package v1alpha1
|
||||
|
||||
import (
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
meta_v1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
type Federation struct {
|
||||
meta_v1.TypeMeta `json:",inline"`
|
||||
ObjectMeta v1.ObjectMeta `json:"metadata,omitempty"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
ObjectMeta metav1.ObjectMeta `json:"metadata,omitempty"`
|
||||
|
||||
Spec FederationSpec `json:"spec"`
|
||||
}
|
||||
|
@ -36,8 +35,8 @@ type FederationSpec struct {
|
|||
}
|
||||
|
||||
type FederationList struct {
|
||||
meta_v1.TypeMeta `json:",inline"`
|
||||
meta_v1.ListMeta `json:"metadata,omitempty"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ListMeta `json:"metadata,omitempty"`
|
||||
|
||||
Items []Federation `json:"items"`
|
||||
}
|
||||
|
|
|
@ -17,21 +17,20 @@ limitations under the License.
|
|||
package v1alpha1
|
||||
|
||||
import (
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
meta_v1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
// InstanceGroup represents a group of instances (either nodes or masters) with the same configuration
|
||||
type InstanceGroup struct {
|
||||
meta_v1.TypeMeta `json:",inline"`
|
||||
ObjectMeta v1.ObjectMeta `json:"metadata,omitempty"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
ObjectMeta metav1.ObjectMeta `json:"metadata,omitempty"`
|
||||
|
||||
Spec InstanceGroupSpec `json:"spec,omitempty"`
|
||||
}
|
||||
|
||||
type InstanceGroupList struct {
|
||||
meta_v1.TypeMeta `json:",inline"`
|
||||
meta_v1.ListMeta `json:"metadata,omitempty"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ListMeta `json:"metadata,omitempty"`
|
||||
|
||||
Items []InstanceGroup `json:"items"`
|
||||
}
|
||||
|
|
|
@ -17,9 +17,9 @@ limitations under the License.
|
|||
package v1alpha1
|
||||
|
||||
import (
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/runtime/schema"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -52,9 +52,9 @@ func addKnownTypes(scheme *runtime.Scheme) error {
|
|||
&InstanceGroupList{},
|
||||
&Federation{},
|
||||
&FederationList{},
|
||||
&v1.ListOptions{},
|
||||
)
|
||||
// ?? versionedwatch.AddToGroupVersion(scheme, SchemeGroupVersion)
|
||||
|
||||
metav1.AddToGroupVersion(scheme, SchemeGroupVersion)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -21,10 +21,9 @@ limitations under the License.
|
|||
package v1alpha1
|
||||
|
||||
import (
|
||||
conversion "k8s.io/apimachinery/pkg/conversion"
|
||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||
kops "k8s.io/kops/pkg/apis/kops"
|
||||
api "k8s.io/kubernetes/pkg/api"
|
||||
conversion "k8s.io/kubernetes/pkg/conversion"
|
||||
runtime "k8s.io/kubernetes/pkg/runtime"
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
@ -245,9 +244,6 @@ func Convert_kops_CloudConfiguration_To_v1alpha1_CloudConfiguration(in *kops.Clo
|
|||
}
|
||||
|
||||
func autoConvert_v1alpha1_Cluster_To_kops_Cluster(in *Cluster, out *kops.Cluster, s conversion.Scope) error {
|
||||
if err := api.Convert_v1_TypeMeta_To_v1_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
|
||||
return err
|
||||
}
|
||||
// TODO: Inefficient conversion - can we improve it?
|
||||
if err := s.Convert(&in.ObjectMeta, &out.ObjectMeta, 0); err != nil {
|
||||
return err
|
||||
|
@ -263,9 +259,6 @@ func Convert_v1alpha1_Cluster_To_kops_Cluster(in *Cluster, out *kops.Cluster, s
|
|||
}
|
||||
|
||||
func autoConvert_kops_Cluster_To_v1alpha1_Cluster(in *kops.Cluster, out *Cluster, s conversion.Scope) error {
|
||||
if err := api.Convert_v1_TypeMeta_To_v1_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
|
||||
return err
|
||||
}
|
||||
// TODO: Inefficient conversion - can we improve it?
|
||||
if err := s.Convert(&in.ObjectMeta, &out.ObjectMeta, 0); err != nil {
|
||||
return err
|
||||
|
@ -281,9 +274,6 @@ func Convert_kops_Cluster_To_v1alpha1_Cluster(in *kops.Cluster, out *Cluster, s
|
|||
}
|
||||
|
||||
func autoConvert_v1alpha1_ClusterList_To_kops_ClusterList(in *ClusterList, out *kops.ClusterList, s conversion.Scope) error {
|
||||
if err := api.Convert_v1_TypeMeta_To_v1_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
|
||||
return err
|
||||
}
|
||||
out.ListMeta = in.ListMeta
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
|
@ -304,9 +294,6 @@ func Convert_v1alpha1_ClusterList_To_kops_ClusterList(in *ClusterList, out *kops
|
|||
}
|
||||
|
||||
func autoConvert_kops_ClusterList_To_v1alpha1_ClusterList(in *kops.ClusterList, out *ClusterList, s conversion.Scope) error {
|
||||
if err := api.Convert_v1_TypeMeta_To_v1_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
|
||||
return err
|
||||
}
|
||||
out.ListMeta = in.ListMeta
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
|
@ -767,9 +754,6 @@ func Convert_kops_ExternalNetworkingSpec_To_v1alpha1_ExternalNetworkingSpec(in *
|
|||
}
|
||||
|
||||
func autoConvert_v1alpha1_Federation_To_kops_Federation(in *Federation, out *kops.Federation, s conversion.Scope) error {
|
||||
if err := api.Convert_v1_TypeMeta_To_v1_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
|
||||
return err
|
||||
}
|
||||
// TODO: Inefficient conversion - can we improve it?
|
||||
if err := s.Convert(&in.ObjectMeta, &out.ObjectMeta, 0); err != nil {
|
||||
return err
|
||||
|
@ -785,9 +769,6 @@ func Convert_v1alpha1_Federation_To_kops_Federation(in *Federation, out *kops.Fe
|
|||
}
|
||||
|
||||
func autoConvert_kops_Federation_To_v1alpha1_Federation(in *kops.Federation, out *Federation, s conversion.Scope) error {
|
||||
if err := api.Convert_v1_TypeMeta_To_v1_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
|
||||
return err
|
||||
}
|
||||
// TODO: Inefficient conversion - can we improve it?
|
||||
if err := s.Convert(&in.ObjectMeta, &out.ObjectMeta, 0); err != nil {
|
||||
return err
|
||||
|
@ -803,9 +784,6 @@ func Convert_kops_Federation_To_v1alpha1_Federation(in *kops.Federation, out *Fe
|
|||
}
|
||||
|
||||
func autoConvert_v1alpha1_FederationList_To_kops_FederationList(in *FederationList, out *kops.FederationList, s conversion.Scope) error {
|
||||
if err := api.Convert_v1_TypeMeta_To_v1_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
|
||||
return err
|
||||
}
|
||||
out.ListMeta = in.ListMeta
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
|
@ -826,9 +804,6 @@ func Convert_v1alpha1_FederationList_To_kops_FederationList(in *FederationList,
|
|||
}
|
||||
|
||||
func autoConvert_kops_FederationList_To_v1alpha1_FederationList(in *kops.FederationList, out *FederationList, s conversion.Scope) error {
|
||||
if err := api.Convert_v1_TypeMeta_To_v1_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
|
||||
return err
|
||||
}
|
||||
out.ListMeta = in.ListMeta
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
|
@ -887,9 +862,6 @@ func Convert_kops_FlannelNetworkingSpec_To_v1alpha1_FlannelNetworkingSpec(in *ko
|
|||
}
|
||||
|
||||
func autoConvert_v1alpha1_InstanceGroup_To_kops_InstanceGroup(in *InstanceGroup, out *kops.InstanceGroup, s conversion.Scope) error {
|
||||
if err := api.Convert_v1_TypeMeta_To_v1_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
|
||||
return err
|
||||
}
|
||||
// TODO: Inefficient conversion - can we improve it?
|
||||
if err := s.Convert(&in.ObjectMeta, &out.ObjectMeta, 0); err != nil {
|
||||
return err
|
||||
|
@ -905,9 +877,6 @@ func Convert_v1alpha1_InstanceGroup_To_kops_InstanceGroup(in *InstanceGroup, out
|
|||
}
|
||||
|
||||
func autoConvert_kops_InstanceGroup_To_v1alpha1_InstanceGroup(in *kops.InstanceGroup, out *InstanceGroup, s conversion.Scope) error {
|
||||
if err := api.Convert_v1_TypeMeta_To_v1_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
|
||||
return err
|
||||
}
|
||||
// TODO: Inefficient conversion - can we improve it?
|
||||
if err := s.Convert(&in.ObjectMeta, &out.ObjectMeta, 0); err != nil {
|
||||
return err
|
||||
|
@ -923,9 +892,6 @@ func Convert_kops_InstanceGroup_To_v1alpha1_InstanceGroup(in *kops.InstanceGroup
|
|||
}
|
||||
|
||||
func autoConvert_v1alpha1_InstanceGroupList_To_kops_InstanceGroupList(in *InstanceGroupList, out *kops.InstanceGroupList, s conversion.Scope) error {
|
||||
if err := api.Convert_v1_TypeMeta_To_v1_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
|
||||
return err
|
||||
}
|
||||
out.ListMeta = in.ListMeta
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
|
@ -946,9 +912,6 @@ func Convert_v1alpha1_InstanceGroupList_To_kops_InstanceGroupList(in *InstanceGr
|
|||
}
|
||||
|
||||
func autoConvert_kops_InstanceGroupList_To_v1alpha1_InstanceGroupList(in *kops.InstanceGroupList, out *InstanceGroupList, s conversion.Scope) error {
|
||||
if err := api.Convert_v1_TypeMeta_To_v1_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
|
||||
return err
|
||||
}
|
||||
out.ListMeta = in.ListMeta
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
|
|
|
@ -21,7 +21,7 @@ limitations under the License.
|
|||
package v1alpha1
|
||||
|
||||
import (
|
||||
runtime "k8s.io/kubernetes/pkg/runtime"
|
||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||
)
|
||||
|
||||
// RegisterDefaults adds defaulters functions to the given scheme.
|
||||
|
|
|
@ -17,20 +17,19 @@ limitations under the License.
|
|||
package v1alpha2
|
||||
|
||||
import (
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
meta_v1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
type Cluster struct {
|
||||
meta_v1.TypeMeta `json:",inline"`
|
||||
ObjectMeta v1.ObjectMeta `json:"metadata,omitempty"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
ObjectMeta metav1.ObjectMeta `json:"metadata,omitempty"`
|
||||
|
||||
Spec ClusterSpec `json:"spec,omitempty"`
|
||||
}
|
||||
|
||||
type ClusterList struct {
|
||||
meta_v1.TypeMeta `json:",inline"`
|
||||
meta_v1.ListMeta `json:"metadata,omitempty"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ListMeta `json:"metadata,omitempty"`
|
||||
|
||||
Items []Cluster `json:"items"`
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ limitations under the License.
|
|||
|
||||
package v1alpha2
|
||||
|
||||
import metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
|
||||
type KubeletConfigSpec struct {
|
||||
// not used for clusters version 1.6 and later
|
||||
|
|
|
@ -18,7 +18,7 @@ package v1alpha2
|
|||
|
||||
import (
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
)
|
||||
|
||||
func addDefaultingFuncs(scheme *runtime.Scheme) error {
|
||||
|
|
|
@ -17,14 +17,13 @@ limitations under the License.
|
|||
package v1alpha2
|
||||
|
||||
import (
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
meta_v1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
// Federation represents a federated set of kubernetes clusters
|
||||
type Federation struct {
|
||||
meta_v1.TypeMeta `json:",inline"`
|
||||
ObjectMeta v1.ObjectMeta `json:"metadata,omitempty"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
ObjectMeta metav1.ObjectMeta `json:"metadata,omitempty"`
|
||||
|
||||
Spec FederationSpec `json:"spec,omitempty"`
|
||||
}
|
||||
|
@ -37,8 +36,8 @@ type FederationSpec struct {
|
|||
}
|
||||
|
||||
type FederationList struct {
|
||||
meta_v1.TypeMeta `json:",inline"`
|
||||
meta_v1.ListMeta `json:"metadata,omitempty"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ListMeta `json:"metadata,omitempty"`
|
||||
|
||||
Items []Federation `json:"items"`
|
||||
}
|
||||
|
|
|
@ -17,21 +17,20 @@ limitations under the License.
|
|||
package v1alpha2
|
||||
|
||||
import (
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
meta_v1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
// InstanceGroup represents a group of instances (either nodes or masters) with the same configuration
|
||||
type InstanceGroup struct {
|
||||
meta_v1.TypeMeta `json:",inline"`
|
||||
ObjectMeta v1.ObjectMeta `json:"metadata,omitempty"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
ObjectMeta metav1.ObjectMeta `json:"metadata,omitempty"`
|
||||
|
||||
Spec InstanceGroupSpec `json:"spec,omitempty"`
|
||||
}
|
||||
|
||||
type InstanceGroupList struct {
|
||||
meta_v1.TypeMeta `json:",inline"`
|
||||
meta_v1.ListMeta `json:"metadata,omitempty"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ListMeta `json:"metadata,omitempty"`
|
||||
|
||||
Items []InstanceGroup `json:"items"`
|
||||
}
|
||||
|
|
|
@ -17,9 +17,9 @@ limitations under the License.
|
|||
package v1alpha2
|
||||
|
||||
import (
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/runtime/schema"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -53,9 +53,9 @@ func addKnownTypes(scheme *runtime.Scheme) error {
|
|||
&InstanceGroupList{},
|
||||
&Federation{},
|
||||
&FederationList{},
|
||||
&v1.ListOptions{},
|
||||
)
|
||||
// ?? versionedwatch.AddToGroupVersion(scheme, SchemeGroupVersion)
|
||||
|
||||
metav1.AddToGroupVersion(scheme, SchemeGroupVersion)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -21,10 +21,9 @@ limitations under the License.
|
|||
package v1alpha2
|
||||
|
||||
import (
|
||||
conversion "k8s.io/apimachinery/pkg/conversion"
|
||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||
kops "k8s.io/kops/pkg/apis/kops"
|
||||
api "k8s.io/kubernetes/pkg/api"
|
||||
conversion "k8s.io/kubernetes/pkg/conversion"
|
||||
runtime "k8s.io/kubernetes/pkg/runtime"
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
@ -271,9 +270,6 @@ func Convert_kops_CloudConfiguration_To_v1alpha2_CloudConfiguration(in *kops.Clo
|
|||
}
|
||||
|
||||
func autoConvert_v1alpha2_Cluster_To_kops_Cluster(in *Cluster, out *kops.Cluster, s conversion.Scope) error {
|
||||
if err := api.Convert_v1_TypeMeta_To_v1_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
|
||||
return err
|
||||
}
|
||||
// TODO: Inefficient conversion - can we improve it?
|
||||
if err := s.Convert(&in.ObjectMeta, &out.ObjectMeta, 0); err != nil {
|
||||
return err
|
||||
|
@ -289,9 +285,6 @@ func Convert_v1alpha2_Cluster_To_kops_Cluster(in *Cluster, out *kops.Cluster, s
|
|||
}
|
||||
|
||||
func autoConvert_kops_Cluster_To_v1alpha2_Cluster(in *kops.Cluster, out *Cluster, s conversion.Scope) error {
|
||||
if err := api.Convert_v1_TypeMeta_To_v1_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
|
||||
return err
|
||||
}
|
||||
// TODO: Inefficient conversion - can we improve it?
|
||||
if err := s.Convert(&in.ObjectMeta, &out.ObjectMeta, 0); err != nil {
|
||||
return err
|
||||
|
@ -307,9 +300,6 @@ func Convert_kops_Cluster_To_v1alpha2_Cluster(in *kops.Cluster, out *Cluster, s
|
|||
}
|
||||
|
||||
func autoConvert_v1alpha2_ClusterList_To_kops_ClusterList(in *ClusterList, out *kops.ClusterList, s conversion.Scope) error {
|
||||
if err := api.Convert_v1_TypeMeta_To_v1_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
|
||||
return err
|
||||
}
|
||||
out.ListMeta = in.ListMeta
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
|
@ -330,9 +320,6 @@ func Convert_v1alpha2_ClusterList_To_kops_ClusterList(in *ClusterList, out *kops
|
|||
}
|
||||
|
||||
func autoConvert_kops_ClusterList_To_v1alpha2_ClusterList(in *kops.ClusterList, out *ClusterList, s conversion.Scope) error {
|
||||
if err := api.Convert_v1_TypeMeta_To_v1_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
|
||||
return err
|
||||
}
|
||||
out.ListMeta = in.ListMeta
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
|
@ -857,9 +844,6 @@ func Convert_kops_ExternalNetworkingSpec_To_v1alpha2_ExternalNetworkingSpec(in *
|
|||
}
|
||||
|
||||
func autoConvert_v1alpha2_Federation_To_kops_Federation(in *Federation, out *kops.Federation, s conversion.Scope) error {
|
||||
if err := api.Convert_v1_TypeMeta_To_v1_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
|
||||
return err
|
||||
}
|
||||
// TODO: Inefficient conversion - can we improve it?
|
||||
if err := s.Convert(&in.ObjectMeta, &out.ObjectMeta, 0); err != nil {
|
||||
return err
|
||||
|
@ -875,9 +859,6 @@ func Convert_v1alpha2_Federation_To_kops_Federation(in *Federation, out *kops.Fe
|
|||
}
|
||||
|
||||
func autoConvert_kops_Federation_To_v1alpha2_Federation(in *kops.Federation, out *Federation, s conversion.Scope) error {
|
||||
if err := api.Convert_v1_TypeMeta_To_v1_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
|
||||
return err
|
||||
}
|
||||
// TODO: Inefficient conversion - can we improve it?
|
||||
if err := s.Convert(&in.ObjectMeta, &out.ObjectMeta, 0); err != nil {
|
||||
return err
|
||||
|
@ -893,9 +874,6 @@ func Convert_kops_Federation_To_v1alpha2_Federation(in *kops.Federation, out *Fe
|
|||
}
|
||||
|
||||
func autoConvert_v1alpha2_FederationList_To_kops_FederationList(in *FederationList, out *kops.FederationList, s conversion.Scope) error {
|
||||
if err := api.Convert_v1_TypeMeta_To_v1_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
|
||||
return err
|
||||
}
|
||||
out.ListMeta = in.ListMeta
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
|
@ -916,9 +894,6 @@ func Convert_v1alpha2_FederationList_To_kops_FederationList(in *FederationList,
|
|||
}
|
||||
|
||||
func autoConvert_kops_FederationList_To_v1alpha2_FederationList(in *kops.FederationList, out *FederationList, s conversion.Scope) error {
|
||||
if err := api.Convert_v1_TypeMeta_To_v1_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
|
||||
return err
|
||||
}
|
||||
out.ListMeta = in.ListMeta
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
|
@ -977,9 +952,6 @@ func Convert_kops_FlannelNetworkingSpec_To_v1alpha2_FlannelNetworkingSpec(in *ko
|
|||
}
|
||||
|
||||
func autoConvert_v1alpha2_InstanceGroup_To_kops_InstanceGroup(in *InstanceGroup, out *kops.InstanceGroup, s conversion.Scope) error {
|
||||
if err := api.Convert_v1_TypeMeta_To_v1_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
|
||||
return err
|
||||
}
|
||||
// TODO: Inefficient conversion - can we improve it?
|
||||
if err := s.Convert(&in.ObjectMeta, &out.ObjectMeta, 0); err != nil {
|
||||
return err
|
||||
|
@ -995,9 +967,6 @@ func Convert_v1alpha2_InstanceGroup_To_kops_InstanceGroup(in *InstanceGroup, out
|
|||
}
|
||||
|
||||
func autoConvert_kops_InstanceGroup_To_v1alpha2_InstanceGroup(in *kops.InstanceGroup, out *InstanceGroup, s conversion.Scope) error {
|
||||
if err := api.Convert_v1_TypeMeta_To_v1_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
|
||||
return err
|
||||
}
|
||||
// TODO: Inefficient conversion - can we improve it?
|
||||
if err := s.Convert(&in.ObjectMeta, &out.ObjectMeta, 0); err != nil {
|
||||
return err
|
||||
|
@ -1013,9 +982,6 @@ func Convert_kops_InstanceGroup_To_v1alpha2_InstanceGroup(in *kops.InstanceGroup
|
|||
}
|
||||
|
||||
func autoConvert_v1alpha2_InstanceGroupList_To_kops_InstanceGroupList(in *InstanceGroupList, out *kops.InstanceGroupList, s conversion.Scope) error {
|
||||
if err := api.Convert_v1_TypeMeta_To_v1_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
|
||||
return err
|
||||
}
|
||||
out.ListMeta = in.ListMeta
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
|
@ -1036,9 +1002,6 @@ func Convert_v1alpha2_InstanceGroupList_To_kops_InstanceGroupList(in *InstanceGr
|
|||
}
|
||||
|
||||
func autoConvert_kops_InstanceGroupList_To_v1alpha2_InstanceGroupList(in *kops.InstanceGroupList, out *InstanceGroupList, s conversion.Scope) error {
|
||||
if err := api.Convert_v1_TypeMeta_To_v1_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
|
||||
return err
|
||||
}
|
||||
out.ListMeta = in.ListMeta
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
|
|
|
@ -21,7 +21,7 @@ limitations under the License.
|
|||
package v1alpha2
|
||||
|
||||
import (
|
||||
runtime "k8s.io/kubernetes/pkg/runtime"
|
||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||
)
|
||||
|
||||
// RegisterDefaults adds defaulters functions to the given scheme.
|
||||
|
|
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||
package validation
|
||||
|
||||
import (
|
||||
"k8s.io/kubernetes/pkg/util/validation/field"
|
||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||
"net"
|
||||
"net/url"
|
||||
)
|
||||
|
|
|
@ -19,11 +19,11 @@ package validation
|
|||
import (
|
||||
"fmt"
|
||||
"github.com/blang/semver"
|
||||
"k8s.io/apimachinery/pkg/util/validation"
|
||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/apis/kops/util"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kubernetes/pkg/util/validation"
|
||||
"k8s.io/kubernetes/pkg/util/validation/field"
|
||||
"net"
|
||||
"strings"
|
||||
)
|
||||
|
|
|
@ -18,10 +18,10 @@ package validation
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"k8s.io/apimachinery/pkg/api/validation"
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kubernetes/pkg/api/validation"
|
||||
"k8s.io/kubernetes/pkg/util/sets"
|
||||
"k8s.io/kubernetes/pkg/util/validation/field"
|
||||
"net"
|
||||
"strings"
|
||||
)
|
||||
|
|
|
@ -17,10 +17,10 @@ limitations under the License.
|
|||
package validation
|
||||
|
||||
import (
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
"k8s.io/apimachinery/pkg/util/validation"
|
||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kubernetes/pkg/util/sets"
|
||||
"k8s.io/kubernetes/pkg/util/validation"
|
||||
"k8s.io/kubernetes/pkg/util/validation/field"
|
||||
"testing"
|
||||
)
|
||||
|
||||
|
|
|
@ -17,8 +17,8 @@ limitations under the License.
|
|||
package simple
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
api "k8s.io/kops/pkg/apis/kops"
|
||||
k8sapi "k8s.io/kubernetes/pkg/api"
|
||||
)
|
||||
|
||||
// ClusterInterface has methods to work with Cluster resources.
|
||||
|
@ -29,7 +29,7 @@ type ClusterInterface interface {
|
|||
//Delete(name string, options *api.DeleteOptions) error
|
||||
//DeleteCollection(options *api.DeleteOptions, listOptions api.ListOptions) error
|
||||
Get(name string) (*api.Cluster, error)
|
||||
List(opts k8sapi.ListOptions) (*api.ClusterList, error)
|
||||
List(opts metav1.ListOptions) (*api.ClusterList, error)
|
||||
//Watch(opts k8sapi.ListOptions) (watch.Interface, error)
|
||||
//Patch(name string, pt api.PatchType, data []byte, subresources ...string) (result *api.Cluster, err error)
|
||||
//ClusterExpansion
|
||||
|
|
|
@ -17,8 +17,8 @@ limitations under the License.
|
|||
package simple
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
api "k8s.io/kops/pkg/apis/kops"
|
||||
k8sapi "k8s.io/kubernetes/pkg/api"
|
||||
)
|
||||
|
||||
// FederationInterface has methods to work with Federation resources.
|
||||
|
@ -26,10 +26,10 @@ type FederationInterface interface {
|
|||
Create(*api.Federation) (*api.Federation, error)
|
||||
Update(*api.Federation) (*api.Federation, error)
|
||||
//UpdateStatus(*api.Federation) (*api.Federation, error)
|
||||
Delete(name string, options *k8sapi.DeleteOptions) error
|
||||
Delete(name string, options *metav1.DeleteOptions) error
|
||||
//DeleteCollection(options *api.DeleteOptions, listOptions api.ListOptions) error
|
||||
Get(name string) (*api.Federation, error)
|
||||
List(opts k8sapi.ListOptions) (*api.FederationList, error)
|
||||
List(opts metav1.ListOptions) (*api.FederationList, error)
|
||||
//Watch(opts k8sapi.ListOptions) (watch.Interface, error)
|
||||
//Patch(name string, pt api.PatchType, data []byte, subresources ...string) (result *api.Federation, err error)
|
||||
//FederationExpansion
|
||||
|
|
|
@ -17,8 +17,8 @@ limitations under the License.
|
|||
package simple
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
api "k8s.io/kops/pkg/apis/kops"
|
||||
k8sapi "k8s.io/kubernetes/pkg/api"
|
||||
)
|
||||
|
||||
// InstanceGroupInterface has methods to work with InstanceGroup resources.
|
||||
|
@ -26,10 +26,10 @@ type InstanceGroupInterface interface {
|
|||
Create(*api.InstanceGroup) (*api.InstanceGroup, error)
|
||||
Update(*api.InstanceGroup) (*api.InstanceGroup, error)
|
||||
//UpdateStatus(*api.InstanceGroup) (*api.InstanceGroup, error)
|
||||
Delete(name string, options *k8sapi.DeleteOptions) error
|
||||
Delete(name string, options *metav1.DeleteOptions) error
|
||||
//DeleteCollection(options *api.DeleteOptions, listOptions api.ListOptions) error
|
||||
Get(name string) (*api.InstanceGroup, error)
|
||||
List(opts k8sapi.ListOptions) (*api.InstanceGroupList, error)
|
||||
List(opts metav1.ListOptions) (*api.InstanceGroupList, error)
|
||||
//Watch(opts k8sapi.ListOptions) (watch.Interface, error)
|
||||
//Patch(name string, pt api.PatchType, data []byte, subresources ...string) (result *api.InstanceGroup, err error)
|
||||
//InstanceGroupExpansion
|
||||
|
|
|
@ -19,14 +19,13 @@ package vfsclientset
|
|||
import (
|
||||
"fmt"
|
||||
"github.com/golang/glog"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
api "k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/apis/kops/registry"
|
||||
"k8s.io/kops/pkg/apis/kops/v1alpha1"
|
||||
"k8s.io/kops/pkg/apis/kops/validation"
|
||||
"k8s.io/kops/pkg/client/simple"
|
||||
"k8s.io/kops/util/pkg/vfs"
|
||||
k8sapi "k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
"os"
|
||||
"strings"
|
||||
"time"
|
||||
|
@ -59,7 +58,7 @@ func (c *ClusterVFS) ConfigBase(clusterName string) (vfs.Path, error) {
|
|||
return configPath, nil
|
||||
}
|
||||
|
||||
func (c *ClusterVFS) List(options k8sapi.ListOptions) (*api.ClusterList, error) {
|
||||
func (c *ClusterVFS) List(options metav1.ListOptions) (*api.ClusterList, error) {
|
||||
names, err := c.listNames()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -92,7 +91,7 @@ func (r *ClusterVFS) Create(c *api.Cluster) (*api.Cluster, error) {
|
|||
}
|
||||
|
||||
if c.ObjectMeta.CreationTimestamp.IsZero() {
|
||||
c.ObjectMeta.CreationTimestamp = v1.NewTime(time.Now().UTC())
|
||||
c.ObjectMeta.CreationTimestamp = metav1.NewTime(time.Now().UTC())
|
||||
}
|
||||
|
||||
clusterName := c.ObjectMeta.Name
|
||||
|
|
|
@ -20,13 +20,13 @@ import (
|
|||
"bytes"
|
||||
"fmt"
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
kops "k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/apis/kops/v1alpha2"
|
||||
"k8s.io/kops/util/pkg/vfs"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/runtime/schema"
|
||||
"os"
|
||||
"reflect"
|
||||
"sort"
|
||||
|
@ -44,12 +44,12 @@ type commonVFS struct {
|
|||
}
|
||||
|
||||
func (c *commonVFS) init(kind string, basePath vfs.Path, storeVersion runtime.GroupVersioner) {
|
||||
yaml, ok := runtime.SerializerInfoForMediaType(api.Codecs.SupportedMediaTypes(), "application/yaml")
|
||||
yaml, ok := runtime.SerializerInfoForMediaType(kops.Codecs.SupportedMediaTypes(), "application/yaml")
|
||||
if !ok {
|
||||
glog.Fatalf("no YAML serializer registered")
|
||||
}
|
||||
c.encoder = api.Codecs.EncoderForVersion(yaml.Serializer, storeVersion)
|
||||
c.decoder = api.Codecs.DecoderToVersion(yaml.Serializer, kops.SchemeGroupVersion)
|
||||
c.encoder = kops.Codecs.EncoderForVersion(yaml.Serializer, storeVersion)
|
||||
c.decoder = kops.Codecs.DecoderToVersion(yaml.Serializer, kops.SchemeGroupVersion)
|
||||
|
||||
c.kind = kind
|
||||
c.basePath = basePath
|
||||
|
@ -66,12 +66,12 @@ func (c *commonVFS) get(name string) (runtime.Object, error) {
|
|||
return o, nil
|
||||
}
|
||||
|
||||
func (c *commonVFS) list(items interface{}, options api.ListOptions) (interface{}, error) {
|
||||
func (c *commonVFS) list(items interface{}, options metav1.ListOptions) (interface{}, error) {
|
||||
return c.readAll(items)
|
||||
}
|
||||
|
||||
func (c *commonVFS) create(i runtime.Object) error {
|
||||
objectMeta, err := api.ObjectMetaFor(i)
|
||||
objectMeta, err := metav1.ObjectMetaFor(i)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -162,7 +162,7 @@ func (c *commonVFS) writeConfig(configPath vfs.Path, o runtime.Object, writeOpti
|
|||
}
|
||||
|
||||
func (c *commonVFS) update(i runtime.Object) error {
|
||||
objectMeta, err := api.ObjectMetaFor(i)
|
||||
objectMeta, err := metav1.ObjectMetaFor(i)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -184,7 +184,7 @@ func (c *commonVFS) update(i runtime.Object) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (c *commonVFS) delete(name string, options *api.DeleteOptions) error {
|
||||
func (c *commonVFS) delete(name string, options *metav1.DeleteOptions) error {
|
||||
p := c.basePath.Join(name)
|
||||
err := p.Remove()
|
||||
if err != nil {
|
||||
|
|
|
@ -17,10 +17,10 @@ limitations under the License.
|
|||
package vfsclientset
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
api "k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/apis/kops/v1alpha1"
|
||||
"k8s.io/kops/pkg/client/simple"
|
||||
k8sapi "k8s.io/kubernetes/pkg/api"
|
||||
)
|
||||
|
||||
type FederationVFS struct {
|
||||
|
@ -50,7 +50,7 @@ func (c *FederationVFS) Get(name string) (*api.Federation, error) {
|
|||
return o.(*api.Federation), nil
|
||||
}
|
||||
|
||||
func (c *FederationVFS) List(options k8sapi.ListOptions) (*api.FederationList, error) {
|
||||
func (c *FederationVFS) List(options metav1.ListOptions) (*api.FederationList, error) {
|
||||
list := &api.FederationList{}
|
||||
items, err := c.list(list.Items, options)
|
||||
if err != nil {
|
||||
|
@ -76,6 +76,6 @@ func (c *FederationVFS) Update(g *api.Federation) (*api.Federation, error) {
|
|||
return g, nil
|
||||
}
|
||||
|
||||
func (c *FederationVFS) Delete(name string, options *k8sapi.DeleteOptions) error {
|
||||
func (c *FederationVFS) Delete(name string, options *metav1.DeleteOptions) error {
|
||||
return c.delete(name, options)
|
||||
}
|
||||
|
|
|
@ -20,13 +20,13 @@ package vfsclientset
|
|||
import (
|
||||
"fmt"
|
||||
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
|
||||
_ "k8s.io/kops/pkg/apis/kops/install"
|
||||
_ "k8s.io/kubernetes/pkg/api/install"
|
||||
"k8s.io/kubernetes/pkg/apimachinery/registered"
|
||||
)
|
||||
|
||||
func init() {
|
||||
if missingVersions := registered.ValidateEnvRequestedVersions(); len(missingVersions) != 0 {
|
||||
if missingVersions := kops.Registry.ValidateEnvRequestedVersions(); len(missingVersions) != 0 {
|
||||
panic(fmt.Sprintf("KUBE_API_VERSIONS contains versions that are not installed: %q.", missingVersions))
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,10 +18,10 @@ package vfsclientset
|
|||
|
||||
import (
|
||||
"github.com/golang/glog"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
api "k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/apis/kops/v1alpha1"
|
||||
"k8s.io/kops/pkg/client/simple"
|
||||
k8sapi "k8s.io/kubernetes/pkg/api"
|
||||
)
|
||||
|
||||
type InstanceGroupVFS struct {
|
||||
|
@ -70,7 +70,7 @@ func (c *InstanceGroupVFS) addLabels(ig *api.InstanceGroup) {
|
|||
ig.ObjectMeta.Labels[api.LabelClusterName] = c.clusterName
|
||||
}
|
||||
|
||||
func (c *InstanceGroupVFS) List(options k8sapi.ListOptions) (*api.InstanceGroupList, error) {
|
||||
func (c *InstanceGroupVFS) List(options metav1.ListOptions) (*api.InstanceGroupList, error) {
|
||||
list := &api.InstanceGroupList{}
|
||||
items, err := c.list(list.Items, options)
|
||||
if err != nil {
|
||||
|
@ -99,6 +99,6 @@ func (c *InstanceGroupVFS) Update(g *api.InstanceGroup) (*api.InstanceGroup, err
|
|||
return g, nil
|
||||
}
|
||||
|
||||
func (c *InstanceGroupVFS) Delete(name string, options *k8sapi.DeleteOptions) error {
|
||||
func (c *InstanceGroupVFS) Delete(name string, options *metav1.DeleteOptions) error {
|
||||
return c.delete(name, options)
|
||||
}
|
||||
|
|
|
@ -18,10 +18,10 @@ package edit
|
|||
|
||||
import (
|
||||
"bytes"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/diff"
|
||||
"k8s.io/kops/upup/pkg/fi/utils"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
)
|
||||
|
||||
// HasExtraFields checks if the yaml has fields that were not mapped to the object
|
||||
|
|
|
@ -23,8 +23,8 @@ import (
|
|||
"strings"
|
||||
|
||||
"github.com/golang/glog"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/kops/upup/pkg/fi/utils"
|
||||
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
// BuildFlags builds flag arguments based on "flag" tags on the structure
|
||||
|
|
|
@ -17,9 +17,9 @@ limitations under the License.
|
|||
package flagbuilder
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
|
|
@ -22,10 +22,10 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kops/upup/pkg/fi/cloudup/awstasks"
|
||||
"k8s.io/kubernetes/pkg/util/sets"
|
||||
)
|
||||
|
||||
const LoadBalancerDefaultIdleTimeout = 5 * time.Minute
|
||||
|
|
|
@ -17,10 +17,10 @@ limitations under the License.
|
|||
package model
|
||||
|
||||
import (
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kops/upup/pkg/fi/cloudup/awstasks"
|
||||
"k8s.io/kubernetes/pkg/util/sets"
|
||||
"time"
|
||||
)
|
||||
|
||||
|
|
|
@ -19,10 +19,10 @@ package components
|
|||
import (
|
||||
"fmt"
|
||||
"github.com/blang/semver"
|
||||
"k8s.io/client-go/pkg/api/v1"
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kops/upup/pkg/fi/loader"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
)
|
||||
|
||||
// KubeAPIServerOptionsBuilder adds options for the apiserver to the model
|
||||
|
@ -67,10 +67,10 @@ func (b *KubeAPIServerOptionsBuilder) BuildOptions(o interface{}) error {
|
|||
|
||||
// We prioritize the internal IP above the hostname
|
||||
clusterSpec.KubeAPIServer.KubeletPreferredAddressTypes = []string{
|
||||
string(api.NodeInternalIP),
|
||||
string(api.NodeHostName),
|
||||
string(api.NodeExternalIP),
|
||||
string(api.NodeLegacyHostIP),
|
||||
string(v1.NodeInternalIP),
|
||||
string(v1.NodeHostName),
|
||||
string(v1.NodeExternalIP),
|
||||
string(v1.NodeLegacyHostIP),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,12 +21,12 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/golang/glog"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/apis/kops/util"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kops/upup/pkg/fi/cloudup/gce"
|
||||
"k8s.io/kops/upup/pkg/fi/loader"
|
||||
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
const (
|
||||
|
|
|
@ -17,8 +17,8 @@ limitations under the License.
|
|||
package components
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
api "k8s.io/kops/pkg/apis/kops"
|
||||
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
|
|
@ -17,8 +17,8 @@ limitations under the License.
|
|||
package model
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"testing"
|
||||
)
|
||||
|
||||
|
@ -48,7 +48,7 @@ func Test_GetELBName32(t *testing.T) {
|
|||
for _, g := range grid {
|
||||
c := &KopsModelContext{
|
||||
Cluster: &kops.Cluster{
|
||||
ObjectMeta: api.ObjectMeta{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: g.ClusterName,
|
||||
},
|
||||
},
|
||||
|
|
|
@ -18,11 +18,11 @@ package gcemodel
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/model"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kops/upup/pkg/fi/cloudup/gcetasks"
|
||||
"k8s.io/kubernetes/pkg/util/sets"
|
||||
)
|
||||
|
||||
const (
|
||||
|
|
|
@ -22,10 +22,10 @@ import (
|
|||
"strings"
|
||||
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
api "k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/util/stringorslice"
|
||||
"k8s.io/kops/util/pkg/vfs"
|
||||
"k8s.io/kubernetes/pkg/util/sets"
|
||||
)
|
||||
|
||||
const IAMPolicyDefaultVersion = "2012-10-17"
|
||||
|
|
|
@ -19,10 +19,10 @@ package model
|
|||
import (
|
||||
"fmt"
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kops/upup/pkg/fi/cloudup/awstasks"
|
||||
"k8s.io/kubernetes/pkg/util/sets"
|
||||
"strings"
|
||||
)
|
||||
|
||||
|
|
|
@ -21,10 +21,10 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
meta_v1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
k8s_clientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
|
||||
"k8s.io/kubernetes/pkg/util/wait"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/util/wait"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/pkg/api/v1"
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -42,14 +42,14 @@ const (
|
|||
// TODO: should we pool the api client connection? My initial thought is no.
|
||||
type NodeAPIAdapter struct {
|
||||
// K8s API client this sucker talks to K8s directly - not kubectl, hard api call
|
||||
client k8s_clientset.Interface
|
||||
client kubernetes.Interface
|
||||
|
||||
//TODO: convert to arg on WaitForNodeToBe
|
||||
// K8s timeout on method call
|
||||
timeout time.Duration
|
||||
}
|
||||
|
||||
func NewNodeAPIAdapter(client k8s_clientset.Interface, timeout time.Duration) (*NodeAPIAdapter, error) {
|
||||
func NewNodeAPIAdapter(client kubernetes.Interface, timeout time.Duration) (*NodeAPIAdapter, error) {
|
||||
if client == nil {
|
||||
return nil, fmt.Errorf("client not provided")
|
||||
}
|
||||
|
@ -61,8 +61,8 @@ func NewNodeAPIAdapter(client k8s_clientset.Interface, timeout time.Duration) (*
|
|||
|
||||
// GetAllNodes is a access to get all nodes from a cluster api
|
||||
func (nodeAA *NodeAPIAdapter) GetAllNodes() (nodes *v1.NodeList, err error) {
|
||||
opts := v1.ListOptions{}
|
||||
nodes, err = nodeAA.client.Core().Nodes().List(opts)
|
||||
opts := metav1.ListOptions{}
|
||||
nodes, err = nodeAA.client.CoreV1().Nodes().List(opts)
|
||||
if err != nil {
|
||||
glog.V(4).Infof("getting nodes failed for node %v", err)
|
||||
return nil, err
|
||||
|
@ -111,7 +111,7 @@ func (nodeAA *NodeAPIAdapter) WaitForNodeToBe(nodeName string, conditionType v1.
|
|||
|
||||
var cond *v1.NodeCondition
|
||||
err := wait.PollImmediate(Poll, nodeAA.timeout, func() (bool, error) {
|
||||
node, err := nodeAA.client.Core().Nodes().Get(nodeName, meta_v1.GetOptions{})
|
||||
node, err := nodeAA.client.Core().Nodes().Get(nodeName, metav1.GetOptions{})
|
||||
// FIXME this is not erroring on 500's for instance. We will keep looping
|
||||
if err != nil {
|
||||
// TODO: Check if e.g. NotFound
|
||||
|
@ -158,7 +158,7 @@ func (nodeAA *NodeAPIAdapter) waitListSchedulableNodes() (*v1.NodeList, error) {
|
|||
var nodeList *v1.NodeList
|
||||
err := wait.PollImmediate(Poll, SingleCallTimeout, func() (bool, error) {
|
||||
var err error
|
||||
nodeList, err = nodeAA.client.Core().Nodes().List(v1.ListOptions{FieldSelector: "spec.unschedulable=false"})
|
||||
nodeList, err = nodeAA.client.Core().Nodes().List(metav1.ListOptions{FieldSelector: "spec.unschedulable=false"})
|
||||
if err != nil {
|
||||
// error logging TODO
|
||||
return false, err
|
||||
|
|
|
@ -20,8 +20,9 @@ import (
|
|||
"testing"
|
||||
"time"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
"k8s.io/kubernetes/pkg/client/clientset_generated/clientset/fake"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/client-go/kubernetes/fake"
|
||||
"k8s.io/client-go/pkg/api/v1"
|
||||
)
|
||||
|
||||
//func TestBuildNodeAPIAdapter(t *testing.T) {
|
||||
|
@ -66,7 +67,7 @@ func TestWaitForNodeToBeNotReady(t *testing.T) {
|
|||
|
||||
func setupNodeAA(t *testing.T, conditions []v1.NodeCondition, nodeName string) *NodeAPIAdapter {
|
||||
node := &v1.Node{
|
||||
ObjectMeta: v1.ObjectMeta{Name: nodeName},
|
||||
ObjectMeta: metav1.ObjectMeta{Name: nodeName},
|
||||
Spec: v1.NodeSpec{Unschedulable: false},
|
||||
Status: v1.NodeStatus{Conditions: conditions},
|
||||
}
|
||||
|
|
|
@ -20,10 +20,11 @@ import (
|
|||
"fmt"
|
||||
"time"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/pkg/api/v1"
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
k8s_clientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
|
||||
)
|
||||
|
||||
// A cluster to validate
|
||||
|
@ -53,7 +54,7 @@ type ValidationNode struct {
|
|||
}
|
||||
|
||||
// ValidateCluster validate a k8s cluster with a provided instance group list
|
||||
func ValidateCluster(clusterName string, instanceGroupList *kops.InstanceGroupList, clusterKubernetesClient k8s_clientset.Interface) (*ValidationCluster, error) {
|
||||
func ValidateCluster(clusterName string, instanceGroupList *kops.InstanceGroupList, clusterKubernetesClient kubernetes.Interface) (*ValidationCluster, error) {
|
||||
var instanceGroups []*kops.InstanceGroup
|
||||
validationCluster := &ValidationCluster{}
|
||||
|
||||
|
@ -109,8 +110,8 @@ func getRoleNode(node *v1.Node) string {
|
|||
return role
|
||||
}
|
||||
|
||||
func collectComponentFailures(client k8s_clientset.Interface) (failures []string, err error) {
|
||||
componentList, err := client.CoreV1().ComponentStatuses().List(v1.ListOptions{})
|
||||
func collectComponentFailures(client kubernetes.Interface) (failures []string, err error) {
|
||||
componentList, err := client.CoreV1().ComponentStatuses().List(metav1.ListOptions{})
|
||||
if err == nil {
|
||||
for _, component := range componentList.Items {
|
||||
for _, condition := range component.Conditions {
|
||||
|
@ -123,8 +124,8 @@ func collectComponentFailures(client k8s_clientset.Interface) (failures []string
|
|||
return
|
||||
}
|
||||
|
||||
func collectPodFailures(client k8s_clientset.Interface) (failures []string, err error) {
|
||||
pods, err := client.CoreV1().Pods("kube-system").List(v1.ListOptions{})
|
||||
func collectPodFailures(client kubernetes.Interface) (failures []string, err error) {
|
||||
pods, err := client.CoreV1().Pods("kube-system").List(metav1.ListOptions{})
|
||||
if err == nil {
|
||||
for _, pod := range pods.Items {
|
||||
for _, status := range pod.Status.ContainerStatuses {
|
||||
|
|
|
@ -20,13 +20,15 @@ import (
|
|||
"fmt"
|
||||
"testing"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api/resource"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
"k8s.io/kubernetes/pkg/client/clientset_generated/clientset/fake"
|
||||
"k8s.io/apimachinery/pkg/api/resource"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/kubernetes/fake"
|
||||
"k8s.io/client-go/pkg/api/v1"
|
||||
)
|
||||
|
||||
func Test_ValidateClusterPositive(t *testing.T) {
|
||||
nodeList, err := dummyClient("true", "true").Core().Nodes().List(v1.ListOptions{})
|
||||
nodeList, err := dummyClient("true", "true").Core().Nodes().List(metav1.ListOptions{})
|
||||
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
|
@ -42,7 +44,7 @@ func Test_ValidateClusterPositive(t *testing.T) {
|
|||
}
|
||||
|
||||
func Test_ValidateClusterMasterAndNodeNotReady(t *testing.T) {
|
||||
nodeList, err := dummyClient("false", "false").Core().Nodes().List(v1.ListOptions{})
|
||||
nodeList, err := dummyClient("false", "false").Core().Nodes().List(metav1.ListOptions{})
|
||||
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
|
@ -58,7 +60,7 @@ func Test_ValidateClusterMasterAndNodeNotReady(t *testing.T) {
|
|||
}
|
||||
|
||||
func Test_ValidateClusterComponents(t *testing.T) {
|
||||
nodeList, err := dummyClient("true", "true").Core().Nodes().List(v1.ListOptions{})
|
||||
nodeList, err := dummyClient("true", "true").Core().Nodes().List(metav1.ListOptions{})
|
||||
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
|
@ -75,7 +77,7 @@ func Test_ValidateClusterComponents(t *testing.T) {
|
|||
}
|
||||
|
||||
func Test_ValidateClusterPods(t *testing.T) {
|
||||
nodeList, err := dummyClient("true", "true").Core().Nodes().List(v1.ListOptions{})
|
||||
nodeList, err := dummyClient("true", "true").Core().Nodes().List(metav1.ListOptions{})
|
||||
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
|
@ -92,7 +94,7 @@ func Test_ValidateClusterPods(t *testing.T) {
|
|||
}
|
||||
|
||||
func Test_ValidateClusterNodeNotReady(t *testing.T) {
|
||||
nodeList, err := dummyClient("true", "false").Core().Nodes().List(v1.ListOptions{})
|
||||
nodeList, err := dummyClient("true", "false").Core().Nodes().List(metav1.ListOptions{})
|
||||
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
|
@ -108,7 +110,7 @@ func Test_ValidateClusterNodeNotReady(t *testing.T) {
|
|||
}
|
||||
|
||||
func Test_ValidateClusterMastersNotEnough(t *testing.T) {
|
||||
nodeList, err := dummyClient("true", "true").Core().Nodes().List(v1.ListOptions{})
|
||||
nodeList, err := dummyClient("true", "true").Core().Nodes().List(metav1.ListOptions{})
|
||||
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
|
@ -134,7 +136,7 @@ func printDebug(validationCluster *ValidationCluster) {
|
|||
|
||||
const NODE_READY = "nodeReady"
|
||||
|
||||
func dummyClient(masterReady string, nodeReady string) *fake.Clientset {
|
||||
func dummyClient(masterReady string, nodeReady string) kubernetes.Interface {
|
||||
return fake.NewSimpleClientset(makeNodeList(
|
||||
[]map[string]string{
|
||||
{
|
||||
|
@ -158,7 +160,7 @@ func dummyNode(nodeMap map[string]string) v1.Node {
|
|||
nodeReady = v1.ConditionTrue
|
||||
}
|
||||
expectedNode := v1.Node{
|
||||
ObjectMeta: v1.ObjectMeta{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: nodeMap["name"],
|
||||
Labels: map[string]string{
|
||||
"kubernetes.io/role": nodeMap["kubernetes.io/role"],
|
||||
|
|
|
@ -19,12 +19,13 @@ package protokube
|
|||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
|
||||
_ "k8s.io/kubernetes/pkg/api/install"
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/client-go/pkg/api"
|
||||
"k8s.io/client-go/pkg/api/v1"
|
||||
|
||||
_ "k8s.io/client-go/pkg/api/install"
|
||||
)
|
||||
|
||||
func encoder() runtime.Encoder {
|
||||
|
|
|
@ -21,7 +21,7 @@ import (
|
|||
"fmt"
|
||||
"github.com/golang/glog"
|
||||
"io/ioutil"
|
||||
"k8s.io/kubernetes/pkg/api/resource"
|
||||
"k8s.io/apimachinery/pkg/api/resource"
|
||||
"os"
|
||||
"path"
|
||||
"strings"
|
||||
|
|
|
@ -18,8 +18,8 @@ package protokube
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
"k8s.io/kubernetes/pkg/util/intstr"
|
||||
"k8s.io/apimachinery/pkg/util/intstr"
|
||||
"k8s.io/client-go/pkg/api/v1"
|
||||
"strings"
|
||||
)
|
||||
|
||||
|
|
|
@ -17,12 +17,12 @@ limitations under the License.
|
|||
package protokube
|
||||
|
||||
import (
|
||||
"cloud.google.com/go/compute/metadata"
|
||||
"fmt"
|
||||
"github.com/golang/glog"
|
||||
"golang.org/x/net/context"
|
||||
"golang.org/x/oauth2/google"
|
||||
compute "google.golang.org/api/compute/v0.beta"
|
||||
"google.golang.org/cloud/compute/metadata"
|
||||
"k8s.io/kops/upup/pkg/fi/cloudup/gce"
|
||||
"net"
|
||||
"strings"
|
||||
|
|
|
@ -18,43 +18,39 @@ package protokube
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/golang/glog"
|
||||
k8s_clientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
|
||||
"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/tools/clientcmd"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type KubernetesContext struct {
|
||||
mutex sync.Mutex
|
||||
client *k8s_clientset.Clientset
|
||||
client kubernetes.Interface
|
||||
}
|
||||
|
||||
func NewKubernetesContext() *KubernetesContext {
|
||||
return &KubernetesContext{}
|
||||
}
|
||||
|
||||
func (c *KubernetesContext) KubernetesClient() (*k8s_clientset.Clientset, error) {
|
||||
func (c *KubernetesContext) KubernetesClient() (kubernetes.Interface, error) {
|
||||
c.mutex.Lock()
|
||||
defer c.mutex.Unlock()
|
||||
|
||||
if c.client == nil {
|
||||
config := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(
|
||||
clientcmd.NewDefaultClientConfigLoadingRules(),
|
||||
&clientcmd.ConfigOverrides{})
|
||||
clientConfig, err := config.ClientConfig()
|
||||
if err != nil {
|
||||
if clientcmd.IsEmptyConfig(err) {
|
||||
glog.V(2).Infof("No client config found; will use default config")
|
||||
clientConfig, err = clientcmd.DefaultClientConfig.ClientConfig()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("cannot build default kube config settings: %v", err)
|
||||
}
|
||||
} else {
|
||||
return nil, fmt.Errorf("cannot load kubecfg settings: %v", err)
|
||||
}
|
||||
loadingRules := clientcmd.NewDefaultClientConfigLoadingRules()
|
||||
loadingRules.DefaultClientConfig = &clientcmd.DefaultClientConfig
|
||||
|
||||
configOverrides := &clientcmd.ConfigOverrides{
|
||||
ClusterDefaults: clientcmd.ClusterDefaults,
|
||||
}
|
||||
|
||||
k8sClient, err := k8s_clientset.NewForConfig(clientConfig)
|
||||
kubeConfig := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(loadingRules, configOverrides)
|
||||
config, err := kubeConfig.ClientConfig()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("cannot load kubecfg settings: %v", err)
|
||||
}
|
||||
|
||||
k8sClient, err := kubernetes.NewForConfig(config)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("cannot build kube client: %v", err)
|
||||
}
|
||||
|
|
|
@ -20,9 +20,10 @@ import (
|
|||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
"k8s.io/kubernetes/pkg/labels"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
"k8s.io/client-go/pkg/api/v1"
|
||||
)
|
||||
|
||||
type nodePatch struct {
|
||||
|
@ -38,6 +39,11 @@ type nodePatchSpec struct {
|
|||
Unschedulable *bool `json:"unschedulable,omitempty"`
|
||||
}
|
||||
|
||||
// TaintsAnnotationKey represents the key of taints data (json serialized)
|
||||
// in the Annotations of a Node.
|
||||
// Note that this is for k8s <= 1.5 only
|
||||
const TaintsAnnotationKey string = "scheduler.alpha.kubernetes.io/taints"
|
||||
|
||||
// ApplyMasterTaints finds masters that have not yet been tainted, and applies the master taint
|
||||
// Once the kubelet support --taints (like --labels) this can probably go away entirely.
|
||||
// It also sets the unschedulable flag to false, so pods (with a toleration) can target the node
|
||||
|
@ -47,11 +53,11 @@ func ApplyMasterTaints(kubeContext *KubernetesContext) error {
|
|||
return err
|
||||
}
|
||||
|
||||
options := v1.ListOptions{
|
||||
options := metav1.ListOptions{
|
||||
LabelSelector: labels.SelectorFromSet(labels.Set{"kubernetes.io/role": "master"}).String(),
|
||||
}
|
||||
glog.V(2).Infof("Querying k8s for nodes with selector %q", options.LabelSelector)
|
||||
nodes, err := client.Core().Nodes().List(options)
|
||||
nodes, err := client.CoreV1().Nodes().List(options)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error querying nodes: %v", err)
|
||||
}
|
||||
|
@ -65,7 +71,7 @@ func ApplyMasterTaints(kubeContext *KubernetesContext) error {
|
|||
for i := range nodes.Items {
|
||||
node := &nodes.Items[i]
|
||||
|
||||
nodeTaintJSON := node.Annotations[v1.TaintsAnnotationKey]
|
||||
nodeTaintJSON := node.Annotations[TaintsAnnotationKey]
|
||||
if nodeTaintJSON != "" {
|
||||
if nodeTaintJSON != string(taintJSON) {
|
||||
glog.Infof("Node %q had unexpected taint: %v", node.Name, nodeTaintJSON)
|
||||
|
@ -74,7 +80,7 @@ func ApplyMasterTaints(kubeContext *KubernetesContext) error {
|
|||
}
|
||||
|
||||
nodePatchMetadata := &nodePatchMetadata{
|
||||
Annotations: map[string]string{v1.TaintsAnnotationKey: string(taintJSON)},
|
||||
Annotations: map[string]string{TaintsAnnotationKey: string(taintJSON)},
|
||||
}
|
||||
unschedulable := false
|
||||
nodePatchSpec := &nodePatchSpec{
|
||||
|
@ -91,7 +97,7 @@ func ApplyMasterTaints(kubeContext *KubernetesContext) error {
|
|||
|
||||
glog.V(2).Infof("sending patch for node %q: %q", node.Name, string(nodePatchJson))
|
||||
|
||||
_, err = client.Nodes().Patch(node.Name, api.StrategicMergePatchType, nodePatchJson)
|
||||
_, err = client.CoreV1().Nodes().Patch(node.Name, types.StrategicMergePatchType, nodePatchJson)
|
||||
if err != nil {
|
||||
// TODO: Should we keep going?
|
||||
return fmt.Errorf("error applying patch to node: %v", err)
|
||||
|
|
|
@ -19,9 +19,9 @@ package protokube
|
|||
import (
|
||||
"fmt"
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
"k8s.io/kubernetes/pkg/util/exec"
|
||||
"k8s.io/kubernetes/pkg/util/mount"
|
||||
"k8s.io/kubernetes/pkg/util/sets"
|
||||
"os"
|
||||
"sort"
|
||||
"time"
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue