Upgrading FOSSA
Upgrade a running FOSSA on-premises instance by fetching the new chart, reading its changelog, and running helm upgrade.
Overview
Upgrading is a routine part of maintaining your on-premises installation. FOSSA ships as a set of services that are designed to be deployed and upgraded together through Helm, so the supported path is always a single helm upgrade of the fossa-core chart; never upgrading individual services on their own.
Warning
Don't upgrade individual FOSSA services independently. Mismatched component versions can cause performance degradation or, in the worst case, an outage. Always upgrade the whole release with helm upgrade.
Helm performs a rolling upgrade, so as long as you run more than one replica of fossa-core-api there is generally no downtime. Confirm your replica count with kubectl -n NAMESPACE get deployments.
Prerequisites
- Helm is configured to talk to your cluster and the FOSSA chart repository is added. See Set up Helm if you need to reconnect.
- The Helm release name of your FOSSA instance, the name you chose in Install and verify FOSSA. The default is
fossa; runhelm ls -Ato confirm. - Your values file(s).
Upgrading your instance
- 1
Fetch the latest chart
Update your local copy of the FOSSA chart repository:
Shell$ helm repo updateHang tight while we grab the latest from your chart repositories......Successfully got an update from the "fossa" chart repositoryUpdate Complete. ⎈Happy Helming!⎈Check the latest chart version available to you:
Shell$ helm search repo fossa/fossa-coreNAME CHART VERSION APP VERSION DESCRIPTIONfossa/fossa-core 6.3.7 4.33.65 Deploys the fossa-core monolithIf an update is available, you'll see a newer version of
fossa/fossa-corein this list. - 2
Read the changelog
Always read the chart's changelog before upgrading. FOSSA bundles the changelog inside the chart itself, and it's where breaking changes are documented. Breaking upgrades may require action outside of Helm or changes to your values.
Download and unpack the chart into a temporary folder, then read the changelog:
Shell# Download and unpack the charthelm pull --untardir /tmp/fossa-helm --untar fossa/fossa-core # Show the changelogcat /tmp/fossa-helm/fossa-core/CHANGELOG.mdFollow any instructions for breaking upgrades before proceeding. Most upgrades are not breaking and need no action beyond the usual commands; breaking upgrades are always clearly marked.
- 3
Back up your database
We recommend taking a backup of your database before upgrading. (You can skip this if you use a managed Postgres service with its own backups, such as Amazon RDS.)
Shellpg_dump -h DATABASE_HOST -U USERNAME -d DATABASE_NAME > /path/to/backup.sql # For example:pg_dump -h db.internal -U fossa -d fossa > /opt/fossa_backup/fossa_core_backup.sql - 4
Verify the upgrade with a dry run
Run the upgrade with
--dry-runfirst to render the manifests and verify your values before applying anything:Shellhelm upgrade RELEASE_NAME fossa/fossa-core --values YOUR_VALUES_FILE.yaml --reset-values --dry-run --debug - 5
Run the upgrade
Once the changelog is reviewed and any out-of-band changes are made, run the upgrade:
Shellhelm upgrade RELEASE_NAME fossa/fossa-core --values YOUR_VALUES_FILE.yaml --reset-values --timeout 60m--reset-valuesensures you pick up the latest chart defaults and then apply your values file on top.
Danger
Pass your configuration with --values (optionally with --reset-values). Avoid --reuse-values: Helm merges values differently and surprisingly with it, and in particular it will not merge new values introduced by the updated chart.
FOSSA's charts protect you from this with a "minimum values version" field. If you see an error like FOSSA has updated its default values. You're using X and the latest version is Y. Please upgrade without --reuse-values., you likely used --reuse-values by accident.
Helm takes a while to start the new services, and FOSSA may become briefly unavailable as services restart. Once the upgrade completes, your installation is up to date. 🎉
If you have questions or run into issues, contact your customer support manager or reach out through FOSSA support.