@@ -8,7 +8,11 @@ import (
8
8
"github.com/spf13/pflag"
9
9
"k8s.io/apimachinery/pkg/api/errors"
10
10
"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"
11
14
"sigs.k8s.io/controller-runtime/pkg/client"
15
+ "sigs.k8s.io/controller-runtime/pkg/client/apiutil"
12
16
"sigs.k8s.io/controller-runtime/pkg/controller"
13
17
"sigs.k8s.io/controller-runtime/pkg/event"
14
18
"sigs.k8s.io/controller-runtime/pkg/handler"
@@ -22,8 +26,10 @@ import (
22
26
"github.com/ucloud/redis-cluster-operator/pkg/config"
23
27
"github.com/ucloud/redis-cluster-operator/pkg/controller/heal"
24
28
clustermanger "github.com/ucloud/redis-cluster-operator/pkg/controller/manager"
29
+ "github.com/ucloud/redis-cluster-operator/pkg/exec"
25
30
"github.com/ucloud/redis-cluster-operator/pkg/k8sutil"
26
31
"github.com/ucloud/redis-cluster-operator/pkg/redisutil"
32
+ "github.com/ucloud/redis-cluster-operator/pkg/resources/statefulsets"
27
33
"github.com/ucloud/redis-cluster-operator/pkg/utils"
28
34
)
29
35
@@ -55,11 +61,22 @@ func FlagSet() *pflag.FlagSet {
55
61
// Add creates a new DistributedRedisCluster Controller and adds it to the Manager. The Manager will set fields on the Controller
56
62
// and Start it when the Manager is Started.
57
63
func 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 ))
59
76
}
60
77
61
78
// 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 {
63
80
reconiler := & ReconcileDistributedRedisCluster {client : mgr .GetClient (), scheme : mgr .GetScheme ()}
64
81
reconiler .statefulSetController = k8sutil .NewStatefulSetController (reconiler .client )
65
82
reconiler .serviceController = k8sutil .NewServiceController (reconiler .client )
@@ -68,6 +85,7 @@ func newReconciler(mgr manager.Manager) reconcile.Reconciler {
68
85
reconiler .crController = k8sutil .NewCRControl (reconiler .client )
69
86
reconiler .ensurer = clustermanger .NewEnsureResource (reconiler .client , log )
70
87
reconiler .checker = clustermanger .NewCheck (reconiler .client )
88
+ reconiler .execer = execer
71
89
return reconiler
72
90
}
73
91
@@ -136,6 +154,7 @@ type ReconcileDistributedRedisCluster struct {
136
154
scheme * runtime.Scheme
137
155
ensurer clustermanger.IEnsureResource
138
156
checker clustermanger.ICheck
157
+ execer exec.IExec
139
158
statefulSetController k8sutil.IStatefulSetControl
140
159
serviceController k8sutil.IServiceControl
141
160
pdbController k8sutil.IPodDisruptionBudgetControl
@@ -208,7 +227,7 @@ func (r *ReconcileDistributedRedisCluster) Reconcile(request reconcile.Request)
208
227
return reconcile.Result {RequeueAfter : requeueAfter }, nil
209
228
}
210
229
211
- password , err := getClusterPassword (r .client , instance )
230
+ password , err := statefulsets . GetClusterPassword (r .client , instance )
212
231
if err != nil {
213
232
return reconcile.Result {}, Kubernetes .Wrap (err , "getClusterPassword" )
214
233
}
0 commit comments