Migrations
This document describes breaking changes and migrations between Constellation releases.
Use constellation config migrate to automatically update an old config file to a new format.
Migrations to v2.23.0
GCP
GCP will require the additional permission compute.forwardingRules.list. Please update your IAM roles using constellation iam upgrade apply.
Migrations to v2.19.1
Azure
- During the upgrade, security rules are migrated and the old ones need to be cleaned up manually by the user. The below script shows how to delete them through the Azure CLI:
#!/usr/bin/env bash
name="<insert>" # the name provided in the config
uid="<insert>" # the cluster id can be retrieved via `yq '.infrastructure.uid' constellation-state.yaml`
resource_group="<insert>" # the RG can be retrieved via `yq '.provider.azure.resourceGroup' constellation-conf.yaml`
rules=(
"kubernetes"
"bootstrapper"
"verify"
"recovery"
"join"
"debugd"
"konnectivity"
)
for rule in "${rules[@]}"; do
echo "Deleting rule: ${rule}"
az network nsg rule delete \
--resource-group "${resource_group}" \
--nsg-name "${name}-${uid}" \
--name "${rule}"
done
echo "All specified rules have been deleted."
Migrating from CLI versions before 2.21.1
AWS
- AWS clusters that use
LoadBalancerresources require more IAM permissions. Please upgrade your IAM roles usingconstellation iam upgrade apply. This will show necessary changes and apply them, if desired.
Migrating from CLI versions before 2.19.0
Azure
- To allow seamless upgrades on Azure when Kubernetes services of type
LoadBalancerare deployed, the target load balancer in which thecloud-controller-managercreates load balancing rules was changed. Instead of using the load balancer created and maintained by the CLI's Terraform code, thecloud-controller-managernow creates its own load balancer in Azure. If your Constellation has services of typeLoadBalancer, please remove them before the upgrade and re-apply them afterward.
Migrating from CLI versions before 2.18.0
- The
provider.azure.appClientIDandprovider.azure.appClientSecretfields are no longer supported and should be removed. - To keep using an existing UAMI, add the
Ownerpermission with the scope of yourresourceGroup. - Otherwise, simply create new Constellation IAM credentials and use the created UAMI.
- To migrate the authentication for an existing cluster on Azure to an UAMI with the necessary permissions:
- Remove the
aadClientIdandaadClientSecretfrom the azureconfig secret. - Set
useManagedIdentityExtensiontotrueand use theuserAssignedIdentityfrom the Constellation config for the value ofuserAssignedIdentityID. - Restart the CSI driver, cloud controller manager, cluster autoscaler, and Constellation operator pods.
- Remove the
Migrating from CLI versions before 2.10
- AWS cluster upgrades require additional IAM permissions for the newly introduced
aws-load-balancer-controller. Please upgrade your IAM roles usingiam upgrade apply. This will show necessary changes and apply them, if desired. - The global
nodeGroupsfield was added. - The fields
instanceType,stateDiskSizeGB, andstateDiskTypefor each cloud provider are now part of the configuration of individual node groups. - The
constellation createcommand no longer uses the flags--control-plane-countand--worker-count. Instead, the initial node count is configured per node group in thenodeGroupsfield.
Migrating from CLI versions before 2.9
- The
provider.azure.appClientIDandprovider.azure.clientSecretValuefields were removed to enforce migration to managed identity authentication
Migrating from CLI versions before 2.8
- The
measurementsfield for each cloud service provider was replaced with a globalattestationfield. - The
confidentialVM,idKeyDigest, andenforceIdKeyDigestfields for the Azure cloud service provider were removed in favor of using the globalattestationfield. - The optional global field
attestationVariantwas replaced by the now requiredattestationfield.
Migrating from CLI versions before 2.3
-
The
sshUsersfield was deprecated in v2.2 and has been removed from the configuration in v2.3. As an alternative for SSH, check the workflow section Connect to nodes. -
The
imagefield for each cloud service provider has been replaced with a globalimagefield. Use the following mapping to migrate your configuration:Show all
-
The
enforcedMeasurementsfield has been removed and merged with themeasurementsfield.-
To migrate your config containing a new image (
v2.3or greater), remove the oldmeasurementsandenforcedMeasurementsentries from your config and runconstellation fetch-measurements -
To migrate your config containing an image older than
v2.3, remove theenforcedMeasurementsentry and replace the entries inmeasurementsas shown in the example below:measurements:
- 0: DzXCFGCNk8em5ornNZtKi+Wg6Z7qkQfs5CfE3qTkOc8=
+ 0:
+ expected: DzXCFGCNk8em5ornNZtKi+Wg6Z7qkQfs5CfE3qTkOc8=
+ warnOnly: true
- 8: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ 8:
+ expected: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ warnOnly: false
-enforcedMeasurements:
- - 8
-
