constellation/cli/internal/helm
Moritz Sanft c69e6777bd
cli: Terraform migrations on upgrade (#1685)
* add terraform planning

* overwrite terraform files in upgrade workspace

* Revert "overwrite terraform files in upgrade workspace"

This reverts commit 8bdacfb8bef23ef2cdbdb06bad0855b3bbc42df0.

* prepare terraform workspace

* test upgrade integration

* print upgrade abort

* rename plan file

* write output to file

* add show plan test

* add upgrade tf workdir

* fix workspace preparing

* squash to 1 command

* test

* bazel build

* plan test

* register flag manually

* bazel tidy

* fix linter

* remove MAA variable

* fix workdir

* accept tf variables

* variable fetching

* fix resource indices

* accept Terraform targets

* refactor upgrade command

* Terraform migration apply unit test

* pass down image fetcher to test

* use new flags in e2e test

* move file name to constant

* update buildfiles

* fix version constant

* conditionally create MAA

* move interface down

* upgrade dir

* update buildfiles

* fix interface

* fix createMAA check

* fix imports

* update buildfiles

* wip: workspace backup

* copy utils

* backup upgrade workspace

* remove debug print

* replace old state after upgrade

* check if flag exists

* prepare test workspace

* remove prefix

Co-authored-by: Otto Bittner <cobittner@posteo.net>

* respect file permissions

* refactor tf upgrader

* check workspace before upgrades

* remove temp upgrade dir after completion

* clean up workspace after abortion

* fix upgrade apply test

* fix linter

---------

Co-authored-by: Otto Bittner <cobittner@posteo.net>
2023-05-22 13:31:20 +02:00
..
charts cli: add cinder csi helm charts 2023-05-17 15:20:39 +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: remove ambiguity in path for CR backups (#1719) 2023-05-03 14:36:57 +02:00
backup.go cli: Terraform migrations on upgrade (#1685) 2023-05-22 13:31:20 +02:00
BUILD.bazel cli: add cinder csi helm charts 2023-05-17 15:20:39 +02:00
cilium.patch deploy cilium via helmchart (#321) 2022-08-12 10:20:19 +02:00
client_test.go config: add separate option for handling attestation parameters (#1623) 2023-05-03 11:11:53 +02:00
client.go config: add separate option for handling attestation parameters (#1623) 2023-05-03 11:11:53 +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 measurements: Add length field for WithAllBytes 2023-05-17 11:37:26 +02:00
loader.go cli: deploy cinder as OpenStack CSI plugin 2023-05-17 15:20:39 +02:00
README.md Microservice upgrades (#729) 2022-12-19 16:52:15 +01:00
update-csi-charts.sh kubernetes: update CSI driver versions to v1.2.0 (#1657) 2023-04-21 11:03:35 +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.