Skip to content

Upgrading Genestack from OpenStack 2024.1 (Caracal) to 2025.1 (Epoxy)

This guide outlines the process for upgrading a Genestack deployment from OpenStack 2024.1 (Caracal) to 2025.1 (Epoxy). Genestack leverages OpenStack-Helm charts for deployment and management, making upgrades primarily a matter of updating the underlying charts and configurations via Git and Helm.

OpenStack 2025.1 (Epoxy) is a Skip Level Upgrade Release Process (SLURP) release, which supports direct upgrades from the previous SLURP release (Caracal), skipping the intermediate 2024.2 (Dalmatian) release if desired. This simplifies the upgrade path for stable environments.

Prerequisites

  • A full backup of your current deployment, including databases and configurations.
  • Familiarity with the Genestack installation process and operator documentation.
  • A planned minimum downtime window, as some services will require restarts.
  • Verification that no active jobs or migrations are running that could conflict with the upgrade.

Upgrade Steps

The upgrade process is similar to a fresh installation but focuses on updating charts and applying revisions. Perform these steps on the management node.

  1. Navigate to the Genestack Directory
cd /opt/genestack
  1. Update the Git Repository

Fetch the latest changes and check out the Epoxy release tag:

git fetch origin
git tag
git checkout <Latest Epoxy Release>

If no release tag for Epoxy is available, manually update the images in the override files. For example, update keystone-helm-overrides.yaml:

images:
  tags:
    bootstrap: ghcr.io/aedan/genestack-images/heat:2025.1-1750442748
    db_drop: ghcr.io/aedan/genestack-images/heat:2025.1-1750442748
    db_init: ghcr.io/aedan/genestack-images/heat:2025.1-1750442748
    keystone_api: ghcr.io/aedan/genestack-images/keystone:2025.1-1750442703
    keystone_credential_cleanup: ghcr.io/aedan/genestack-images/heat:2025.1-1750442748
    keystone_credential_rotate: ghcr.io/aedan/genestack-images/keystone:2025.1-1750442703
    keystone_credential_setup: ghcr.io/aedan/genestack-images/keystone:2025.1-1750442703
    keystone_db_sync: ghcr.io/aedan/genestack-images/keystone:2025.1-1750442703
    keystone_domain_manage: ghcr.io/aedan/genestack-images/keystone:2025.1-1750442703
    keystone_fernet_rotate: ghcr.io/aedan/genestack-images/keystone:2025.1-1750442703
    keystone_fernet_setup: ghcr.io/aedan/genestack-images/keystone:2025.1-1750442703
    ks_user: ghcr.io/aedan/genestack-images/heat:2025.1-1750442748
  1. Handle Pre-Upgrade Cleanups

Clean up Nova jobs to avoid conflicts:

kubectl --namespace openstack delete jobs $(kubectl --namespace openstack get jobs --no-headers -o custom-columns=":metadata.name" | grep nova)
  1. Apply Updated Helm Charts

Re-run the Helm deployments for OpenStack components, following your original installation guide:

/opt/genestack/setup-openstack.sh

Alternatively, apply in sequence (e.g., Keystone, Glance, Nova, Neutron), monitoring each for completion:

/opt/genestack/bin/install-keystone.sh
/opt/genestack/bin/install-glance.sh
/opt/genestack/bin/install-nova.sh
  1. Post-Upgrade Verification

  2. Check pod status:

    kubectl get pods --all-namespaces
    
  3. Run OpenStack health checks:

    openstack endpoint list
    openstack compute service list
    openstack network agent list
    openstack volume service list
    
  4. Test key functionalities (e.g., instance provisioning, networking).

  5. Monitor logs for errors:

    kubectl logs -f <pod-name>
    

Additional Resources