Skip to content

Commit d75ea99

Browse files
Use image template instead of allowing arbitary prefix
Prefixes aren't a thing, but image formats are. Required for CI.
1 parent f86f23d commit d75ea99

File tree

3 files changed

+42
-22
lines changed

3 files changed

+42
-22
lines changed

pkg/oc/bootstrap/clusteradd/cmd.go

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,9 @@ var availableComponents = map[string]func(ctx componentinstall.Context) componen
7979

8080
func NewCmdAdd(name, fullName string, out, errout io.Writer) *cobra.Command {
8181
config := &ClusterAddConfig{
82-
Out: out,
83-
ErrOut: errout,
82+
Out: out,
83+
ErrOut: errout,
84+
ImageTemplate: variable.NewDefaultImageTemplate(),
8485
}
8586
cmd := &cobra.Command{
8687
Use: name,
@@ -124,9 +125,10 @@ func (c *ClusterAddConfig) Run() error {
124125
}
125126

126127
type ClusterAddConfig struct {
128+
ImageTemplate variable.ImageTemplate
129+
ImageTag string
130+
127131
BaseDir string
128-
ImageTag string
129-
Image string
130132
ServerLogLevel int
131133
ComponentsToInstall []string
132134

@@ -146,9 +148,16 @@ func (c *ClusterAddConfig) Complete(cmd *cobra.Command) error {
146148
}
147149

148150
// do some defaulting
149-
if len(c.ImageTag) == 0 {
150-
c.ImageTag = strings.TrimRight("v"+version.Get().Major+"."+version.Get().Minor, "+")
151-
}
151+
c.ImageTemplate.Format = variable.Expand(c.ImageTemplate.Format, func(s string) (string, bool) {
152+
if s == "version" {
153+
if len(c.ImageTag) == 0 {
154+
return strings.TrimRight("v"+version.Get().Major+"."+version.Get().Minor, "+"), true
155+
}
156+
return c.ImageTag, true
157+
}
158+
return "", false
159+
}, variable.Identity)
160+
152161
if len(c.BaseDir) == 0 {
153162
c.BaseDir = "openshift.local.clusterup"
154163
}
@@ -191,19 +200,19 @@ func (c *ClusterAddConfig) Check() error {
191200
func (c *ClusterAddConfig) Bind(flags *pflag.FlagSet) {
192201
flags.StringVar(&c.ImageTag, "tag", "", "Specify the tag for OpenShift images")
193202
flags.MarkHidden("tag")
194-
flags.StringVar(&c.Image, "image", variable.DefaultImagePrefix, "Specify the images to use for OpenShift")
203+
flags.StringVar(&c.ImageTemplate.Format, "image", c.ImageTemplate.Format, "Specify the images to use for OpenShift")
195204
flags.StringVar(&c.BaseDir, "base-dir", c.BaseDir, "Directory on Docker host for cluster up configuration")
196205
flags.IntVar(&c.ServerLogLevel, "server-loglevel", 0, "Log level for OpenShift server")
197206
}
198207

199208
func (c *ClusterAddConfig) openshiftImage() string {
200-
return fmt.Sprintf("%s:%s", c.Image, c.ImageTag)
209+
return c.ImageTemplate.ExpandOrDie("control-plane")
201210
}
202211

203212
func (c *ClusterAddConfig) GetLogDir() string {
204213
return path.Join(c.BaseDir, "logs")
205214
}
206215

207216
func (c *ClusterAddConfig) imageFormat() string {
208-
return fmt.Sprintf("%s-${component}:%s", c.Image, c.ImageTag)
217+
return c.ImageTemplate.Format
209218
}

pkg/oc/bootstrap/docker/run_self_hosted.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ func (c *ClusterUpConfig) StartSelfHosted(out io.Writer) error {
120120
"NODE_CONFIG_HOST_PATH": configDirs.nodeConfigDir,
121121
"KUBEDNS_CONFIG_HOST_PATH": configDirs.kubeDNSConfigDir,
122122
"LOGLEVEL": fmt.Sprintf("%d", c.ServerLogLevel),
123+
"IMAGE": c.openshiftImage(),
123124
}
124125

125126
clientConfigBuilder, err := kclientcmd.LoadFromFile(filepath.Join(configDirs.masterConfigDir, "admin.kubeconfig"))
@@ -258,6 +259,7 @@ func (c *ClusterUpConfig) BuildConfig() (*configDirs, error) {
258259
"/path/to/master/config-dir": configLocations.masterConfigDir,
259260
"/path/to/openshift-apiserver/config-dir": configLocations.openshiftAPIServerConfigDir,
260261
"ETCD_VOLUME": "emptyDir:\n",
262+
"openshift/origin-control-plane:latest": c.openshiftImage(),
261263
}
262264
if len(c.HostDataDir) > 0 {
263265
substitutions["ETCD_VOLUME"] = `hostPath:

pkg/oc/bootstrap/docker/up.go

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,8 @@ func NewCmdUp(name, fullName string, out, errout io.Writer, clusterAdd *cobra.Co
9898
PortForwarding: defaultPortForwarding(),
9999
DNSPort: openshift.DefaultDNSPort,
100100

101+
ImageTemplate: variable.NewDefaultImageTemplate(),
102+
101103
// We pass cluster add as a command to prevent anyone from ever cheating with their wiring. You either work from flags or
102104
// or you don't work. You cannot add glue of any sort.
103105
ClusterAdd: clusterAdd,
@@ -122,8 +124,9 @@ func NewCmdUp(name, fullName string, out, errout io.Writer, clusterAdd *cobra.Co
122124
}
123125

124126
type ClusterUpConfig struct {
125-
Image string
126-
ImageTag string
127+
ImageTemplate variable.ImageTemplate
128+
ImageTag string
129+
127130
DockerMachine string
128131
SkipRegistryCheck bool
129132
PortForwarding bool
@@ -173,9 +176,9 @@ type ClusterUpConfig struct {
173176
}
174177

175178
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")
177180
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")
179182
flags.BoolVar(&c.SkipRegistryCheck, "skip-registry-check", false, "Skip Docker daemon registry check")
180183
flags.StringVar(&c.PublicHostname, "public-hostname", "", "Public hostname for OpenShift cluster")
181184
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 {
237240

238241
c.command = cmd
239242

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+
244254
if len(c.BaseDir) == 0 {
245255
c.SpecifiedBaseDir = false
246256
c.BaseDir = "openshift.local.clusterup"
@@ -484,8 +494,7 @@ func (c *ClusterUpConfig) Start(out io.Writer) error {
484494
taskPrinter.Success()
485495

486496
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)
489498
args = append(args, "--base-dir="+c.BaseDir)
490499
args = append(args, c.ComponentsToEnable...)
491500

@@ -814,7 +823,7 @@ func (c *ClusterUpConfig) PostClusterStartupMutations(out io.Writer) error {
814823
}
815824

816825
func (c *ClusterUpConfig) imageFormat() string {
817-
return fmt.Sprintf("%s-${component}:%s", c.Image, c.ImageTag)
826+
return c.ImageTemplate.Format
818827
}
819828

820829
// Login logs into the new server and sets up a default user and project
@@ -923,7 +932,7 @@ func (c *ClusterUpConfig) DockerHelper() *dockerhelper.Helper {
923932
}
924933

925934
func (c *ClusterUpConfig) openshiftImage() string {
926-
return fmt.Sprintf("%s:%s", c.Image, c.ImageTag)
935+
return c.ImageTemplate.ExpandOrDie("control-plane")
927936
}
928937

929938
func (c *ClusterUpConfig) determineAdditionalIPs(ip string) ([]string, error) {

0 commit comments

Comments
 (0)