Ce Hyperscale Build Image

  • By CE Hyperscale
Channel Version Revision Published Runs on
latest/stable 2 2 18 Mar 2021
Ubuntu 14.04
latest/edge 2 2 18 Mar 2021
Ubuntu 14.04
juju deploy ce-hyperscale-build-image
Show information




build-image is a tool that can be used to build custom install images and an installer based on curtin (fast path installer). The tool takes build instructions from in the form of a yaml file, and the resulting build artifacts are uploaded to a swift container and exposed as http://hyperscale-images.canonical.com///

At present the build tool support building custom images and installer for

  • arch: arm64: HP Prolient m400 server cartridge
  • arch: amd64: HP Prolient Scott cartridge
  • arch: any: Any platform with a custom config

Build artifacts: A local copy of the build artifacts can be found under /srv/ on the build machine. If you provided your swift creadentials, it will be uploaded to your swift container.

* Install image: <projectid>_<arch>-<date>.tar.gz
* Installer kernel: <projectid>_installer_vmlinuz (OR)
* Installer initrd: <projectid>_installer_initramfs.gz (OR)
* Installer rootfs: <projectid>_installer_rootfs.gz

How to use build artifacts: Reference: http://goo.gl/rXDuhG Copy installer kernel and installer initrd to: /var/lib/tftpboot/ copy installer roofs and install image to: /var/www/ Set up target machine to pxe boot from above TFTP server.

Example pxelinux.cfg: DEFAULT slayton-factory LABEL slayton-factory KERNEL manjo/slayton/factory/slayton_installer_vmlinuz INITRD manjo/slayton/factory/slayton_installer_initramfs.gz APPEND console=ttyS0,9600n8 $args_all $args_vendor root=/dev/sda2 rootdelay=8 factoryinstaller=http:///manjo/slayton/factory/slayton_installer_rootfs.gz factoryimg=http:///manjo/slayton/factory/slayton_armhf-20141201.tar.gz earlyprintk


Step by step instructions on using the charm:

juju bootstrap --debug --constraints "arch=amd64"
juju deploy local:trusty/build-image --constraints "arch=amd64 mem=4096"


To build images you will need to set the following configuration option

swift-novarc - Swift upload credentials. Set to $(cat <path>/<swift novarc>)
project-config - set to default for default config. Or for custom build config set to $(cat <path>/<config.yaml>)

Example to set the option: Juju currently has a limitation that you have to juju set empty strings to clear config settings. juju set build-image swift-novarc="" project-config=""

Build project with default config:
Default built config yamls can be found under build-image/files/config/build-XXX.yaml
juju set build-image swift-novarc="$(cat <path>/<swift novarc>" project-config=build-slayton.yaml

Build project with custom build config:
To create a custom build config use build-image/files/config/build-slayton.yaml as your template
juju set build-image swift-novarc="$(cat <path>/<swift novarc>" project-config="$(cat <path>/<custom build config>)"

Build different project or rebuild
First clear the config settings:
juju set build-image swift-novarc="" project-config=""

Then set the options for your build:
juju set build-image swift-novarc="$(cat <path>/<swift novarc>" project-config=build-lomond.yaml

Contact Information

Manoj Iyer manoj.iyer@canonical.com