constellation/cli/internal/helm
Daniel Weiße d95ddd01d3
helm: fix upgrade command unintentionally skipping all service upgrades (#1992)
* Fix usage of errors.As in upgrade command implementation

* Use struct pointers when working with custom errors

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-06-30 16:46:05 +02:00
..
charts cli: deploy aws csi driver per default (#1981) 2023-06-30 08:46:32 +02:00
imageversion bazel: allow custom container_prefix (#1693) 2023-04-27 11:52:02 +02:00
testdata cli: deploy yawol as OpenStack loadbalancer 2023-05-03 21:45:59 +02:00
backup_test.go cli: store upgrade files in versioned folders (#1929) 2023-06-21 09:22:32 +02:00
backup.go cli: store upgrade files in versioned folders (#1929) 2023-06-21 09:22:32 +02:00
BUILD.bazel cli: deploy aws csi driver per default (#1981) 2023-06-30 08:46:32 +02:00
cilium.patch deploy cilium via helmchart (#321) 2022-08-12 10:20:19 +02:00
client_test.go helm: fix upgrade command unintentionally skipping all service upgrades (#1992) 2023-06-30 16:46:05 +02:00
client.go helm: fix upgrade command unintentionally skipping all service upgrades (#1992) 2023-06-30 16:46:05 +02:00
generateCertManager.sh bazel: add go generate to //:generate target 2023-03-29 12:51:40 -04:00
generateCilium.sh bazel: add go generate to //:generate target 2023-03-29 12:51:40 -04:00
helm.go cli: add doc comments for helm 2023-03-03 15:02:22 +01:00
loader_test.go cli: deploy aws csi driver per default (#1981) 2023-06-30 08:46:32 +02:00
loader.go bootstraper: delete helm chart on installation failure before retrying installation (#1977) 2023-06-30 15:13:29 +02:00
README.md Microservice upgrades (#729) 2022-12-19 16:52:15 +01:00
update-csi-charts.sh cli: deploy aws csi driver per default (#1981) 2023-06-30 08:46:32 +02:00
values.go helm: add OpenStack charts 2023-03-21 10:51:09 +01:00

Chart upgrades

All services that are installed via helm-install are upgraded via helm-upgrade. Two aspects are not full covered by running helm-upgrade: CRDs and values. While helm-install can install CRDs if they are contained in a chart's crds folder, upgrade won't change any installed CRDs. Furthermore, new values introduced with a new version of a chart will not be installed into the cluster if the --reuse-values flag is set. Nevertheless, we have to rely on the values already present in the cluster because some of the values are set by the bootstrapper during installation. Because upgrades should be a CLI-only operation and we want to avoid the behaviour of --reuse-values, we fetch the cluster values and merge them with any new values.

Here is how we manage CRD upgrades for each chart.

Cilium

  • CRDs are updated by cilium-operator.

cert-manager

  • installCRDs flag is set during upgrade. This flag is managed by cert-manager. cert-manager is in charge of correctly upgrading the CRDs.
  • WARNING: upgrading cert-manager might break other installations of cert-manager in the cluster, if those other installation are not on the same version as the Constellation-manager installation. This is due to the cluster-wide CRDs.

Operators

  • Manually update CRDs before upgrading the chart. Update by running applying the CRDs found in the operators/crds/ folder.

Constellation-services

  • There currently are no CRDs in this chart.