Juju Charm - Glance Simplestreams Sync
Go to file
Camille Rodriguez 77fab98142 Add disco-stein bundle to gate tests
The bundle disco-stein was in the dev bundles because
a bug with the Python 3.7 syntax prevented the success of
the deployment of HA clusters. This bug is fixed, we can
reintegrate disco-stein in the gate bundles.

Other small additions:
- removing sitepackages in tox.ini to avoid test env pollution
- skip_missing_interpreters in tox.ini set to False to avoid false
positives by skipping missing interpreters.

LP Related-Bug: #1823718
Change-Id: I37308917d3bb31a7c53fce6a10addf95a85bb2b5
2019-08-30 19:37:49 +00:00
actions Update tox, requirements, add initial func tests framework 2018-04-06 22:06:49 +00:00
charmhelpers Sync charm-helpers 2019-07-16 07:06:06 +00:00
hooks Allow local hosting of product-streams 2019-08-20 15:38:39 -07:00
lib Update tox, requirements, add initial func tests framework 2018-04-06 22:06:49 +00:00
scripts Support connecting to RabbitMQ with TLS 2019-08-27 13:10:48 +02:00
templates Add ssl_ca option to enable to gss 2019-01-11 09:37:56 +00:00
tests Add disco-stein bundle to gate tests 2019-08-30 19:37:49 +00:00
unit_tests Migrate charm to Python3 2019-02-04 19:18:02 +00:00
.gitignore Update series metadata, test combos and readme 2018-04-10 14:33:49 +00:00
.gitreview OpenDev Migration Patch 2019-04-19 19:40:14 +00:00
.stestr.conf Replace ostestr with stestr in testing framework. 2019-03-07 17:11:21 -05:00
.zuul.yaml Add Python 3 Train unit tests 2019-07-30 10:16:26 -04:00
HACKING.md Add doc pointing contributors to charm-guide 2019-07-16 09:42:57 +02:00
LICENSE Relicense to Apache2 2018-05-08 12:30:29 -05:00
Makefile Tests dir no longer need copy of charmhelpers 2018-10-10 12:40:13 +00:00
README.md Add ssl_ca option to enable to gss 2019-01-11 09:37:56 +00:00
charm-helpers-hooks.yaml Sync charm helpers and enable rocky func test 2019-02-28 13:45:54 +01:00
config.yaml Add ssl_ca option to enable to gss 2019-01-11 09:37:56 +00:00
copyright Update copyright date 2018-05-08 12:37:36 -05:00
metadata.yaml Update series metadata 2019-08-19 11:50:51 -04:00
requirements.txt Update requirements 2018-10-03 11:41:11 -05:00
setup.cfg Initial baseline from bzr 2017-04-10 09:00:27 +01:00
test-requirements.txt Replace ostestr with stestr in testing framework. 2019-03-07 17:11:21 -05:00
tox.ini Add disco-stein bundle to gate tests 2019-08-30 19:37:49 +00:00

README.md

Known Issues

https://bugs.launchpad.net/charm-glance-simplestreams-sync

Overview

This charm provides a service that syncs your OpenStack cloud's available OS images in OpenStack Glance with the available images from a set of simplestreams mirrors, by default using cloud-images.ubuntu.com.

It will create a user named 'image-stream' in the 'services' tenant. If swift is enabled, glance will store its images in swift using the image-stream username.

It can optionally also store simplestreams metadata into Swift for future use by juju. If enabled, it publishes the URL for that metadata as the endpoints of a new OpenStack service called 'product-streams'. If using Swift is not enabled, the product-streams service will still exist, but nothing will respond to requests to its endpoints.

The charm installs a cron job that repeatedly checks the status of related services and begins syncing image data from your configured mirrors as soon as all services are in place.

It can be deployed at any time, and upon deploy (or changing the 'run' config setting), it will attempt to contact keystone and glance and start a sync every minute until a successful sync occurs.

Requirements

This charm requires a relation to keystone. It also requires a running glance instance, but not a direct relation to glance. It connects to glance via its endpoint as published in keystone.

Usage

juju deploy glance-simplestreams-sync [--config optional-config.yaml]
juju add-relation keystone glance-simplestreams-sync

Configuration

The charm has the following configuration variables:

run

run is a boolean that enables or disables the sync cron script. It is True by default, and changing it from False to True will schedule an immediate attempt to sync images.

use_swift

use_swift is a boolean that determines whether or not to store data in swift and publish the path to product metadata via the 'product-streams' endpoint.

NOTE Changing the value will only affect the next sync, and does not currently remove an existing product-streams service or delete potentially stale product data.

frequency

frequency is a string, and must be one of 'hourly', 'daily', 'weekly'. It controls how often the sync cron job is run - it is used to link the script into /etc/cron.$frequency.

region

region is the OpenStack region in which the product-streams endpoint will be created.

mirror_list

mirror_list is a yaml-formatted list of options to be passed to Simplestreams. It defaults to settings for downloading images from cloud-images.ubuntu.com, and is not yet tested with other mirror locations. If you have set up your own Simplestreams mirror, you should be able to set the necessary configuration values.

ssl_ca

This is used, optionally, to verify the certificates when in ssl mode for keystone and glance. This should be provided as a base64 encoded PEM certificate.