7e38f85724
The `diskimage-builder` command provides a yaml file based interface to `disk-image-create` and `ramdisk-image-create`. Every argument to these scripts has a YAML equivalent. The command has the following features: - Environment values can be provided from the calling environment as well as YAML - All arguments are validated with jsonschema in the most appropriate YAML type - Schema is self-documenting and printed when running with --help - Multiple YAML files can be specified and each file can have multiple images defined - Entries with duplicate image names will be merged into a single image build, with attributes overwritten, elements appended, and environment values updated/overwritten. A missing image name implies the same image name as the previous entry. - --dry-run and --stop-on-failure flags A simple YAML defintion would resemble: - imagename: centos-minimal checksum: true install-type: package elements: [centos, vm] - imagename: ironic-python-agent elements: - ironic-python-agent-ramdisk - extra-hardware The TripleO project has managed image build options with YAML files and it has proved useful having git history and a diff friendly format, specifically for the following situations: - Managing differences between distros (centos, rhel) - Managing changes in major distro releases (centos-8, centos-9-stream) - Managing the python2 to python3 transition, within and across major distro releases Now that the TripleO toolchain is being retired this tool is being proposed to be used for the image builds of TripleO's successor, as well as the rest of the community. Subsequent commits will add documentation and switch some tests to using `diskimage-builder`. Change-Id: I95cba3530d1b1c6c52cf547338762e33738f7225 |
||
---|---|---|
.zuul.d | ||
bin | ||
diskimage_builder | ||
doc | ||
playbooks | ||
releasenotes | ||
roles | ||
tests | ||
.gitignore | ||
.gitreview | ||
.stestr.conf | ||
bindep.txt | ||
LICENSE | ||
lower-constraints.txt | ||
pylint.cfg | ||
README.rst | ||
requirements.txt | ||
setup.cfg | ||
setup.py | ||
test-requirements.txt | ||
tox.ini |
Image building tools for OpenStack ================================== ``diskimage-builder`` is a flexible suite of components for building a wide-range of disk images, filesystem images and ramdisk images for use with OpenStack. This repository has the core functionality for building such images, both virtual and bare metal. Images are composed using `elements`; while fundamental elements are provided here, individual projects have the flexibility to customise the image build with their own elements. For example:: $ DIB_RELEASE=bionic disk-image-create -o ubuntu-bionic.qcow2 vm ubuntu will create a bootable Ubuntu Bionic based ``qcow2`` image. ``diskimage-builder`` is useful to anyone looking to produce customised images for deployment into clouds. These tools are the components of `TripleO <https://wiki.openstack.org/wiki/TripleO>`__ that are responsible for building disk images. They are also used extensively to build images for testing OpenStack itself, particularly with `nodepool <https://docs.openstack.org/infra/system-config/nodepool.html>`__. Platforms supported include Ubuntu, CentOS, RHEL and Fedora. Full documentation, the source of which is in ``doc/source/``, is published at: * https://docs.openstack.org/diskimage-builder/latest/ Copyright ========= Copyright 2012 Hewlett-Packard Development Company, L.P. Copyright (c) 2012 NTT DOCOMO, INC. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.