Skip to content

Commit f62c450

Browse files
author
Jeff McCormick
committed
add --ccp-image-tag command flag for pgo create cluster and pgo upgrade
1 parent 260bc50 commit f62c450

File tree

3 files changed

+47
-46
lines changed

3 files changed

+47
-46
lines changed

client/cmd/cluster.go

Lines changed: 26 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -169,43 +169,37 @@ func createCluster(args []string) {
169169

170170
func getClusterParams(name string) *tpr.PgCluster {
171171

172-
//set to internal defaults
173-
spec := tpr.PgClusterSpec{
174-
Name: name,
175-
ClusterName: name,
176-
CCP_IMAGE_TAG: "centos7-9.5-1.2.8",
177-
Port: "5432",
178-
PVC_NAME: "",
179-
PVC_SIZE: "100M",
180-
PVC_ACCESS_MODE: "ReadWriteMany",
181-
BACKUP_PATH: "",
182-
BACKUP_PVC_NAME: "",
183-
PG_MASTER_HOST: name,
184-
PG_MASTER_USER: "master",
185-
PG_MASTER_PASSWORD: "password",
186-
PG_USER: "testuser",
187-
PG_PASSWORD: "password",
188-
PG_DATABASE: "userdb",
189-
PG_ROOT_PASSWORD: "password",
190-
REPLICAS: "2",
191-
FS_GROUP: "",
192-
SUPPLEMENTAL_GROUPS: "",
193-
STRATEGY: "1",
194-
}
172+
spec := tpr.PgClusterSpec{}
173+
spec.CCP_IMAGE_TAG = viper.GetString("CLUSTER.CCP_IMAGE_TAG")
174+
if CCP_IMAGE_TAG != "" {
175+
spec.CCP_IMAGE_TAG = CCP_IMAGE_TAG
176+
log.Debug("using CCP_IMAGE_TAG from command line " + CCP_IMAGE_TAG)
177+
}
178+
spec.Name = name
179+
spec.ClusterName = name
180+
spec.Port = "5432"
181+
spec.PVC_NAME = viper.GetString("CLUSTER.PVC_NAME")
182+
spec.PVC_SIZE = "100M"
183+
spec.PVC_ACCESS_MODE = "ReadWriteMany"
184+
spec.BACKUP_PATH = ""
185+
spec.BACKUP_PVC_NAME = ""
186+
spec.PG_MASTER_HOST = name
187+
spec.PG_MASTER_USER = "master"
188+
spec.PG_MASTER_PASSWORD = viper.GetString("CLUSTER.PG_MASTER_PASSWORD")
189+
spec.PG_USER = "testuser"
190+
spec.PG_PASSWORD = viper.GetString("CLUSTER.PG_PASSWORD")
191+
spec.PG_DATABASE = "userdb"
192+
spec.PG_ROOT_PASSWORD = viper.GetString("CLUSTER.PG_ROOT_PASSWORD")
193+
spec.REPLICAS = "0"
194+
spec.FS_GROUP = ""
195+
spec.SUPPLEMENTAL_GROUPS = ""
196+
spec.STRATEGY = "1"
195197

196198
//override any values from config file
197-
str := viper.GetString("CLUSTER.CCP_IMAGE_TAG")
198-
if str != "" {
199-
spec.CCP_IMAGE_TAG = str
200-
}
201-
str = viper.GetString("CLUSTER.PORT")
199+
str := viper.GetString("CLUSTER.PORT")
202200
if str != "" {
203201
spec.Port = str
204202
}
205-
str = viper.GetString("CLUSTER.PVC_NAME")
206-
if str != "" {
207-
spec.PVC_NAME = str
208-
}
209203
str = viper.GetString("CLUSTER.PVC_SIZE")
210204
if str != "" {
211205
spec.PVC_SIZE = str
@@ -218,26 +212,14 @@ func getClusterParams(name string) *tpr.PgCluster {
218212
if str != "" {
219213
spec.PG_MASTER_USER = str
220214
}
221-
str = viper.GetString("CLUSTER.PG_MASTER_PASSWORD")
222-
if str != "" {
223-
spec.PG_MASTER_PASSWORD = str
224-
}
225215
str = viper.GetString("CLUSTER.PG_USER")
226216
if str != "" {
227217
spec.PG_USER = str
228218
}
229-
str = viper.GetString("CLUSTER.PG_PASSWORD")
230-
if str != "" {
231-
spec.PG_PASSWORD = str
232-
}
233219
str = viper.GetString("CLUSTER.PG_DATABASE")
234220
if str != "" {
235221
spec.PG_DATABASE = str
236222
}
237-
str = viper.GetString("CLUSTER.PG_ROOT_PASSWORD")
238-
if str != "" {
239-
spec.PG_ROOT_PASSWORD = str
240-
}
241223
str = viper.GetString("CLUSTER.FSGROUP")
242224
if str != "" {
243225
spec.FS_GROUP = str

client/cmd/create.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"github.com/spf13/cobra"
2222
)
2323

24+
var CCP_IMAGE_TAG string
2425
var Password string
2526
var BackupPath, BackupPVC string
2627

@@ -73,5 +74,6 @@ func init() {
7374
createClusterCmd.Flags().StringVarP(&Password, "password", "w", "", "The password to use for initial database users")
7475
createClusterCmd.Flags().StringVarP(&BackupPVC, "backup-pvc", "p", "", "The backup archive PVC to restore from")
7576
createClusterCmd.Flags().StringVarP(&BackupPath, "backup-path", "x", "", "The backup archive path to restore from")
77+
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")
7678

7779
}

client/cmd/upgrade.go

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ var upgradeCmd = &cobra.Command{
6161
func init() {
6262
RootCmd.AddCommand(upgradeCmd)
6363
upgradeCmd.Flags().StringVarP(&UpgradeType, "upgrade-type", "t", "minor", "The upgrade type to perform either minor or major, default is minor ")
64+
upgradeCmd.Flags().StringVarP(&CCP_IMAGE_TAG, "ccp-image-tag", "c", "", "The CCP_IMAGE_TAG to use for the upgrade target")
6465

6566
}
6667

@@ -262,6 +263,11 @@ func getUpgradeParams(name string) (*tpr.PgUpgrade, error) {
262263
NEW_PVC_NAME: viper.GetString("PVC_NAME"),
263264
}
264265

266+
if CCP_IMAGE_TAG != "" {
267+
log.Debug("using CCP_IMAGE_TAG from command line " + CCP_IMAGE_TAG)
268+
spec.CCP_IMAGE_TAG = CCP_IMAGE_TAG
269+
}
270+
265271
cluster := tpr.PgCluster{}
266272
err = Tprclient.Get().
267273
Resource("pgclusters").
@@ -287,14 +293,25 @@ func getUpgradeParams(name string) (*tpr.PgUpgrade, error) {
287293
return nil, err
288294
}
289295

290-
if viper.GetString("CLUSTER.CCP_IMAGE_TAG") == existingImage {
296+
var requestedMajorVersion float64
297+
298+
if CCP_IMAGE_TAG != "" {
299+
if CCP_IMAGE_TAG == existingImage {
300+
log.Error("CCP_IMAGE_TAG is the same as the cluster")
301+
log.Error("can't upgrade to the same image version")
302+
303+
return nil, errors.New("invalid image tag")
304+
}
305+
requestedMajorVersion = parseMajorVersion(CCP_IMAGE_TAG)
306+
} else if viper.GetString("CLUSTER.CCP_IMAGE_TAG") == existingImage {
291307
log.Error("CCP_IMAGE_TAG is the same as the cluster")
292308
log.Error("can't upgrade to the same image version")
293309

294310
return nil, errors.New("invalid image tag")
311+
} else {
312+
requestedMajorVersion = parseMajorVersion(viper.GetString("CLUSTER.CCP_IMAGE_TAG"))
295313
}
296314

297-
requestedMajorVersion := parseMajorVersion(viper.GetString("CLUSTER.CCP_IMAGE_TAG"))
298315
if UpgradeType == MAJOR_UPGRADE {
299316
if requestedMajorVersion == existingMajorVersion {
300317
log.Error("can't upgrade to the same major version")

0 commit comments

Comments
 (0)