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
You will need Juju 2.9 to be able to run this command. Learn how to upgrade to Juju 2.9.

Platform:

Ubuntu
14.04

About

Factory preload image and installer build tool Read more


Discuss this charm

Share your thoughts on this charm with the community on discourse.

Join the discussion

Overview

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)
                    <projectid>_installer_uImage
* Installer initrd: <projectid>_installer_initramfs.gz (OR)
                    <projectid>_installer_uInitrd
* 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

Usage

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"

Configuration

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