Add OKD CAPI provider and assisted installer

Closes #1564 (closed)

What does this MR do and why?

This MR will add OKD CAPI provider and assisted installer into Sylva. They will become two separate sylva units. When these two sylva units are enabled in capm3 deployment, the OKD CAPI provider pods, the assisted installer pods, and relevant CRDs will be installed in the management cluster.

Given the fresh requirement shared this week (recap and suggestion in !2654 (comment 2082395305), tests done until now were using a manually configured external DNS), focus is on confirming the new units deploy successfully in management cluster (RKE2 flavor) on top of CAPM3 (on libvirt-metal) infra. For this, we'll use sylva-projects/sylva-elements/ci-tooling/ci-deployment-values!59 (diffs).

As of this merge request, the OpenShift Assisted Installer is incompatible with Longhorn as the PVC volume. A temporary Kyverno workaround is being used to address this issue (!2654 (comment 2114765991)). Once the OpenShift Assisted Installer releases a version that supports Longhorn, the OpenShift Assisted Installer kustomization unit will be updated, and the Kyverno workaround will be removed. The OpenShift Assisted Installer work is tracked by #1698 (closed).

Related reference(s)

Uses s-c-c evolution in sylva-projects/sylva-elements/helm-charts/sylva-capi-cluster!424 (merged).

OKD CAPI provider: https://github.com/openshift-assisted/cluster-api-agent. We will name it 'cabpob' (here 'ob' stands for openshift baremetal) in Sylva Opeshift assisted installer: https://github.com/openshift/assisted-service.

The CAPI provider (cabpob) will use kube API to communicate with the assisted installer. The assisted installer will build live iso based on the info provided by the cabpob. The live iso will be used by metal3 to deploy the baremetal machine.

The detailed architecture description can be found here: https://github.com/openshift-assisted/cluster-api-agent/blob/master/docs/architecture_design.md

The CAPI provider is used to bring up workload cluster at this moment.

Test coverage

Manually tested a RKE2 mgmt cluster install with these new sylva units enabled and verified the RKE2 mgmt cluster install was success, and the new pods and CRDs are installed properly.

Edited by Jianzhu Zhang

Merge request reports

Loading