Removes all dependencies for the Terraform providers image from the
Dockerfiles. We want to do this separately from removing all the
build artifacts, so that the image can stop being built by ART
without breaking anything, then remove the build artifacts.
Starting with 4.19, the PATH environment variable is actively used
in CI to manage idempotent repositories that work both in CI as locally.
By overriding the PATH environment variable, machine-os-images gets
unfortunate repositories as a result. I suspect this path override can
just disappear.
Ansible utils we get from the openstack-17-for-rhel-9-rpms is too old
(version 2.3.0-2.el9ost) and doesn't have any of the needed filters
added in v2.5.
Because of the way in which we rebase and build our kube fork, the
binary doesn't have minor versions set correctly. For example, version
1.29.5 appears as `v1.29.0-rc.1.3970+87992f48b0ead9-dirty` and that
breaks the version detection in our scripts.
Since we already have pre-built binaries in CI/release, there is no
reason for downloading those binaries. The only case in which it's
needed is for local dev. So we introduce an env var `SKIP_ENVTEST` to
skip the download when building images.
We copy pre-built binaries from the `-artifacts` images when we want
statically linked binaries and from the regular etcd/hyperkube images
for dynamically linked binaries.
This is necessary to have capi and capi providers included in the
installer images both for CI and for the release payload.
The baremetal-installer/libvirt-installer images continue being dynamically
built for FIPS support. For that reason it cannot reuse the existing
`terraform-providers` image. All other images will be statically built.
Since https://github.com/openshift/release/pull/39563 there should be
now an `installer-terraform-providers` image in the CI namespace with
pre-built terraform provider binaries. If no changes are detected from
the last time the providers were built, we skip building the providers
which can save us around 1h in the CI tests.
- remove unused Dockerfile.ci.rhel7
- replace Dockerfile.upi.ci with Dockerfile.upi.ci.rhel8
- replace Dockerfile.upi.ci.rhel8 with symlink to Dockerfile.upi.ci
- update to FROM directives to pull from registry.ci.openshift.org/ocp/4.15
With this patch, the documentation for installing on OpenStack with UPI
is made machine-readable.
Additionally, UPI resources are added to the CI container image.
Openstacksdk 0.53 introduced an error with older version of Neutron,
where it fails with:
400: Client Error for url: <cloud>/v2.0/security-group-rules, Unrecognized attribute(s) 'remote_address_group_id'
This was fixed in openstacksdk 0.56 which we do not yet have in the
repositories. Until then, pin to the known working 0.36 version.
Upstream issue: https://storyboard.openstack.org/#!/story/2008577
All installer binaries extracted from a payload, regardless of their
runtime OS or architecture, are built on the payload architecture.
Therefore, GOHOSTARCH can be used to assume the cluster architecture for
which its payload was built. This is set through the Dockerfiles so that
manual builds of installer will continue to default to amd64.
Update references to registry.ci.openshift.org/ocp/builder:golang-1.14
with registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.15-openshift-4.8.
The exception is for images targeting rhel7, where the replacement is
registry.ci.openshift.org/ocp/builder:rhel-7-golang-1.15-openshift-4.8 instead.
The `localedef` command requires the `glibc-locale-source` package.
Some python packages are now prefixed with `python3`.
`jq` is now in the main repo.
With Go 1.14 the handling of modules has improved in the sense that all the subcommands `go {test, generate}` now use the vendor when available by default. This makes it easier for us to run generate using the vendored tools like controller-tools etc. as it now uses the checked in vendor.