RFC: update updates RFC

This commit is contained in:
Leonard Cohnen 2022-10-26 15:41:13 +02:00 committed by 3u13r
parent acc82b205a
commit 1f8eba37c8

View File

@ -188,21 +188,22 @@ Note that:
* `constellationVersion` 2.2.0 contains components which are all released in version 2.2.0 * `constellationVersion` 2.2.0 contains components which are all released in version 2.2.0
* `kubernetesServicesVersion` 1.24.5 could contain Autoscaler 1.24.2, CCM 1.24.8 since their patch versions are not in sync with Kubernetes. Moreover, those component versions will be bundled by us. Think: public lookup table from `kubernetesServicesVersion` -> component version. * `kubernetesServicesVersion` 1.24.5 could contain Autoscaler 1.24.2, CCM 1.24.8 since their patch versions are not in sync with Kubernetes. Moreover, those component versions will be bundled by us. Think: public lookup table from `kubernetesServicesVersion` -> component version.
When `constellation upgrade execute` is called the CLI needs to perform the following steps: When `constellation upgrade apply` is called the CLI needs to perform the following steps:
1. create a new `k8s-components-1.24.3` ConfigMap with the corresponding URLs and hashes from the lookup table in the CLI 1. warn the user to create a Constellation/etcd backup before updating as documented in the [official K8s update docs](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/#before-you-begin)
2. update the measurements in the `join-config` ConfigMap 2. create a new `k8s-components-1.24.3` ConfigMap with the corresponding URLs and hashes from the lookup table in the CLI
3. update the Kubernetes version and VM image in the `nodeimage` CRD 3. update the measurements in the `join-config` ConfigMap
4. update Cilium + Constellation microservices 4. update the Kubernetes version and VM image in the `nodeimage` CRD
5. update Cilium + Constellation microservices
The actual update in step 2. and 3. will be handled by the node-operator inside Constellation. Step 4. will be done via client side helm deployments. The actual update in step 2. and 3. will be handled by the node-operator inside Constellation. Step 4. will be done via client side helm deployments.
Since the actual Kubernetes components and Constellation microservice versions are hidden, we will show the user for the actual changes taking place: Since the actual Kubernetes components and Constellation microservice versions are hidden, we will show the user for the actual changes taking place. We also print a warning to back up any important components when the upgrade necessitates a node replacement, i.e. on Kubernetes and VM image upgrades.
```bash ```bash
$ constellation upgrade execute $ constellation upgrade apply
Updating wanted Kubernetes version to 1.24.3 ... Upgrading Kubernetes: 1.24.2 --> 1.24.3 ...
Updating wanted Image to /communityGalleries/ConstellationCVM-b3782fa0-0df7-4f2f-963e-fc7fc42663df/images/constellation/versions/2.3.0 Upgrading VM image: /communityGalleries/ConstellationCVM-b3782fa0-0df7-4f2f-963e-fc7fc42663df/images/constellation/versions/2.3.0 --> /communityGalleries/ConstellationCVM-b3782fa0-0df7-4f2f-963e-fc7fc42663df/images/constellation/versions/2.3.0 (not updated)
Updating Kubernetes services version to 1.24.5: Updating Kubernetes services version to 1.24.5:
Autoscaler: 1.24.3 --> 1.24.3 (not updated) Autoscaler: 1.24.3 --> 1.24.3 (not updated)
@ -213,4 +214,7 @@ Updating Constellation microservices to 2.2.0:
KMS: 2.1.3 --> 2.2.0 KMS: 2.1.3 --> 2.2.0
joinService: 2.1.3 --> 2.2.0 joinService: 2.1.3 --> 2.2.0
nodeOperator: 2.1.3 --> 2.2.0 nodeOperator: 2.1.3 --> 2.2.0
Warning: Please backup any important components before upgrading Kubernetes
Apply change [yes/No]?
``` ```