Upgrade Prerequisites
Tools to use
- Terraform
- Terragrunt
- zarf
- Git (optional)
Find the SmoothGlue Environment Directory
To upgrade an existing SmoothGlue cluster, the original environment directory will be required. It should look similar to the following directory structure:
example-org-run
├── .env
├── .terragrunt-cache
└── providers
├── bigbang-secrets.yaml
├── bigbang-values.yaml
├── compiled
├── compile-config.sh
├── env.hcl **
├── infra-iac **
├── smoothglue-zarf-package **
└── zarf-config.yaml
Validate Current Version of SmoothGlue
Determining the existing version of SmoothGlue is vital for a successful upgrade, as only incremental version upgrades are supported. Use the following command to retrieve the current SmoothGlue version:
zarf tools kubectl get configuration structsure-enterprise -o jsonpath='{.spec.package}'
SmoothGlue upgrades must be sequential on the minor verion. If you are at 6.10
you must upgrade to 6.11
then to 6.12
and so on.
Assess Available Storage
During the deployment of SmoothGlue, Zarf utilizes the /tmp
directory to create logs, unpack images, and allocate other necessary resources. Insufficient space in this directory may lead to upgrade complications. Verify adequate storage availability in the /tmp
directory before initiating the upgrade.
It is recommended at least 100GB of free space.
Backups
We recommend using AWS backups to create backups of AWS resource. The follow resources should be backed up
- All RDS instances and RDS clusters
- All EFS drives used for HA
In addition, consider using velero to backup resources in the cluster.
In-Cluster Values
In the case that there are in-cluster values use this script to pull them out and compare them with the complied/bigbang-values.yaml
and complied/bigbang-secrets.yaml
.
zarf tools kubectl get configmaps -n structsure-system -o yaml | zarf tools yq eval '.items[].data."values.yaml"' - > in-cluster-bigbang-values.yaml
zarf tools kubectl get secrets -n structsure-system -o yaml | zarf tools yq eval '.items[] | select(.metadata.name | test("-overrides$")) | .data."values.yaml" | @base64d' -
Make sure don't leak secret data or commit it to git
Now compare the values within with what you have in your bigbang-values.yaml
and bigbang-secrets.yaml
to see any changes