Skip to content

Commit cbd3fc8

Browse files
committed
Add support for deploying from custom images.
(may help to mitigate #12)
1 parent b8a01c4 commit cbd3fc8

2 files changed

Lines changed: 18 additions & 5 deletions

File tree

client.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,7 @@ func (driver *Driver) resolveImage() error {
249249
}
250250

251251
driver.ImageID = image.GetID()
252+
driver.ImageType = image.GetType()
252253
driver.ImageOSType = image.GetOS().ID
253254

254255
return nil

driver.go

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ type Driver struct {
6161
// The Id of the OS image used to create the machine.
6262
ImageID string
6363

64+
// The image type (OS or Customer)
65+
ImageType compute.ImageType
66+
6467
// The operating system type (e.g. "REDHAT764", "CENTOS764", "UBUNTU1464", etc) of the OS image used to create the machine.
6568
ImageOSType string
6669

@@ -263,21 +266,30 @@ func (driver *Driver) PreCreateCheck() error {
263266
return err
264267
}
265268

266-
log.Infof("Resolving OS image '%s' in data centre '%s'...",
269+
log.Infof("Resolving image '%s' in data centre '%s'...",
267270
driver.ImageName,
268271
driver.DataCenterID,
269272
)
270-
err = driver.resolveOSImage()
273+
err = driver.resolveImage()
271274
if err != nil {
272275
return err
273276
}
274277

278+
log.Infof("Resolved %s image '%s' ('%s') in data centre '%s'.",
279+
compute.ImageTypeName(driver.ImageType),
280+
driver.ImageName,
281+
driver.ImageID,
282+
driver.DataCenterID,
283+
)
284+
275285
switch driver.ImageOSType {
276286
case "REDHAT664":
277287
case "REDHAT764":
278-
return fmt.Errorf("Image '%s' is not currently supported because the CloudControl images based on RedHat 6 and 7 are known to have problems with Docker Machine.",
279-
driver.ImageName,
280-
)
288+
if driver.ImageType == compute.ImageTypeOS {
289+
log.Warnf("Image '%s' may cause problems; the current CloudControl OS images based on RedHat 6 and 7 are known to have problems with Docker Machine (due to initial firewall configuration). If you want to use v6 / v7 of RedHat or Centos, you may want to create a custom image based on the destired OS image and ensure its firewall configuration is valid.",
290+
driver.ImageName,
291+
)
292+
}
281293
}
282294

283295
return nil

0 commit comments

Comments
 (0)