Skip to content

Commit

Permalink
Merge pull request #348 from appuio/install-4.15
Browse files Browse the repository at this point in the history
Update install instructions for OpenShift 4.15 and Cilium kube-proxy-free mode
  • Loading branch information
simu authored Aug 5, 2024
2 parents ba87303 + 6d9717a commit fe327b3
Show file tree
Hide file tree
Showing 6 changed files with 65 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ done
+
[source,console]
----
terraform state rm module.cluster.module.lb.module.hiera.gitfile_checkout.appuio_hieradata
terraform state rm module.cluster.module.lb.module.hiera[0].gitfile_checkout.appuio_hieradata
----
+
NOTE: This step is necessary to ensure the subsequent `terraform destroy` completes without errors.
Expand Down
6 changes: 3 additions & 3 deletions docs/modules/ROOT/pages/how-tos/cloudscale/install.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
= Install OpenShift 4 on cloudscale.ch
:ocp-minor-version: 4.14
:k8s-minor-version: 1.27
:ocp-patch-version: {ocp-minor-version}.0
:ocp-minor-version: 4.15
:k8s-minor-version: 1.28
:ocp-patch-version: {ocp-minor-version}.23
:provider: cloudscale

[abstract]
Expand Down
2 changes: 1 addition & 1 deletion docs/modules/ROOT/pages/how-tos/exoscale/install.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
= Installation on Exoscale
:ocp-minor-version: 4.15
:k8s-minor-version: 1.28
:ocp-patch-version: {ocp-minor-version}.0
:ocp-patch-version: {ocp-minor-version}.23
:provider: exoscale
:kubectl_extra_args:

Expand Down
6 changes: 3 additions & 3 deletions docs/modules/ROOT/pages/how-tos/openstack/install.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
= Install OpenShift 4 on OpenStack
:ocp-minor-version: 4.14
:k8s-minor-version: 1.27
:ocp-patch-version: {ocp-minor-version}.0
:ocp-minor-version: 4.15
:k8s-minor-version: 1.28
:ocp-patch-version: {ocp-minor-version}.23
:provider: openstack

[abstract]
Expand Down
6 changes: 3 additions & 3 deletions docs/modules/ROOT/pages/how-tos/vsphere/install.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
= Install OpenShift 4 on vSphere
:ocp-minor-version: 4.14
:k8s-minor-version: 1.27
:ocp-patch-version: {ocp-minor-version}.0
:ocp-minor-version: 4.15
:k8s-minor-version: 1.28
:ocp-patch-version: {ocp-minor-version}.23
:provider: vsphere

[abstract]
Expand Down
59 changes: 54 additions & 5 deletions docs/modules/ROOT/partials/install/bootstrap-nodes.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,46 @@ while ! curl --connect-timeout 1 "${API_URL}/healthz" -k &>/dev/null; do
done && echo -e "\nAPI is up"
----

. Patch Cilium config to allow control plane bootstrap to succeed
+
[NOTE]
====
We need to temporarily adjust the Cilium config to not use full kube-proxy replacement, since we currently don't have a way to disable the initial OpenShift-managed kube-proxy deployment.
Additionally, Because the cloudscale Cloud Controller Manager accesses the K8s API via service IP, we need to configure Cilium to provide partial kube-proxy replacement so that the CCM can start and untaint the control plane nodes so that other pods can be scheduled.
====
+
[source,bash]
----
export KUBECONFIG="${INSTALLER_DIR}/auth/kubeconfig"
while ! kubectl get ciliumconfig -A &>/dev/null; do
echo -n "."
sleep 2
done && echo -e "\nCiliumConfig CR is present"
kubectl patch -n cilium ciliumconfig cilium-enterprise --type=merge \
-p '{
"spec": {
"cilium": {
"kubeProxyReplacement": "false",
"nodePort": {
"enabled": true
},
"socketLB": {
"enabled": true
},
"sessionAffinity": true,
"externalIPs": {
"enabled": true
},
"hostPort": {
"enabled": true
}
}
}
}'
----

. Deploy control plane nodes
+
[source,bash,subs="attributes+"]
Expand Down Expand Up @@ -92,6 +132,20 @@ terraform apply
popd
----

. Disable OpenShift kube-proxy deployment and revert Cilium patch
+
[source,bash]
----
kubectl patch network.operator cluster --type=merge \
-p '{"spec":{"deployKubeProxy":false}}'
kubectl -n cilium replace -f catalog/manifests/cilium/olm/cluster-network-07-cilium-ciliumconfig.yaml
while ! kubectl -n cilium get cm cilium-config -oyaml | grep 'kube-proxy-replacement: "true"' &>/dev/null; do
echo -n "."
sleep 2
done && echo -e "\nCilium config updated"
kubectl -n cilium rollout restart ds/cilium
----

. Review and merge the LB hieradata MR (listed in Terraform output `hieradata_mr`) and run Puppet on the LBs after the deploy job has completed
+
[source,bash]
Expand All @@ -103,11 +157,6 @@ done

. Approve node certs
+
[source,bash]
----
export KUBECONFIG="${INSTALLER_DIR}/auth/kubeconfig"
----
+
include::partial$install/approve-node-csrs.adoc[]

. Label infra nodes
Expand Down

0 comments on commit fe327b3

Please sign in to comment.