Moving federation/v1alpha1 to federation/v1beta1

This commit is contained in:
nikhiljindal
2016-06-28 14:17:40 -07:00
parent 88b10b1dc0
commit 7fcf8daf6b
42 changed files with 482 additions and 481 deletions

View File

@@ -21,7 +21,7 @@ import (
"strings"
"github.com/golang/glog"
federation_v1alpha1 "k8s.io/kubernetes/federation/apis/federation/v1alpha1"
federation_v1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1"
"k8s.io/kubernetes/federation/pkg/federation-controller/util"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/unversioned"
@@ -44,7 +44,7 @@ type ClusterClient struct {
kubeClient *clientset.Clientset
}
func NewClusterClientSet(c *federation_v1alpha1.Cluster) (*ClusterClient, error) {
func NewClusterClientSet(c *federation_v1beta1.Cluster) (*ClusterClient, error) {
clusterConfig, err := util.BuildClusterConfig(c)
if err != nil {
return nil, err
@@ -64,35 +64,35 @@ func NewClusterClientSet(c *federation_v1alpha1.Cluster) (*ClusterClient, error)
}
// GetClusterHealthStatus gets the kubernetes cluster health status by requesting "/healthz"
func (self *ClusterClient) GetClusterHealthStatus() *federation_v1alpha1.ClusterStatus {
clusterStatus := federation_v1alpha1.ClusterStatus{}
func (self *ClusterClient) GetClusterHealthStatus() *federation_v1beta1.ClusterStatus {
clusterStatus := federation_v1beta1.ClusterStatus{}
currentTime := unversioned.Now()
newClusterReadyCondition := federation_v1alpha1.ClusterCondition{
Type: federation_v1alpha1.ClusterReady,
newClusterReadyCondition := federation_v1beta1.ClusterCondition{
Type: federation_v1beta1.ClusterReady,
Status: v1.ConditionTrue,
Reason: "ClusterReady",
Message: "/healthz responded with ok",
LastProbeTime: currentTime,
LastTransitionTime: currentTime,
}
newClusterNotReadyCondition := federation_v1alpha1.ClusterCondition{
Type: federation_v1alpha1.ClusterReady,
newClusterNotReadyCondition := federation_v1beta1.ClusterCondition{
Type: federation_v1beta1.ClusterReady,
Status: v1.ConditionFalse,
Reason: "ClusterNotReady",
Message: "/healthz responded without ok",
LastProbeTime: currentTime,
LastTransitionTime: currentTime,
}
newNodeOfflineCondition := federation_v1alpha1.ClusterCondition{
Type: federation_v1alpha1.ClusterOffline,
newNodeOfflineCondition := federation_v1beta1.ClusterCondition{
Type: federation_v1beta1.ClusterOffline,
Status: v1.ConditionTrue,
Reason: "ClusterNotReachable",
Message: "cluster is not reachable",
LastProbeTime: currentTime,
LastTransitionTime: currentTime,
}
newNodeNotOfflineCondition := federation_v1alpha1.ClusterCondition{
Type: federation_v1alpha1.ClusterOffline,
newNodeNotOfflineCondition := federation_v1beta1.ClusterCondition{
Type: federation_v1beta1.ClusterOffline,
Status: v1.ConditionFalse,
Reason: "ClusterReachable",
Message: "cluster is reachable",

View File

@@ -21,7 +21,7 @@ import (
"time"
"github.com/golang/glog"
federation_v1alpha1 "k8s.io/kubernetes/federation/apis/federation/v1alpha1"
federation_v1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1"
cluster_cache "k8s.io/kubernetes/federation/client/cache"
federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_3"
"k8s.io/kubernetes/pkg/api"
@@ -44,7 +44,7 @@ type ClusterController struct {
// clusterMonitorPeriod is the period for updating status of cluster
clusterMonitorPeriod time.Duration
// clusterClusterStatusMap is a mapping of clusterName and cluster status of last sampling
clusterClusterStatusMap map[string]federation_v1alpha1.ClusterStatus
clusterClusterStatusMap map[string]federation_v1beta1.ClusterStatus
// clusterKubeClientMap is a mapping of clusterName and restclient
clusterKubeClientMap map[string]ClusterClient
@@ -60,7 +60,7 @@ func NewclusterController(federationClient federationclientset.Interface, cluste
knownClusterSet: make(sets.String),
federationClient: federationClient,
clusterMonitorPeriod: clusterMonitorPeriod,
clusterClusterStatusMap: make(map[string]federation_v1alpha1.ClusterStatus),
clusterClusterStatusMap: make(map[string]federation_v1beta1.ClusterStatus),
clusterKubeClientMap: make(map[string]ClusterClient),
}
cc.clusterStore.Store, cc.clusterController = framework.NewInformer(
@@ -72,7 +72,7 @@ func NewclusterController(federationClient federationclientset.Interface, cluste
return cc.federationClient.Federation().Clusters().Watch(options)
},
},
&federation_v1alpha1.Cluster{},
&federation_v1beta1.Cluster{},
controller.NoResyncPeriodFunc(),
framework.ResourceEventHandlerFuncs{
DeleteFunc: cc.delFromClusterSet,
@@ -85,7 +85,7 @@ func NewclusterController(federationClient federationclientset.Interface, cluste
// delFromClusterSet delete a cluster from clusterSet and
// delete the corresponding restclient from the map clusterKubeClientMap
func (cc *ClusterController) delFromClusterSet(obj interface{}) {
cluster := obj.(*federation_v1alpha1.Cluster)
cluster := obj.(*federation_v1beta1.Cluster)
cc.knownClusterSet.Delete(cluster.Name)
delete(cc.clusterKubeClientMap, cluster.Name)
}
@@ -93,7 +93,7 @@ func (cc *ClusterController) delFromClusterSet(obj interface{}) {
// addToClusterSet insert the new cluster to clusterSet and create a corresponding
// restclient to map clusterKubeClientMap
func (cc *ClusterController) addToClusterSet(obj interface{}) {
cluster := obj.(*federation_v1alpha1.Cluster)
cluster := obj.(*federation_v1beta1.Cluster)
cc.knownClusterSet.Insert(cluster.Name)
// create the restclient of cluster
restClient, err := NewClusterClientSet(cluster)
@@ -116,7 +116,7 @@ func (cc *ClusterController) Run() {
}, cc.clusterMonitorPeriod, wait.NeverStop)
}
func (cc *ClusterController) GetClusterStatus(cluster *federation_v1alpha1.Cluster) (*federation_v1alpha1.ClusterStatus, error) {
func (cc *ClusterController) GetClusterStatus(cluster *federation_v1beta1.Cluster) (*federation_v1beta1.ClusterStatus, error) {
// just get the status of cluster, by requesting the restapi "/healthz"
clusterClient, found := cc.clusterKubeClientMap[cluster.Name]
if !found {

View File

@@ -23,7 +23,7 @@ import (
"net/http/httptest"
"testing"
federation_v1alpha1 "k8s.io/kubernetes/federation/apis/federation/v1alpha1"
federation_v1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1"
federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_3"
controller_util "k8s.io/kubernetes/federation/pkg/federation-controller/util"
"k8s.io/kubernetes/pkg/api/testapi"
@@ -35,15 +35,15 @@ import (
"k8s.io/kubernetes/pkg/util"
)
func newCluster(clusterName string, serverUrl string) *federation_v1alpha1.Cluster {
cluster := federation_v1alpha1.Cluster{
func newCluster(clusterName string, serverUrl string) *federation_v1beta1.Cluster {
cluster := federation_v1beta1.Cluster{
TypeMeta: unversioned.TypeMeta{APIVersion: testapi.Federation.GroupVersion().String()},
ObjectMeta: v1.ObjectMeta{
UID: util.NewUUID(),
Name: clusterName,
},
Spec: federation_v1alpha1.ClusterSpec{
ServerAddressByClientCIDRs: []federation_v1alpha1.ServerAddressByClientCIDR{
Spec: federation_v1beta1.ClusterSpec{
ServerAddressByClientCIDRs: []federation_v1beta1.ServerAddressByClientCIDR{
{
ClientCIDR: "0.0.0.0/0",
ServerAddress: serverUrl,
@@ -54,13 +54,13 @@ func newCluster(clusterName string, serverUrl string) *federation_v1alpha1.Clust
return &cluster
}
func newClusterList(cluster *federation_v1alpha1.Cluster) *federation_v1alpha1.ClusterList {
clusterList := federation_v1alpha1.ClusterList{
func newClusterList(cluster *federation_v1beta1.Cluster) *federation_v1beta1.ClusterList {
clusterList := federation_v1beta1.ClusterList{
TypeMeta: unversioned.TypeMeta{APIVersion: testapi.Federation.GroupVersion().String()},
ListMeta: unversioned.ListMeta{
SelfLink: "foobar",
},
Items: []federation_v1alpha1.Cluster{},
Items: []federation_v1beta1.Cluster{},
}
clusterList.Items = append(clusterList.Items, *cluster)
return &clusterList
@@ -68,7 +68,7 @@ func newClusterList(cluster *federation_v1alpha1.Cluster) *federation_v1alpha1.C
// init a fake http handler, simulate a federation apiserver, response the "DELETE" "PUT" "GET" "UPDATE"
// when "canBeGotten" is false, means that user can not get the cluster cluster from apiserver
func createHttptestFakeHandlerForFederation(clusterList *federation_v1alpha1.ClusterList, canBeGotten bool) *http.HandlerFunc {
func createHttptestFakeHandlerForFederation(clusterList *federation_v1beta1.ClusterList, canBeGotten bool) *http.HandlerFunc {
fakeHandler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
clusterListString, _ := json.Marshal(*clusterList)
w.Header().Set("Content-Type", "application/json")
@@ -126,7 +126,7 @@ func TestUpdateClusterStatusOK(t *testing.T) {
// Override KubeconfigGetterForCluster to avoid having to setup service accounts and mount files with secret tokens.
originalGetter := controller_util.KubeconfigGetterForCluster
controller_util.KubeconfigGetterForCluster = func(c *federation_v1alpha1.Cluster) clientcmd.KubeconfigGetter {
controller_util.KubeconfigGetterForCluster = func(c *federation_v1beta1.Cluster) clientcmd.KubeconfigGetter {
return func() (*clientcmdapi.Config, error) {
return &clientcmdapi.Config{}, nil
}
@@ -141,7 +141,7 @@ func TestUpdateClusterStatusOK(t *testing.T) {
if !found {
t.Errorf("Failed to Update Cluster Status")
} else {
if (clusterStatus.Conditions[1].Status != v1.ConditionFalse) || (clusterStatus.Conditions[1].Type != federation_v1alpha1.ClusterOffline) {
if (clusterStatus.Conditions[1].Status != v1.ConditionFalse) || (clusterStatus.Conditions[1].Type != federation_v1beta1.ClusterOffline) {
t.Errorf("Failed to Update Cluster Status")
}
}

View File

@@ -19,7 +19,7 @@ package service
import (
"sync"
v1alpha1 "k8s.io/kubernetes/federation/apis/federation/v1alpha1"
v1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1"
"k8s.io/kubernetes/pkg/api"
v1 "k8s.io/kubernetes/pkg/api/v1"
cache "k8s.io/kubernetes/pkg/client/cache"
@@ -38,7 +38,7 @@ import (
type clusterCache struct {
clientset *release_1_3.Clientset
cluster *v1alpha1.Cluster
cluster *v1beta1.Cluster
// A store of services, populated by the serviceController
serviceStore cache.StoreToServiceLister
// Watches changes to all services
@@ -58,7 +58,7 @@ type clusterClientCache struct {
clientMap map[string]*clusterCache
}
func (cc *clusterClientCache) startClusterLW(cluster *v1alpha1.Cluster, clusterName string) {
func (cc *clusterClientCache) startClusterLW(cluster *v1beta1.Cluster, clusterName string) {
cachedClusterClient, ok := cc.clientMap[clusterName]
// only create when no existing cachedClusterClient
if ok {
@@ -162,7 +162,7 @@ func (cc *clusterClientCache) startClusterLW(cluster *v1alpha1.Cluster, clusterN
// delFromClusterSet delete a cluster from clusterSet and
// delete the corresponding restclient from the map clusterKubeClientMap
func (cc *clusterClientCache) delFromClusterSet(obj interface{}) {
cluster, ok := obj.(*v1alpha1.Cluster)
cluster, ok := obj.(*v1beta1.Cluster)
cc.rwlock.Lock()
defer cc.rwlock.Unlock()
if ok {
@@ -181,10 +181,10 @@ func (cc *clusterClientCache) delFromClusterSet(obj interface{}) {
// addToClusterSet inserts the new cluster to clusterSet and creates a corresponding
// restclient to map clusterKubeClientMap
func (cc *clusterClientCache) addToClientMap(obj interface{}) {
cluster := obj.(*v1alpha1.Cluster)
cluster := obj.(*v1beta1.Cluster)
cc.rwlock.Lock()
defer cc.rwlock.Unlock()
cluster, ok := obj.(*v1alpha1.Cluster)
cluster, ok := obj.(*v1beta1.Cluster)
if !ok {
return
}
@@ -196,7 +196,7 @@ func (cc *clusterClientCache) addToClientMap(obj interface{}) {
}
}
func newClusterClientset(c *v1alpha1.Cluster) (*release_1_3.Clientset, error) {
func newClusterClientset(c *v1beta1.Cluster) (*release_1_3.Clientset, error) {
clusterConfig, err := util.BuildClusterConfig(c)
if clusterConfig != nil {
clientset := release_1_3.NewForConfigOrDie(restclient.AddUserAgent(clusterConfig, UserAgentName))

View File

@@ -19,7 +19,7 @@ package service
import (
"testing"
"k8s.io/kubernetes/federation/apis/federation/v1alpha1"
"k8s.io/kubernetes/federation/apis/federation/v1beta1"
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns" // Only for unit testing purposes.
v1 "k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/util/sets"
@@ -58,8 +58,8 @@ func TestProcessEndpointUpdate(t *testing.T) {
cc := clusterClientCache{
clientMap: map[string]*clusterCache{
clusterName: {
cluster: &v1alpha1.Cluster{
Status: v1alpha1.ClusterStatus{
cluster: &v1beta1.Cluster{
Status: v1beta1.ClusterStatus{
Zones: []string{"foozone"},
Region: "fooregion",
},
@@ -111,8 +111,8 @@ func TestProcessEndpointDeletion(t *testing.T) {
cc := clusterClientCache{
clientMap: map[string]*clusterCache{
clusterName: {
cluster: &v1alpha1.Cluster{
Status: v1alpha1.ClusterStatus{
cluster: &v1beta1.Cluster{
Status: v1beta1.ClusterStatus{
Zones: []string{"foozone"},
Region: "fooregion",
},

View File

@@ -24,7 +24,7 @@ import (
"reflect"
"github.com/golang/glog"
v1alpha1 "k8s.io/kubernetes/federation/apis/federation/v1alpha1"
v1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1"
federationcache "k8s.io/kubernetes/federation/client/cache"
federation_release_1_3 "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_3"
"k8s.io/kubernetes/federation/pkg/dnsprovider"
@@ -176,17 +176,17 @@ func New(federationClient federation_release_1_3.Interface, dns dnsprovider.Inte
return s.federationClient.Federation().Clusters().Watch(options)
},
},
&v1alpha1.Cluster{},
&v1beta1.Cluster{},
clusterSyncPeriod,
framework.ResourceEventHandlerFuncs{
DeleteFunc: s.clusterCache.delFromClusterSet,
AddFunc: s.clusterCache.addToClientMap,
UpdateFunc: func(old, cur interface{}) {
oldCluster, ok := old.(*v1alpha1.Cluster)
oldCluster, ok := old.(*v1beta1.Cluster)
if !ok {
return
}
curCluster, ok := cur.(*v1alpha1.Cluster)
curCluster, ok := cur.(*v1beta1.Cluster)
if !ok {
return
}
@@ -608,7 +608,7 @@ func portEqualExcludeNodePort(x, y *v1.ServicePort) bool {
return true
}
func clustersFromList(list *v1alpha1.ClusterList) []string {
func clustersFromList(list *v1beta1.ClusterList) []string {
result := []string{}
for ix := range list.Items {
result = append(result, list.Items[ix].Name)
@@ -619,7 +619,7 @@ func clustersFromList(list *v1alpha1.ClusterList) []string {
// getClusterConditionPredicate filter all clusters meet condition of
// condition.type=Ready and condition.status=true
func getClusterConditionPredicate() federationcache.ClusterConditionPredicate {
return func(cluster v1alpha1.Cluster) bool {
return func(cluster v1beta1.Cluster) bool {
// If we have no info, don't accept
if len(cluster.Status.Conditions) == 0 {
return false
@@ -627,7 +627,7 @@ func getClusterConditionPredicate() federationcache.ClusterConditionPredicate {
for _, cond := range cluster.Status.Conditions {
//We consider the cluster for load balancing only when its ClusterReady condition status
//is ConditionTrue
if cond.Type == v1alpha1.ClusterReady && cond.Status != v1.ConditionTrue {
if cond.Type == v1beta1.ClusterReady && cond.Status != v1.ConditionTrue {
glog.V(4).Infof("Ignoring cluser %v with %v condition status %v", cluster.Name, cond.Type, cond.Status)
return false
}

View File

@@ -20,7 +20,7 @@ import (
"sync"
"testing"
"k8s.io/kubernetes/federation/apis/federation/v1alpha1"
"k8s.io/kubernetes/federation/apis/federation/v1beta1"
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns" // Only for unit testing purposes.
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/util/sets"
@@ -39,22 +39,22 @@ func TestGetClusterConditionPredicate(t *testing.T) {
}
tests := []struct {
cluster v1alpha1.Cluster
cluster v1beta1.Cluster
expectAccept bool
name string
serviceController *ServiceController
}{
{
cluster: v1alpha1.Cluster{},
cluster: v1beta1.Cluster{},
expectAccept: false,
name: "empty",
serviceController: &serviceController,
},
{
cluster: v1alpha1.Cluster{
Status: v1alpha1.ClusterStatus{
Conditions: []v1alpha1.ClusterCondition{
{Type: v1alpha1.ClusterReady, Status: v1.ConditionTrue},
cluster: v1beta1.Cluster{
Status: v1beta1.ClusterStatus{
Conditions: []v1beta1.ClusterCondition{
{Type: v1beta1.ClusterReady, Status: v1.ConditionTrue},
},
},
},
@@ -63,10 +63,10 @@ func TestGetClusterConditionPredicate(t *testing.T) {
serviceController: &serviceController,
},
{
cluster: v1alpha1.Cluster{
Status: v1alpha1.ClusterStatus{
Conditions: []v1alpha1.ClusterCondition{
{Type: v1alpha1.ClusterReady, Status: v1.ConditionFalse},
cluster: v1beta1.Cluster{
Status: v1beta1.ClusterStatus{
Conditions: []v1beta1.ClusterCondition{
{Type: v1beta1.ClusterReady, Status: v1.ConditionFalse},
},
},
},

View File

@@ -23,7 +23,7 @@ import (
"time"
"github.com/golang/glog"
federation_v1alpha1 "k8s.io/kubernetes/federation/apis/federation/v1alpha1"
federation_v1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/client/restclient"
client "k8s.io/kubernetes/pkg/client/unversioned"
@@ -40,7 +40,7 @@ const (
getSecretTimeout = 1 * time.Minute
)
func BuildClusterConfig(c *federation_v1alpha1.Cluster) (*restclient.Config, error) {
func BuildClusterConfig(c *federation_v1beta1.Cluster) (*restclient.Config, error) {
var serverAddress string
var clusterConfig *restclient.Config
hostIP, err := utilnet.ChooseHostInterface()
@@ -78,7 +78,7 @@ func BuildClusterConfig(c *federation_v1alpha1.Cluster) (*restclient.Config, err
// This is to inject a different kubeconfigGetter in tests.
// We dont use the standard one which calls NewInCluster in tests to avoid having to setup service accounts and mount files with secret tokens.
var KubeconfigGetterForCluster = func(c *federation_v1alpha1.Cluster) clientcmd.KubeconfigGetter {
var KubeconfigGetterForCluster = func(c *federation_v1beta1.Cluster) clientcmd.KubeconfigGetter {
return func() (*clientcmdapi.Config, error) {
secretRefName := ""
if c.Spec.SecretRef != nil {