Skip to content

Commit d680922

Browse files
author
Jeff McCormick
committed
add series flag to create cluster cmd
1 parent e832ead commit d680922

File tree

2 files changed

+45
-36
lines changed

2 files changed

+45
-36
lines changed

client/cmd/cluster.go

Lines changed: 43 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
"k8s.io/apimachinery/pkg/labels"
2626
"k8s.io/client-go/pkg/api/v1"
2727
"k8s.io/client-go/pkg/apis/extensions/v1beta1"
28+
"strconv"
2829
"time"
2930
)
3031

@@ -170,48 +171,54 @@ func createCluster(args []string) {
170171
}
171172

172173
for _, arg := range args {
173-
log.Debug("create cluster called for " + arg)
174-
result := tpr.PgCluster{}
175-
176-
// error if it already exists
177-
err = Tprclient.Get().
178-
Resource(tpr.CLUSTER_RESOURCE).
179-
Namespace(Namespace).
180-
Name(arg).
181-
Do().
182-
Into(&result)
183-
if err == nil {
184-
log.Debug("pgcluster " + arg + " was found so we will not create it")
185-
break
186-
} else if kerrors.IsNotFound(err) {
187-
log.Debug("pgcluster " + arg + " not found so we will create it")
188-
} else {
189-
log.Error("error getting pgcluster " + arg + err.Error())
190-
break
191-
}
174+
clusterName := arg
175+
for i := 0; i < Series; i++ {
176+
if Series > 1 {
177+
clusterName = arg + strconv.Itoa(i)
178+
}
179+
log.Debug("create cluster called for " + clusterName)
180+
result := tpr.PgCluster{}
181+
182+
// error if it already exists
183+
err = Tprclient.Get().
184+
Resource(tpr.CLUSTER_RESOURCE).
185+
Namespace(Namespace).
186+
Name(clusterName).
187+
Do().
188+
Into(&result)
189+
if err == nil {
190+
log.Debug("pgcluster " + clusterName + " was found so we will not create it")
191+
break
192+
} else if kerrors.IsNotFound(err) {
193+
log.Debug("pgcluster " + clusterName + " not found so we will create it")
194+
} else {
195+
log.Error("error getting pgcluster " + clusterName + err.Error())
196+
break
197+
}
192198

193-
if SecretFrom != "" {
194-
err = validateSecretFrom(SecretFrom)
195-
if err != nil {
196-
log.Error(SecretFrom + " secret was not found ")
197-
return
199+
if SecretFrom != "" {
200+
err = validateSecretFrom(SecretFrom)
201+
if err != nil {
202+
log.Error(SecretFrom + " secret was not found ")
203+
return
204+
}
198205
}
199-
}
200206

201-
// Create an instance of our TPR
202-
newInstance := getClusterParams(arg)
207+
// Create an instance of our TPR
208+
newInstance := getClusterParams(clusterName)
203209

204-
newInstance.Spec.PSW_LAST_UPDATE = time.Now()
210+
newInstance.Spec.PSW_LAST_UPDATE = time.Now()
205211

206-
err = Tprclient.Post().
207-
Resource(tpr.CLUSTER_RESOURCE).
208-
Namespace(Namespace).
209-
Body(newInstance).
210-
Do().Into(&result)
211-
if err != nil {
212-
log.Error(" in creating PgCluster instance" + err.Error())
212+
err = Tprclient.Post().
213+
Resource(tpr.CLUSTER_RESOURCE).
214+
Namespace(Namespace).
215+
Body(newInstance).
216+
Do().Into(&result)
217+
if err != nil {
218+
log.Error(" in creating PgCluster instance" + err.Error())
219+
}
220+
fmt.Println("created PgCluster " + clusterName)
213221
}
214-
fmt.Println("created PgCluster " + arg)
215222

216223
}
217224
}

client/cmd/create.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ var Password string
2626
var SecretFrom, BackupPath, BackupPVC string
2727
var PoliciesFlag, PolicyFile, PolicyURL string
2828
var NodeName string
29+
var Series int
2930

3031
// CreateCmd represents the create command
3132
var CreateCmd = &cobra.Command{
@@ -126,6 +127,7 @@ func init() {
126127
createClusterCmd.Flags().StringVarP(&BackupPath, "backup-path", "x", "", "The backup archive path to restore from")
127128
createClusterCmd.Flags().StringVarP(&PoliciesFlag, "policies", "z", "", "The policies to apply when creating a cluster, comma separated")
128129
createClusterCmd.Flags().StringVarP(&CCP_IMAGE_TAG, "ccp-image-tag", "c", "", "The CCP_IMAGE_TAG to use for cluster creation, if specified overrides the .pgo.yaml setting")
130+
createClusterCmd.Flags().IntVarP(&Series, "series", "e", 1, "The number of clusters to create in a series, defaults to 1")
129131
createPolicyCmd.Flags().StringVarP(&PolicyURL, "url", "u", "", "The url to use for adding a policy")
130132
createPolicyCmd.Flags().StringVarP(&PolicyFile, "in-file", "i", "", "The policy file path to use for adding a policy")
131133

0 commit comments

Comments
 (0)