This change removes logic for releases older than train, because these
releases are already EOLed. This covers only overcloud-* roles and
playbooks and the other items will be covered by separate changes.
Note that this change also removes the containerized_* variables
because current active releases(>=Train) no longer supports
non-containerized deployment. The containerized_overcloud_upgrade
variable is still left because the variable is still required by
the tripleo-ci-base-multinode-standard job template.
Change-Id: If29ec2c2219a28a1f79db0e552e2c622c0a7bda6
roles/standalone/tasks/containers.yml has a number of
ceph-related and other custom parameters that were
missing from the overcloud prep parameters.
This review adds those custom parameters to ensure
that the correct containers (from the desired
registries and namespaces) are used.
Change-Id: Id3b1ea025b748dee578e5bfb1cdd41d0bb7f7383
We already install python2-pip on undercloud host and we
donot need extra task to again install pip for the same.
And easy_install module is not longer available with
python2 leading to failure of tasks unnecessary.
Removing it fixes the issues.
Tested here:
https://review.rdoproject.org/r/c/testproject/+/33649
Closes-Bug: #1927736
Signed-off-by: Chandan Kumar (raukadah) <chkumar@redhat.com>
Change-Id: Iee8f19ed9cc7a2e0fbf9f82b4c32fc4f8bd4c525
python2 easy_install command is failing to install pip with
version no. To overcome this issue, first install pip using
easy_install and install pip version with pip.
Closes-Bug: #1927736
Change-Id: Ie07eefb8052e04a40cd93455a8c60b92642ee3c5
Signed-off-by: Amol Kahat <amolkahat@gmail.com>
It will be used with the content provider job.
Set buildcontainers_venv: false to use dlrn installed
packages.
buildcontainers_rpm_setup_config: "" as kolla will
download the required dlrn repos and gating repo.
Added undercloud tag to prepare and use old
container workflow for c7 based env.
Added insecure registry for docker.
Change-Id: Ic5f569a78b5341fcee9cd013eddfffd3eeb66fa0
Signed-off-by: Chandan Kumar (raukadah) <chkumar@redhat.com>
Wires up the content provider container registry address into
DockerInsecureRegistryAddress. Makes sure we are using the
_address_branch version in all other references to the
job.registry_ip_address var.
Needed by the upgrade jobs in https://review.opendev.org/753403
Change-Id: If9b516860ad3f102e39cb8755cd8aee6f9aae413
Current in container-prep-parameters file, namespace is pointing
to docker.io in consumer job but it needs to be pointing
to local registry to pull containers from provider job when
consumer_job is set to true.
Added local_registry_ip_address and port to the default vars to
avoid vars not defined issue.
It fixes the same.
Change-Id: Iaa2b3b0074732287b618fe268a7e8876f14c6348
Signed-off-by: Chandan Kumar (raukadah) <chkumar@redhat.com>
gating repo is setup only when packages get's build,
so add gating repo to update repos only when gating
repo is setup i.e based on compressed_gating_repo.
Also add new role variable container_prep_additional_repos,
which can be used to add more repos for container updates.
Closes-Bug: #1865459
Change-Id: I9e7b2e04182d156502c1fdb12bcb743d800a6b49
- run `pre-commit autoupdate` and fixed new issues
- adopted newer pre-commit config for ansible-lint 4.2.0+
- fixed some reported broken rules
- temporary disabled few rules, just to contain the size of of review,
planning to drop/fix them in follow-ups.
Change-Id: I807ba4e919527be56c85ec72d0f4c7148f04e994
Upgrades yamllint to latest version and adots use of its strict
checking.
Fix all known problems reported by yamllint so we don't have to do
that while touching these files.
Change-Id: I4bdc520d9e2aff086c4b463718bc1e053261a4f5
Story: https://tree.taiga.io/project/tripleo-ci-board/task/381
Add possibility to set the new container images for ocp 3.11 images
during the image prepare step.
The change hooks the variables both to the `openstack overcloud
container image prepare` command and to the generated
containers-prepare-parameter.yaml file for the image prepare workflow.
Depends-on: Ibbd5ff9d3597f5add440b92a27a2f2f669f7bdbe
Change-Id: I3d59dcd2e50f2e96a7a97cb836a791a52dd6dc9a
Add possibility to set openshift gluster images during the image
prepare step.
The change hooks the variables both to the `openstack overcloud
container image prepare` command and to the generated
containers-prepare-parameter.yaml file for the image prepare workflow.
Change-Id: I73df96866fcec313d72a4d91a6a63f3c6085e5c2
This tests container-prepare-workflow and concludes the coding/testing
portion of this blueprint.
Since image prepare happens during overcloud deploy, the role
overcloud-prep-containers is skipped completely from rocky onwards.
The file containers-prepare-parameter.yaml is written out during
undercloud-deploy.
Change-Id: I006e48754ed1710ae8cc6e9c1d35e9c2e66b5907
Blueprint: container-prepare-workflow
The list of containers that are updated are generated
from a list of rpms from the gating repo. These
containers are updated w/ the gating repo and dlrn-current.
That makes the above set of containers out of sync w/
the rest of the containers. The list of containers
that are updated needs to include changes required
by dlrn-current AND the gating repo.
The --enablerepo parameter for repoquery seems to support
comma-delimited lists, we'll take advantage of that so that we don't
need edit ansible-role-tripleo-modify-image parameter interface.
Co-Authored-By: Jiri Stransky <jistr@redhat.com>
Closes-Bug: #1786764
Change-Id: Ie12021ace7e9eb1695aa97ac5d97f3b948be9d86
When doing mixed upgrade we don't want to use the container definition
file generated during undercloud deployment.
The problem is that at that time (undercloud deployment) the build_id
and docker_registry_namespace_used are (rightly) pointing to master.
But then during mixed upgrade overcloud deployment we need the N-1
version docker's images.
Change-Id: Ice13dceba7417e1ef827f4ab44fd08d2d13922fd
Closes-Bug: #1786488
It is not currently possible to re-use the kolla-based image we're
using the for the overcloud. Let's add the params to tune the openshift
etcd image.
Change-Id: I48fcbcfba5e8b41f28e23773e2cc02229f7eee7d
Depends-On: I3697c171243ec2f3001cca83f7a93ece2af9a8bd
Only run container tasks when required to:
1. prior to undercloud
2. prior to overcloud-prep-containers
3. prior to standalone deployment
Closes-Bug: #1777896
Change-Id: I50054a95500747972454305001d34c4c97b71e7f
This change uses the yum_update task file in ansible role
tripleo-modify-image to update the undercloud images.
Change-Id: I62a4b03538d26083a0ba4ce0b2e7a5b0c456134d
Blueprint: container-prepare-workflow
This file will write out the heat environment file
containers-prepare-parameter.yaml which will be used to do any
required image preparation during undercloud install.
The role parameter undercloud_container_images_file has been left as
an option for overriding, but is no longer required.
This change also switches the overcloud prepare to consume this file
via the command "openstack tripleo container image prepare"
It is expected that overcloud deploy will use the exact same
containers-prepare-parameter.yaml and the logic will be in place to
skip any unnecessary prepare actions. For this reason, the parameter
undercloud_docker_image_tag has been removed, and docker_image_tag is
used directly.
Since this file (and the variables used to build it) will be common to
undercloud and overcloud, there has been some refactoring to move
variable defaults to extras-common.
Change-Id: I290806b9296773688dfd02bc41f8baea28cf3d6a
Blueprint: container-prepare-workflow
There is no need to include the latest changes into 3rd party
containers.
Depends-On: I31494ff8524b90343e6e8c67bd08a354837ecc45
Change-Id: I85c4390519ace0149895285225f5a4ece453f1f8
This wires the parameters used to configure the OpenShift container
images for the container image prepare command.
Change-Id: Ib22d76745426ffef43a513521c3e5d69d3bbdf5c
Depends-On: I58a5d2e5dd7354bea99e2639da3b6169dbb54514
The --images-file and --env-file options of `openstack overcloud
container image prepare` command were renamed to --output-images-file
and --output-env-file for clarity. Use them wherever possible (pike and
above).
Change-Id: Ie76f08e7a2ac2021ec0b66afa1292bc2eef00b8c
This makes the template simpler, and refactors in preperation for
referring to container_build_id from another template.
Change-Id: Ia19f8fdc9705f43ddf0497fab3279c1ee33c696c
Blueprint: container-prepare-workflow
containers_update.yaml needs to exclude ceph, and later changes in
this series will create a overcloud_containers.yaml file which
container-check can't consume, or later in the series there will be no
overcloud_containers.yaml file generated at all.
To deal with this, run a dedicated prepare call to generate the
required containers_update.yaml.
This change also removes the logic which renames the base os repo
files to disable them. Since change
I764bc9a368e63a9aa82ec5503bcd3a9c7c6f4e25 there is now a
packages_for_update variable populated, which will speed updates and
ensure that only the packages being tested (and their dependencies
which may come from a base repo) will be updated
Change-Id: Id44eda339eb674339a0e6105079449e113de542c
This reverts commit 445157148a.
The containers update script does not handle the new format.
So this broke CI when container updates are applied.
Closes-Bug: #1772122
Change-Id: I5256a1bee84f32629990c48c5e6e987384bd498f
Thanks to the fix for bug #1738663 it is no longer necessary to run
prepare separately to generate the environment file and the images
file. The second run only occurs now for ocata, pike runs.
Change-Id: I54a08d696ba7f67caa114a2beffe5de601eb1a92
Related-Bug: #1738663
Run containers update only for packages which were built and their
dependencies. Don't run container update at all if nothing was
built in the patch.
Depends on https://github.com/imain/container-check/pull/2 to pass
Change-Id: I764bc9a368e63a9aa82ec5503bcd3a9c7c6f4e25
During mixed version upgrade, we want to deploy the overcloud with the
N-1 release docker images and then switch to the N release images
file.
That review[1] added the N-1 necessary tags. That review[2] was an
attempt to use the proper parameters in that role for deployment in the
context of mixed version. This fails.
The failure comes from the fact that we load the release file using
"-e ". All those variables then have the highest precedence[3]
possible and cannot be overridden.
Furthermore we use `use_overcloud_mixed_upgrade` flag to prevent the
yum upgrade to run inside container during initial overcloud
deployment. The problem here is that the repo configuration is taken
from the undercloud which is N. Thus the N-1 images are upgraded to
N. That means that we can't gate "from" patches. In a p->q setup, a
change in pike cannot be tested if it relates to the docker image.
Eventually we need a way to run the container role even when the
containerized_overcloud is false. For Fast Forward Upgrade, the
starting point is Newton which doesn't use container. So we introduce
`prep_container_upgrade_run` flag that can be set from the featureset
to ensure that the container get deployed during upgrade.
[1] https://review.openstack.org/#/c/537833/
[2] https://review.openstack.org/#/c/539920/1/toci-quickstart/playbooks/multinode-overcloud-prep.yml
[3] https://docs.ansible.com/ansible/latest/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable
Related-Bug: #1745348
This Tech-debt is introduced until the refactor of the release loading
is done.
Related-Bug: #1749978
Change-Id: I4df06c8a0d5d8133ba64c38b90cef34793776422
Upgrading from P->Q will imply running the
overcloud-prep-containers role twice. As the
name used in the script is fix, the second
time the role will run will overwrite the
previous script file, which could be useful
for debugging purposes.
This patch adds a new parameter
'overcloud_prep_containers_script' which sets
the name of the script used to configure the
docker containers.
Change-Id: I7952872b110b25f67d66de0c5ea4610bfb0f0cb1
We download all of the containers to the undercloud (including ceph),
but then we still pull ceph from docker.io during overcloud deploy.
Instead we should hardcode the namespace for the overcloud deploy
to be the undercloud registry (as we do for all the other containers).
Change-Id: I7cf95bfee7267c7b1a451de20129dbe22d946834
Closes-Bug: #1752874
This patch contains changes to deploy a containerized undercloud by
using: "openstack undercloud install --use-heat" command.
Details of the changes:
- The experimental containerized undercloud deployments driven via
`undercloud deploy` CLI is not supported anymore for Pike.
- overcloud-prep-containers: fix an jinja2 syntax issue with "is defined"
- overcloud-prep-images: "--http-boot=/var/lib/ironic/httpboot" is
added to the "openstack overcloud image upload" command.
- undercloud_rpm_dependencies parameter has been created, default to
undercloud_tripleo_pkg value.
- Remove "undercloud_tripleo_pkg" so we only use
"undercloud_rpm_dependencies". Note that "undercloud_tripleo_pkg"
was only used in this repository.
- Remove "undercloud_update_packages" option which was technical debt.
- Add "undercloud_install_cli_options" option which is used to add extra
options to "openstack undercloud install" command.
- Add "undercloud_container_images_file" which is the environment file
with default parameters for containers to use with undercloud install CLI.
- Add "undercloud_custom_env_files" which provides custom t-h-t env files
for the "undercloud install" `undercloud.conf` interface.
- Generate the undercloud prep containers script. This script will
reproduce what we expect from our users to run with
"openstack overcloud container image prepare" command, for the
undercloud.
- Update undercloud-deploy.sh.j2, remove tech debt and update for new
bits.
- Install heat libraries and other dependencies for containerized UC
from python-tripleoclient-heat-installer. This should go away
once python-tripleoclient installs python-tripleoclient-heat-installer
automatically.
- Update undercloud-install.sh to use undercloud_install_cli_options
which is empty by default but will be used in the container-undercloud
featureset to override with the right parameters.
Partially-Implements: bp containerized-undercloud
Co-Authored-By: Bogdan Dobrelya <bdobreli@redhat.com>
Co-Authored-By: Emilien Macchi <emilien@redhat.com>
Co-Authored-By: Ian Main <imain@redhat.com>
Co-Authored-By: Martin André <m.andre@redhat.com>
Co-Authored-By: Wes Hayutin <weshayutin@gmail.com>
Change-Id: I7d056b208d5ac0639e3277f3f4ae453a9ee639e8
This patch enables the centos base repo such that
new dependencies can be installed.
Closes-Bug: #1747986
Change-Id: Ie4778908a6510d07206e93994675f4c886313d6e