Merge pull request #53863 from marun/fed-move-cluster

Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

fed: Move cluster generator & constants from kubectl to kubefed pkg

This will ensure the history of the federation-only files can be cheaply retained during the branch filtering that will occur for #52992.

cc: @kubernetes/sig-multicluster-pr-reviews

/sig multicluster
/area federation
/assign irfanurrehman shashidharatd
/release-note-none
This commit is contained in:
Kubernetes Submit Queue 2017-10-21 04:44:10 -07:00 committed by GitHub
commit 668bedd943
7 changed files with 40 additions and 25 deletions

View File

@ -9,6 +9,7 @@ load(
go_library( go_library(
name = "go_default_library", name = "go_default_library",
srcs = [ srcs = [
"cluster.go",
"join.go", "join.go",
"kubefed.go", "kubefed.go",
"unjoin.go", "unjoin.go",
@ -32,6 +33,7 @@ go_library(
"//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/github.com/spf13/pflag:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
@ -47,6 +49,7 @@ go_library(
go_test( go_test(
name = "go_default_test", name = "go_default_test",
srcs = [ srcs = [
"cluster_test.go",
"join_test.go", "join_test.go",
"unjoin_test.go", "unjoin_test.go",
], ],
@ -61,7 +64,6 @@ go_test(
"//pkg/api/legacyscheme:go_default_library", "//pkg/api/legacyscheme:go_default_library",
"//pkg/api/testapi:go_default_library", "//pkg/api/testapi:go_default_library",
"//pkg/apis/rbac/v1:go_default_library", "//pkg/apis/rbac/v1:go_default_library",
"//pkg/kubectl:go_default_library",
"//pkg/kubectl/cmd/testing:go_default_library", "//pkg/kubectl/cmd/testing:go_default_library",
"//pkg/kubectl/cmd/util:go_default_library", "//pkg/kubectl/cmd/util:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library",

View File

@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
package kubectl package kubefed
import ( import (
"fmt" "fmt"
@ -23,6 +23,7 @@ import (
metav1 "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"
federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1"
"k8s.io/kubernetes/pkg/kubectl"
) )
const ( const (
@ -57,15 +58,15 @@ type ClusterGeneratorV1Beta1 struct {
// Ensure it supports the generator pattern that uses parameter // Ensure it supports the generator pattern that uses parameter
// injection. // injection.
var _ Generator = &ClusterGeneratorV1Beta1{} var _ kubectl.Generator = &ClusterGeneratorV1Beta1{}
// Ensure it supports the generator pattern that uses parameters // Ensure it supports the generator pattern that uses parameters
// specified during construction. // specified during construction.
var _ StructuredGenerator = &ClusterGeneratorV1Beta1{} var _ kubectl.StructuredGenerator = &ClusterGeneratorV1Beta1{}
// Generate returns a cluster resource using the specified parameters. // Generate returns a cluster resource using the specified parameters.
func (s ClusterGeneratorV1Beta1) Generate(genericParams map[string]interface{}) (runtime.Object, error) { func (s ClusterGeneratorV1Beta1) Generate(genericParams map[string]interface{}) (runtime.Object, error) {
err := ValidateParams(s.ParamNames(), genericParams) err := kubectl.ValidateParams(s.ParamNames(), genericParams)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -89,14 +90,32 @@ func (s ClusterGeneratorV1Beta1) Generate(genericParams map[string]interface{})
// ParamNames returns the set of supported input parameters when using // ParamNames returns the set of supported input parameters when using
// the parameter injection generator pattern. // the parameter injection generator pattern.
func (s ClusterGeneratorV1Beta1) ParamNames() []GeneratorParam { func (s ClusterGeneratorV1Beta1) ParamNames() []kubectl.GeneratorParam {
return []GeneratorParam{ return []kubectl.GeneratorParam{
{"name", true}, {
{"client-cidr", false}, Name: "name",
{"server-address", true}, Required: true,
{"secret", false}, },
{"service-account-name", false}, {
{"cluster-role-name", false}, Name: "client-cidr",
Required: false,
},
{
Name: "server-address",
Required: true,
},
{
Name: "secret",
Required: false,
},
{
Name: "service-account-name",
Required: false,
},
{
Name: "cluster-role-name",
Required: false,
},
} }
} }

View File

@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
package kubectl package kubefed
import ( import (
"reflect" "reflect"

View File

@ -427,7 +427,7 @@ func clusterGenerator(clientConfig *clientcmdapi.Config, name, contextName, secr
serverAddress = strings.Join([]string{scheme, serverAddress}, "://") serverAddress = strings.Join([]string{scheme, serverAddress}, "://")
} }
generator := &kubectl.ClusterGeneratorV1Beta1{ generator := &ClusterGeneratorV1Beta1{
Name: name, Name: name,
ClientCIDR: defaultClientCIDR, ClientCIDR: defaultClientCIDR,
ServerAddress: serverAddress, ServerAddress: serverAddress,

View File

@ -41,7 +41,6 @@ import (
"k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/legacyscheme"
"k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/pkg/api/testapi"
k8srbacv1 "k8s.io/kubernetes/pkg/apis/rbac/v1" k8srbacv1 "k8s.io/kubernetes/pkg/apis/rbac/v1"
"k8s.io/kubernetes/pkg/kubectl"
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
) )
@ -595,8 +594,8 @@ func fakeCluster(clusterName, secretName, server string, isRBACAPIAvailable bool
if isRBACAPIAvailable { if isRBACAPIAvailable {
saName := serviceAccountName(clusterName) saName := serviceAccountName(clusterName)
annotations := map[string]string{ annotations := map[string]string{
kubectl.ServiceAccountNameAnnotation: saName, ServiceAccountNameAnnotation: saName,
kubectl.ClusterRoleNameAnnotation: util.ClusterRoleName(testFederationName, saName), ClusterRoleNameAnnotation: util.ClusterRoleName(testFederationName, saName),
} }
cluster.ObjectMeta.SetAnnotations(annotations) cluster.ObjectMeta.SetAnnotations(annotations)
} }

View File

@ -29,7 +29,6 @@ import (
"k8s.io/kubernetes/federation/pkg/kubefed/util" "k8s.io/kubernetes/federation/pkg/kubefed/util"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
"k8s.io/kubernetes/pkg/kubectl"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates" "k8s.io/kubernetes/pkg/kubectl/cmd/templates"
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/resource" "k8s.io/kubernetes/pkg/kubectl/resource"
@ -304,7 +303,7 @@ func removeConfigMapString(str string, toRemove string) string {
// deleteServiceAccountFromCluster removes the service account that the federation control plane uses // deleteServiceAccountFromCluster removes the service account that the federation control plane uses
// to access the cluster from the cluster that is leaving the federation. // to access the cluster from the cluster that is leaving the federation.
func deleteServiceAccountFromCluster(unjoiningClusterClientset internalclientset.Interface, cluster *federationapi.Cluster, fedSystemNamespace string) error { func deleteServiceAccountFromCluster(unjoiningClusterClientset internalclientset.Interface, cluster *federationapi.Cluster, fedSystemNamespace string) error {
serviceAccountName, ok := cluster.ObjectMeta.Annotations[kubectl.ServiceAccountNameAnnotation] serviceAccountName, ok := cluster.ObjectMeta.Annotations[ServiceAccountNameAnnotation]
if !ok { if !ok {
// If there is no service account name annotation, assume that this cluster does not have a federation control plane service account. // If there is no service account name annotation, assume that this cluster does not have a federation control plane service account.
return nil return nil
@ -315,7 +314,7 @@ func deleteServiceAccountFromCluster(unjoiningClusterClientset internalclientset
// deleteClusterRoleBindingFromCluster deletes the ClusterRole and ClusterRoleBinding from the // deleteClusterRoleBindingFromCluster deletes the ClusterRole and ClusterRoleBinding from the
// cluster that is leaving the federation. // cluster that is leaving the federation.
func deleteClusterRoleBindingFromCluster(unjoiningClusterClientset internalclientset.Interface, cluster *federationapi.Cluster) error { func deleteClusterRoleBindingFromCluster(unjoiningClusterClientset internalclientset.Interface, cluster *federationapi.Cluster) error {
clusterRoleName, ok := cluster.ObjectMeta.Annotations[kubectl.ClusterRoleNameAnnotation] clusterRoleName, ok := cluster.ObjectMeta.Annotations[ClusterRoleNameAnnotation]
if !ok { if !ok {
// If there is no cluster role name annotation, assume that this cluster does not have cluster role bindings. // If there is no cluster role name annotation, assume that this cluster does not have cluster role bindings.
return nil return nil

View File

@ -10,7 +10,6 @@ go_test(
name = "go_default_test", name = "go_default_test",
srcs = [ srcs = [
"autoscale_test.go", "autoscale_test.go",
"cluster_test.go",
"clusterrolebinding_test.go", "clusterrolebinding_test.go",
"configmap_test.go", "configmap_test.go",
"delete_test.go", "delete_test.go",
@ -36,7 +35,6 @@ go_test(
importpath = "k8s.io/kubernetes/pkg/kubectl", importpath = "k8s.io/kubernetes/pkg/kubectl",
library = ":go_default_library", library = ":go_default_library",
deps = [ deps = [
"//federation/apis/federation/v1beta1:go_default_library",
"//pkg/api:go_default_library", "//pkg/api:go_default_library",
"//pkg/api/legacyscheme:go_default_library", "//pkg/api/legacyscheme:go_default_library",
"//pkg/api/testapi:go_default_library", "//pkg/api/testapi:go_default_library",
@ -85,7 +83,6 @@ go_library(
"apply.go", "apply.go",
"autoscale.go", "autoscale.go",
"bash_comp_utils.go", "bash_comp_utils.go",
"cluster.go",
"clusterrolebinding.go", "clusterrolebinding.go",
"configmap.go", "configmap.go",
"delete.go", "delete.go",
@ -117,7 +114,6 @@ go_library(
], ],
importpath = "k8s.io/kubernetes/pkg/kubectl", importpath = "k8s.io/kubernetes/pkg/kubectl",
deps = [ deps = [
"//federation/apis/federation/v1beta1:go_default_library",
"//pkg/api:go_default_library", "//pkg/api:go_default_library",
"//pkg/api/legacyscheme:go_default_library", "//pkg/api/legacyscheme:go_default_library",
"//pkg/api/v1:go_default_library", "//pkg/api/v1:go_default_library",