Task #5069: Build pulp 3 containers
Create pulp_file container images automatically via CI
We need to extend the Travis CI so that whenever pulpcore gets built, it builds it from the actual source tree.
It needs to use the source trees for pulpcore-plugin & pulp_file as well, which are always on disk.
Stable builds (like 3.0.0 or 3.0.0rc5) can be handled via our Travis cronjobs or other means. I was told to look at our existing scripts for reference.
It will be up to other plugins which they wish to base on (nightly or stable.)
For pulpcore, .travis/install.sh needs to do the following:
build containers, with pulp_file
deploy newly build containers / pulp-operator on top of k3s
And .travis/script.sh needs to do the following:
Run the tests, but against the container rather than locally.
(It is OK to drop codecov for now, to get this working.)
Also, it is OK to specify the source tree(s) only via absolute paths on disk, rather than relative paths like "../".
This task includes fixing the issue that when the CI builds an image and stores it in its docker cache, k3s does not use it. (pulp-operator.git has this issue, and now pulpcore.git will.) Multiple workarounds are possible (such as an image registry), but fixing it is preferred.
Use Docker rather than k3s-bundled containerd
So that built & cached images can be used later during CI.
This means that the pulp-operator CI now actually tests the current version of the image it builds, rather than the version from quay.
containers: Build both stable and dev images
and make images far more configurable.
Build stable and master (latest) versions (tags) of both images.
Use an undefined plugins list for no plugins ather than the dummy pulpcore-plugin.
Use variables for the pulpcore & pulpcore-plugin pip installs
Use vars/vars.yml as an override for vars (including the images data structure.)
Start work on installing into the container, and limit the CI builds to only pulpcore & pulpcore-plugin stable.
containers: Support pip install from Travis host dirs
Implementation includes: Copying the host dirs into the Docker build environment
Setting the Docker build "context" to the parent dir of the checked out pulpcore (So that it and all the other cloned repos can be accessed during docker build.)
Users must specify host dirs as relative to the parent dir of pulpcore, and begin them with "./". This triggers copying logic.
Templating the Dockerfile with jinja2, with some Ansible-bundled filters. (We've outgrown what env vars in the Dockerfile can do.)
Remove unused Dockerfile variable VERSION
.travis/post_script.sh: Build pulpcore & pulpcore-plugin from Travis host dirs
#14 Updated by firstname.lastname@example.org about 2 years ago
- % Done changed from 20 to 70
Most of this is done.
It took very long because so many parts of the CI process needed to be updated. Including Pulp-Smash needing to support "sudo kubectl" instead of "ssh".
The outstanding tasks are:
1. Several functional tests are still failing.
2. Need to make the publishing of images happen, including like how python packages are published.
3. Need to update the python package and other publishing scripts for the containers.
#15 Updated by email@example.com about 2 years ago
Functional tests are now passing (thanks dkliban!)
It looks like there is no need to update the python package and other publishing scripts for the containers.
Need to make the publishing of images happen, including like how python packages are published.
Please register to edit this issue