With this change, Compute nodes within each MachineSet are automatically
created in a Server group, with a default policy of
"soft-anti-affinity".
With this change, a "serverGroupPolicy" can be set in install-config, on
the worker MachinePool and/or in the platform default.
Implements OSASINFRA-2570
Co-Authored-By: Matthew Booth <mbooth@redhat.com>
When the installer provides manifests for resources that are included
as create-only resources in the release payload, there is a race
between whether cluster-bootstrap will apply the installer-provided
manifest or cluster-version-operato will apply the payload-provided
manifest. Whichever one is applied first will be the only one applied.
This is problematic since the expectation is that the installer-provided
manifests should always be applied.
To get around this, the installer now adds to the .spec.overrides field
of the ClusterVersion resource all of the resources for which the installer
is providing manifests. This tells the cluster-version-operator to not
apply any manifests for these resources. After the cluster-bootstrap
completes, the bootkube service will remove those resources from the
.spec.overrides field so that the cluster-version-operator can take over
management of those resources during upgrades.
The cvoignore asset has been added during the ignition configs
stage. This asset is responsible for creating two files for the
bootstrap node: cvo-overrides.yaml and original_cvo_overrides.patch.
The cvo-overrides.yaml file is a replacement of the one created by the
Common Manifests asset. The replacement adds to the .spec.overrides field
all of the resources included in the Common Manifests and Openshift Manifests
assets.
The original_cvo_overrides.patch file is a json patch that the bootkube
service applies to the ClusterVersion resource after cluster-bootstrap
completes. The patch restores any value that the user supplied for the
.spec.overrides field.
Switches the name of the internal load balancer to be
${INFRA_ID}-internal which is consistent with IPI.
Also renames the backend address pool to be the same as the
LB which is consistent with the public LB.
In the current solution, ASH only has one public load balancer. Both
api DNS records point to the public IP address. This creates an
internal load balancer and updates the docs to point the api-int
record to the internal LB.
-replace=k8s.io/client-go=k8s.io/client-go@v0.22.0 \
-replace=k8s.io/kube-openapi=k8s.io/kube-openapi@v0.0.0-20210305001622-591a79e4bda7
Bumps the OpenShift & k8s APIs. There seems to be a breaking change
in kube-openshift which breaks our kubevirt.io dependencies. I'm pinning
this to the earlier kube-openapi until these dependencies can be
updated.
bootstrapInPlace configuration is only meant for generating ignition and embedding
it manually in an RHCOS ISO. It is not meant for IPI installation.
It seems that trying to do single-node IPI installation with this configuration
set in the install-config file leads to odd installation failures with confusing
error messages. This commit makes it so that the error is much earlier and
more clear.