Kolla provides production-ready containers and deployment tools for operating OpenStack clouds
Go to file
Mark Goddard 3a4374394d Ignore undefined values in customizable filter
When using the customizable filter to modify variables, if a template
overrides file is shared between multiple sets of images, it is sometimes
possible that a customised variable does not exist for a set of images.
A specific example:

My template overrides file has this:

{% set ironic_inspector_packages_append = ["python-pip"] %}

Normally I build binary/centos images.

kolla-build -t binary

Sometimes however I build a bifrost centos/source image, because bifrost
does not support binary images.

kolla-build -t source bifrost

The ironic inspector image does not define ironic_inspector_packages for
the source build, since it does not need any.

{% elif install_type == 'source' %}
    {% if base_distro in ['debian', 'ubuntu'] %}
        {% set ironic_inspector_packages = ['iptables'] %}
    {% endif %}

{{ macros.install_packages(ironic_inspector_packages |
        customizable("packages")) }}

The install_packages macro copes with the undefined variable, however
the customizable filter does not handle the base variable being
undefined if a customised example exists.

This change allows the customizable filter to ignore undefined
variables, even if they have been customised.

Change-Id: Ibe2fc91f5b6ceee8f937dd73c235128b2db525b1
Closes-Bug: #1809491
(cherry picked from commit f8d86969d0)
2018-12-27 09:12:11 +00:00
.zuul.d Increase CI image publish job to 1.5 hours 2018-09-19 08:58:33 +00:00
contrib/template-override Add related symbolic link to pass DPDK compile 2017-11-23 03:15:17 -05:00
doc/source Add debian into available distros for image building 2018-05-16 04:56:04 +00:00
docker Merge "Use dumb-init with --single-child" into stable/queens 2018-12-19 12:15:10 +00:00
etc Clean up kolla-ansible related files from Kolla 2016-12-29 04:58:44 +00:00
kolla Ignore undefined values in customizable filter 2018-12-27 09:12:11 +00:00
releasenotes Merge "Install sensu from centos-opstools" into stable/queens 2018-08-02 09:29:20 +00:00
roles Add collectd in ci to collect system information 2017-12-18 13:08:10 +08:00
specs Replace Chinese single quotes to English single quotes 2018-02-05 18:06:24 +08:00
tests Fix Oraclelinux build, disable collectd in gate 2018-12-12 17:49:17 +01:00
tools Bump storage available to Docker in CI to 25G 2018-11-29 09:44:43 +00:00
.gitignore Add bandit check to all python code 2017-07-06 15:54:58 +02:00
.gitreview Update .gitreview for stable/queens 2018-03-01 16:51:35 +00:00
.testr.conf Merge "Revert "Capture the log in default"" 2016-01-19 15:36:52 +00:00
HACKING.rst Update the documentation link for doc migration 2017-07-21 09:50:25 +00:00
LICENSE Add ASL license 2014-09-20 17:29:35 -07:00
README.rst Update the supermark for Kolla link 2018-05-16 04:52:36 +00:00
bindep.txt Make Ubuntu gate work 2016-11-03 16:07:47 +00:00
deliverables.yaml Using https instead of http 2017-02-18 15:51:51 +08:00
requirements.txt Updated from global requirements 2017-12-19 01:20:33 +00:00
setup.cfg Rearrange existing documentation to fit the new standard layout 2017-10-11 14:06:08 +08:00
setup.py Updated from global requirements 2017-03-02 11:46:10 +00:00
test-requirements.txt Updated from global requirements 2018-01-24 00:57:42 +00:00
tox.ini Temporary ignore B303 in bandit tests 2018-08-23 09:59:02 +01:00

README.rst

Team and repository tags

image

Kolla Overview

The Kolla project is a member of the OpenStack Big Tent Governance.

Kolla's mission statement is:

To provide production-ready containers and deployment tools for operating
OpenStack clouds.

Kolla provides Docker containers, Ansible playbooks to deploy OpenStack on baremetal or virtual machine, and Kubernetes templates to deploy OpenStack on Kubernetes to meet Kolla's mission.

Kolla has out of the box defaults for a working basic deployment, and also implements complete customization. This model permits operators with minimal experience to deploy OpenStack quickly and as the operator's experience grows modify the OpenStack configuration to suit the operator's exact requirements.

Getting Started

Learn about Kolla by reading the documentation online Kolla.

Get started by reading the Kolla Ansible Developer Quickstart or the Kolla Kubernetes Developer Quickstart.

The Kolla Repository

The Kolla repository is one of three deliverables of the OpenStack Kolla project. The three deliverables that make up the Kolla project are:

Deliverable Repository
kolla https://git.openstack.org/cgit/openstack/kolla
kolla-ansible https://git.openstack.org/cgit/openstack/kolla-ansible
kolla-kubernetes https://git.openstack.org/cgit/openstack/kolla-kubernetes

The Docker images <https://docs.docker.com/engine/userguide/storagedriver/ imagesandcontainers/>__ are built by the Kolla project maintainers. A detailed process for contributing to the images can be found in the image building guide.

The Kolla developers build images in the kolla namespace for every tagged release.

You can view the available images on Docker Hub or with the Docker CLI:

$ sudo docker search kolla

OpenStack services

Kolla provides images to deploy the following OpenStack projects:

Infrastructure components

Kolla provides images to deploy the following infrastructure components:

  • Ceph implementation for Cinder, Glance and Nova
  • Chrony a versatile implementation of the Network Time Protocol (NTP).
  • Collectd, InfluxDB, and Grafana for performance monitoring.
  • Elasticsearch and Kibana to search, analyze, and visualize log messages.
  • Etcd a distributed key value store that provides a reliable way to store data across a cluster of machines.
  • Fluentd as an open source data collector for unified logging layer.
  • Gnocchi A time-series storage database.
  • HAProxy and Keepalived for high availability of services and their endpoints.
  • Kafka A distributed streaming platform.
  • MariaDB and Galera Cluster for highly available MySQL databases.
  • Memcached a distributed memory object caching system.
  • MongoDB as a database back end for Ceilometer and Gnocchi.
  • Open vSwitch and Linuxbridge back ends for Neutron.
  • Linux ptp an implementation of the Precision Time Protocol (PTP) according to IEEE standard 1588 for Linux.
  • Qdrouterd as a direct messaging back end for communication between services.
  • RabbitMQ as a broker messaging back end for communication between services.
  • Telegraf as a plugin-driven server agent for collecting & reporting metrics.

Directories

  • contrib - Contains sample template override files.
  • doc - Contains documentation.
  • docker - Contains jinja2 templates for the Docker build system.
  • etc - Contains a reference etc directory structure which requires configuration of a small number of configuration variables to build docker images.
  • tests - Contains functional testing tools.
  • tools - Contains tools for interacting with the kolla repository.
  • specs - Contains the Kolla communities key arguments about architectural shifts in the code base.

Getting Involved

Need a feature? Find a bug? Let us know! Contributions are much appreciated and should follow the standard Gerrit workflow.

  • We communicate using the #openstack-kolla irc channel.
  • File bugs, blueprints, track releases, etc on Launchpad.
  • Attend weekly meetings.
  • Contribute code.

Contributors

Check out who is contributing code and contributing reviews.

Notices

Docker and the Docker logo are trademarks or registered trademarks of Docker, Inc. in the United States and/or other countries. Docker, Inc. and other parties may also have trademark rights in other terms used herein.