Index ¦ Archives ¦ Atom

Placement Container Playground 8

I've recently made some fairly substantial changes to the container used throughout the Placement Container Playground series, so I figure an update is in order. The previous update was Playground 7.

The main changes involve the management of configuration. Throughout this process I've been trying to align myself with what are considered best practices for containers, using various blog posts, such as 12 Fractured Apps as guidance. The goal has always been a container that is as lightweight as possible, with a single responsibility, while maintaining flexibility and immutability in the same container.

To that end, the container has long had a startup.sh entrypoint that is responsible for creating a local configuration for the service based on external environment variables, and then starting the (non-configurable) uwsgi process. The changes in config mainly adjust database and authentication settings.

That's fine as far as it goes, but having a configuration file at all and having to translate environment variables into it is a bit weak. So now the server process within the container uses environment variables directly.

This required new functionality in oslo.config that I wrote and was released in version 6.7.0. That allows sourcing configuration values from the environment in a predictable way.

Doing this revealed that all the functionality for using the container with keystone was broken. This is now fixed and the README has been updated accordingly.

Also, in the interim, the placement service moved to its own repo, requiring a few other updates in the Dockerfile and the README.

The container continues to be built semi regularly on dockerhub based on when new functionality shows up in placement, and is automatically tested by placecat.

Build Status

© Chris Dent. Built using Pelican. Theme by Giulio Fidente on github.