@@ -8,7 +8,11 @@ import (
88 "github.com/spf13/pflag"
99 "k8s.io/apimachinery/pkg/api/errors"
1010 "k8s.io/apimachinery/pkg/runtime"
11+ runtimeschema "k8s.io/apimachinery/pkg/runtime/schema"
12+ "k8s.io/apimachinery/pkg/runtime/serializer"
13+ "k8s.io/client-go/kubernetes/scheme"
1114 "sigs.k8s.io/controller-runtime/pkg/client"
15+ "sigs.k8s.io/controller-runtime/pkg/client/apiutil"
1216 "sigs.k8s.io/controller-runtime/pkg/controller"
1317 "sigs.k8s.io/controller-runtime/pkg/event"
1418 "sigs.k8s.io/controller-runtime/pkg/handler"
@@ -22,8 +26,10 @@ import (
2226 "github.com/ucloud/redis-cluster-operator/pkg/config"
2327 "github.com/ucloud/redis-cluster-operator/pkg/controller/heal"
2428 clustermanger "github.com/ucloud/redis-cluster-operator/pkg/controller/manager"
29+ "github.com/ucloud/redis-cluster-operator/pkg/exec"
2530 "github.com/ucloud/redis-cluster-operator/pkg/k8sutil"
2631 "github.com/ucloud/redis-cluster-operator/pkg/redisutil"
32+ "github.com/ucloud/redis-cluster-operator/pkg/resources/statefulsets"
2733 "github.com/ucloud/redis-cluster-operator/pkg/utils"
2834)
2935
@@ -55,11 +61,22 @@ func FlagSet() *pflag.FlagSet {
5561// Add creates a new DistributedRedisCluster Controller and adds it to the Manager. The Manager will set fields on the Controller
5662// and Start it when the Manager is Started.
5763func Add (mgr manager.Manager ) error {
58- return add (mgr , newReconciler (mgr ))
64+ gvk := runtimeschema.GroupVersionKind {
65+ Group : "" ,
66+ Version : "v1" ,
67+ Kind : "Pod" ,
68+ }
69+ restClient , err := apiutil .RESTClientForGVK (gvk , mgr .GetConfig (), serializer .NewCodecFactory (scheme .Scheme ))
70+ if err != nil {
71+ return err
72+ }
73+ execer := exec .NewRemoteExec (restClient , mgr .GetConfig (), log )
74+
75+ return add (mgr , newReconciler (mgr , execer ))
5976}
6077
6178// newReconciler returns a new reconcile.Reconciler
62- func newReconciler (mgr manager.Manager ) reconcile.Reconciler {
79+ func newReconciler (mgr manager.Manager , execer exec. IExec ) reconcile.Reconciler {
6380 reconiler := & ReconcileDistributedRedisCluster {client : mgr .GetClient (), scheme : mgr .GetScheme ()}
6481 reconiler .statefulSetController = k8sutil .NewStatefulSetController (reconiler .client )
6582 reconiler .serviceController = k8sutil .NewServiceController (reconiler .client )
@@ -68,6 +85,7 @@ func newReconciler(mgr manager.Manager) reconcile.Reconciler {
6885 reconiler .crController = k8sutil .NewCRControl (reconiler .client )
6986 reconiler .ensurer = clustermanger .NewEnsureResource (reconiler .client , log )
7087 reconiler .checker = clustermanger .NewCheck (reconiler .client )
88+ reconiler .execer = execer
7189 return reconiler
7290}
7391
@@ -136,6 +154,7 @@ type ReconcileDistributedRedisCluster struct {
136154 scheme * runtime.Scheme
137155 ensurer clustermanger.IEnsureResource
138156 checker clustermanger.ICheck
157+ execer exec.IExec
139158 statefulSetController k8sutil.IStatefulSetControl
140159 serviceController k8sutil.IServiceControl
141160 pdbController k8sutil.IPodDisruptionBudgetControl
@@ -208,7 +227,7 @@ func (r *ReconcileDistributedRedisCluster) Reconcile(request reconcile.Request)
208227 return reconcile.Result {RequeueAfter : requeueAfter }, nil
209228 }
210229
211- password , err := getClusterPassword (r .client , instance )
230+ password , err := statefulsets . GetClusterPassword (r .client , instance )
212231 if err != nil {
213232 return reconcile.Result {}, Kubernetes .Wrap (err , "getClusterPassword" )
214233 }
0 commit comments