mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-06 02:34:03 +00:00
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:
commit
668bedd943
@ -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",
|
||||||
|
@ -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,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -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"
|
@ -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,
|
||||||
|
@ -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)
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
|
@ -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",
|
||||||
|
Loading…
Reference in New Issue
Block a user