Remove pylxd before 2.2.7
Any pylxd version before 2.2.7 fails to build now that urllib3 1.25 is out. This removes them, and therefore allows us to build requirements for older openstack branches than Rocky. See also https://review.opendev.org/#/c/655498/ Change-Id: I632f648f59020a2010ffe05f59ca634461752997
|3 weeks ago|
|.zuul.d||6 months ago|
|dockerfiles||4 months ago|
|playbooks||3 weeks ago|
|scripts||3 weeks ago|
|.gitreview||1 month ago|
|Dockerfile||3 weeks ago|
|README.md||3 weeks ago|
|bindep.txt||2 months ago|
|pydep.txt||2 months ago|
OpenStack LOCI is a project designed to quickly build Lightweight OCI compatible images of OpenStack services.
Currently we build and gate images for the following OpenStack projects:
Additionally, we produce a “wheels” image for requirements containing all of the packages listed in upper-constraints.txt.
The instructions below can be used for any OpenStack service currently targeted by LOCI. For simplicity, we will continue to use Keystone as an example.
Note: To build locally, you will need a version of docker >= 17.05.0.
It’s really easy to build images locally:
$ docker build https://opendev.org/openstack/loci.git --build-arg PROJECT=keystone \ --tag keystone:ubuntu
The default base distro is Ubuntu, however, you can use the following form to build from a distro of your choice, in this case, CentOS:
$ docker build https://opendev.org/openstack/loci.git \ --build-arg PROJECT=keystone \ --build-arg WHEELS="loci/requirements:master-centos" \ --build-arg FROM=centos:7 \ --tag keystone:centos
If building behind a proxy, remember to use build arguments to pass these through to the build:
$ docker build https://opendev.org/openstack/loci.git \ --build-arg http_proxy=$http_proxy \ --build-arg https_proxy=$https_proxy \ --build-arg no_proxy=$no_proxy \ --build-arg PROJECT=keystone \ --tag keystone:ubuntu
For more advanced building you can use docker build arguments to define:
FROMThe base Docker image to build from. Currently supported are
opensuse/leap:15, or a base image derived from one of those distributions. Dockerfiles to bootstrap the base images can be found in the
dockerfilesdirectory, and are a good starting point for customizing a base image.
PROJECTThe name of the project to install.
PROJECT_REPOThe git repo containing the OpenStack project the container should contain
PROJECT_REFThe git ref, branch, or tag the container should fetch for the project
UIDThe uid of the user that will be created (defaults to 42424).
GIDThe gid of the group that will be created (default to 42424).
WHEELSThe location of the wheels tarball. This accepts a url to a tarball or a Docker image name in the form of
DISTROThis is a helper variable used for scripts. It would primarily be used in situations where the script would not detect the correct distro. For example, you would set
DISTRO=centoswhen running from an oraclelinux base image.
PROFILESThe bindep profiles to specify to configure which packages get installed. This is a space separated list.
PIP_PACKAGESSpecify additional python packages you would like installed. The only caveat is these packages must exist in WHEELS form. So if you wanted to include rpdb, you would need to have built that into your WHEELS.
PIP_ARGSSpecify additional pip parameters you would like.
PIP_WHEEL_ARGSSpecify additional pip wheel parameters you would like. Default is PIP_ARGS.
DIST_PACKAGESSpecify additional distribution packages you would like installed.
EXTRA_BINDEPSpecify a bindep-* file to add in the container. It would be considered next to the default bindep.txt.
EXTRA_PYDEPSpecify a pydep-* file to add in the container. It would be considered next to the default pydep.txt.
REGISTRY_PROTOCOLSet this to
httpsif you are running your own registry on https,
httpif you are running on http, or leave it as
detectif you want to re-use existing protocol detection.
REGISTRY_INSECURESet this to
Trueif your image registry is running on HTTPS with self-signed certificates to ignore SSL verification. (defaults to False)
This makes it really easy to integrate LOCI images into your development or CI/CD workflow, for example, if you wanted to build an image from this PS you could run:
$ docker build https://opendev.org/openstack/loci.git \ --build-arg PROJECT=keystone \ --tag mydockernamespace/keystone-testing:418167-1 \ --build-arg PROJECT_REF=refs/changes/67/418167/1
To build with the wheels from a private Docker registry rather than Docker Hub run:
$ docker build https://opendev.org/openstack/loci.git \ --build-arg PROJECT=keystone \ --build-arg WHEELS=172.17.0.1:5000/mydockernamespace/keystone:ubuntu
To build cinder with lvm and ceph support you would run:
$ docker build https://opendev.org/openstack/loci.git \ --build-arg PROJECT=cinder \ --build-arg PROFILES="lvm ceph"
The images should contain all the required assets for running the service. But
if you wish or need to customize the
loci/keystone image that’s great! We
hope to have built the images to make this as easy and flexible as possible. To
do this we recommend that you perform any required customization in a child
image using a pattern similar to:
FROM loci/keystone:master-ubuntu MAINTAINER firstname.lastname@example.org RUN set -x \ && apt-get update \ && apt-get install -y --no-install-recommends your-awesome-binary-package \ && rm -rf /var/lib/apt/lists/*
LOCI is considered stable. There are production installs of OpenStack using LOCI built images at this time.
The project is very low-entropy with very little changing, but this is expected. The highest traffic section of LOCI is the gates.