@@ -195,6 +195,10 @@ func createNestedEtcdStatefulSet(ctx context.Context, cli ctrlcli.Client,
195
195
}
196
196
netcdSts = stsObj
197
197
log .Info ("convert runtime object to StatefulSet." )
198
+ // icaVal := genInitialClusterArgs(1, netcd.GetName(), netcd.GetName())
199
+ // stsArgs := append(netcdSts.Spec.Template.Spec.Containers[0].Args, "--initial-cluster", icaVal)
200
+ // netcdSts.Spec.Template.Spec.Containers[0].Args = stsArgs
201
+ // log.Info("set the '--initial-cluster' opt")
198
202
199
203
defaultSvcTmpl , err := fetchTemplate (defaultServiceURL )
200
204
if err != nil {
@@ -385,6 +389,23 @@ func getOwner(netcd controlplanev1alpha4.NestedEtcd) metav1.OwnerReference {
385
389
return metav1.OwnerReference {}
386
390
}
387
391
392
+ // genInitialClusterArgs generates the values for `--inital-cluster` option of etcd based on the number of
393
+ // replicas specified in etcd StatefulSet
394
+ func genInitialClusterArgs (replicas int32 , stsName , svcName string ) (argsVal string ) {
395
+ for i := int32 (0 ); i < replicas ; i ++ {
396
+ // use 2380 as the default port for etcd peer communication
397
+ peerAddr := fmt .Sprintf ("%s-%d=https://%s-%d.%s:%d" ,
398
+ stsName , i , stsName , i , svcName , 2380 )
399
+ if i == replicas - 1 {
400
+ argsVal = argsVal + peerAddr
401
+ break
402
+ }
403
+ argsVal = argsVal + peerAddr + ","
404
+ }
405
+
406
+ return argsVal
407
+ }
408
+
388
409
// SetupWithManager sets up the controller with the Manager.
389
410
func (r * NestedEtcdReconciler ) SetupWithManager (mgr ctrl.Manager ) error {
390
411
if err := mgr .GetFieldIndexer ().IndexField (context .TODO (),
0 commit comments