mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	let scheduler use client-go's client when initilaizer leaderelection
This commit is contained in:
		@@ -28,6 +28,7 @@ import (
 | 
			
		||||
 | 
			
		||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
			
		||||
	"k8s.io/apimachinery/pkg/runtime"
 | 
			
		||||
	"k8s.io/client-go/kubernetes"
 | 
			
		||||
	v1core "k8s.io/client-go/kubernetes/typed/core/v1"
 | 
			
		||||
 | 
			
		||||
	restclient "k8s.io/client-go/rest"
 | 
			
		||||
@@ -54,10 +55,11 @@ func createRecorder(kubecli *clientset.Clientset, s *options.SchedulerServer) re
 | 
			
		||||
	return eventBroadcaster.NewRecorder(api.Scheme, clientv1.EventSource{Component: s.SchedulerName})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func createClient(s *options.SchedulerServer) (*clientset.Clientset, error) {
 | 
			
		||||
// TODO: convert scheduler to only use client-go's clientset.
 | 
			
		||||
func createClient(s *options.SchedulerServer) (*clientset.Clientset, *kubernetes.Clientset, error) {
 | 
			
		||||
	kubeconfig, err := clientcmd.BuildConfigFromFlags(s.Master, s.Kubeconfig)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, fmt.Errorf("unable to build config from flags: %v", err)
 | 
			
		||||
		return nil, nil, fmt.Errorf("unable to build config from flags: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	kubeconfig.ContentType = s.ContentType
 | 
			
		||||
@@ -67,9 +69,13 @@ func createClient(s *options.SchedulerServer) (*clientset.Clientset, error) {
 | 
			
		||||
 | 
			
		||||
	cli, err := clientset.NewForConfig(restclient.AddUserAgent(kubeconfig, "leader-election"))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, fmt.Errorf("invalid API configuration: %v", err)
 | 
			
		||||
		return nil, nil, fmt.Errorf("invalid API configuration: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
	return cli, nil
 | 
			
		||||
	clientgoCli, err := kubernetes.NewForConfig(restclient.AddUserAgent(kubeconfig, "leader-election"))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, nil, fmt.Errorf("invalid API configuration: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
	return cli, clientgoCli, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// CreateScheduler encapsulates the entire creation of a runnable scheduler.
 | 
			
		||||
 
 | 
			
		||||
@@ -65,7 +65,7 @@ through the API as necessary.`,
 | 
			
		||||
 | 
			
		||||
// Run runs the specified SchedulerServer.  This should never exit.
 | 
			
		||||
func Run(s *options.SchedulerServer) error {
 | 
			
		||||
	kubecli, err := createClient(s)
 | 
			
		||||
	kubecli, clientgoCli, err := createClient(s)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return fmt.Errorf("unable to create kube client: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
@@ -121,7 +121,7 @@ func Run(s *options.SchedulerServer) error {
 | 
			
		||||
	rl, err := resourcelock.New(s.LeaderElection.ResourceLock,
 | 
			
		||||
		s.LockObjectNamespace,
 | 
			
		||||
		s.LockObjectName,
 | 
			
		||||
		kubecli,
 | 
			
		||||
		clientgoCli,
 | 
			
		||||
		resourcelock.ResourceLockConfig{
 | 
			
		||||
			Identity:      id,
 | 
			
		||||
			EventRecorder: recorder,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user