@@ -98,6 +98,8 @@ func NewCmdUp(name, fullName string, out, errout io.Writer, clusterAdd *cobra.Co
98
98
PortForwarding : defaultPortForwarding (),
99
99
DNSPort : openshift .DefaultDNSPort ,
100
100
101
+ ImageTemplate : variable .NewDefaultImageTemplate (),
102
+
101
103
// We pass cluster add as a command to prevent anyone from ever cheating with their wiring. You either work from flags or
102
104
// or you don't work. You cannot add glue of any sort.
103
105
ClusterAdd : clusterAdd ,
@@ -122,8 +124,9 @@ func NewCmdUp(name, fullName string, out, errout io.Writer, clusterAdd *cobra.Co
122
124
}
123
125
124
126
type ClusterUpConfig struct {
125
- Image string
126
- ImageTag string
127
+ ImageTemplate variable.ImageTemplate
128
+ ImageTag string
129
+
127
130
DockerMachine string
128
131
SkipRegistryCheck bool
129
132
PortForwarding bool
@@ -173,9 +176,9 @@ type ClusterUpConfig struct {
173
176
}
174
177
175
178
func (c * ClusterUpConfig ) Bind (flags * pflag.FlagSet ) {
176
- flags .StringVar (& c .ImageTag , "tag" , "" , "Specify the tag for OpenShift images" )
179
+ flags .StringVar (& c .ImageTag , "tag" , "" , "Specify an explicit version for OpenShift images" )
177
180
flags .MarkHidden ("tag" )
178
- flags .StringVar (& c .Image , "image" , variable . DefaultImagePrefix , "Specify the images to use for OpenShift" )
181
+ flags .StringVar (& c .ImageTemplate . Format , "image" , c . ImageTemplate . Format , "Specify the images to use for OpenShift" )
179
182
flags .BoolVar (& c .SkipRegistryCheck , "skip-registry-check" , false , "Skip Docker daemon registry check" )
180
183
flags .StringVar (& c .PublicHostname , "public-hostname" , "" , "Public hostname for OpenShift cluster" )
181
184
flags .StringVar (& c .RoutingSuffix , "routing-suffix" , "" , "Default suffix for server routes" )
@@ -237,10 +240,17 @@ func (c *ClusterUpConfig) Complete(cmd *cobra.Command, out io.Writer) error {
237
240
238
241
c .command = cmd
239
242
240
- // do some defaulting
241
- if len (c .ImageTag ) == 0 {
242
- c .ImageTag = strings .TrimRight ("v" + version .Get ().Major + "." + version .Get ().Minor , "+" )
243
- }
243
+ // ignore version tags
244
+ c .ImageTemplate .Format = variable .Expand (c .ImageTemplate .Format , func (s string ) (string , bool ) {
245
+ if s == "version" {
246
+ if len (c .ImageTag ) == 0 {
247
+ return strings .TrimRight ("v" + version .Get ().Major + "." + version .Get ().Minor , "+" ), true
248
+ }
249
+ return c .ImageTag , true
250
+ }
251
+ return "" , false
252
+ }, variable .Identity )
253
+
244
254
if len (c .BaseDir ) == 0 {
245
255
c .SpecifiedBaseDir = false
246
256
c .BaseDir = "openshift.local.clusterup"
@@ -484,8 +494,7 @@ func (c *ClusterUpConfig) Start(out io.Writer) error {
484
494
taskPrinter .Success ()
485
495
486
496
if len (c .ComponentsToEnable ) > 0 {
487
- args := append ([]string {}, "--image=" + c .Image )
488
- args = append (args , "--tag=" + c .ImageTag )
497
+ args := append ([]string {}, "--image=" + c .ImageTemplate .Format )
489
498
args = append (args , "--base-dir=" + c .BaseDir )
490
499
args = append (args , c .ComponentsToEnable ... )
491
500
@@ -814,7 +823,7 @@ func (c *ClusterUpConfig) PostClusterStartupMutations(out io.Writer) error {
814
823
}
815
824
816
825
func (c * ClusterUpConfig ) imageFormat () string {
817
- return fmt . Sprintf ( "%s-${component}:%s" , c . Image , c . ImageTag )
826
+ return c . ImageTemplate . Format
818
827
}
819
828
820
829
// Login logs into the new server and sets up a default user and project
@@ -923,7 +932,7 @@ func (c *ClusterUpConfig) DockerHelper() *dockerhelper.Helper {
923
932
}
924
933
925
934
func (c * ClusterUpConfig ) openshiftImage () string {
926
- return fmt . Sprintf ( "%s:%s" , c . Image , c . ImageTag )
935
+ return c . ImageTemplate . ExpandOrDie ( "control-plane" )
927
936
}
928
937
929
938
func (c * ClusterUpConfig ) determineAdditionalIPs (ip string ) ([]string , error ) {
0 commit comments