Keystone Gateway

Upgrade Gateway

Read the release notes, confirm the archive matches the host architecture, back up the files listed in recovery, and record version, /readyz, /v1/ha, and entitlement status. Validate the new configuration before stopping the old service.

Because the archive carries a default gateway.yaml, preserve the site’s configuration before copying a new release over the installation root:

sudo systemctl stop keystone-gateway
sudo cp /opt/particle_horizon/local_config/keystone-gateway/gateway.yaml \
  /opt/particle_horizon/local_config/keystone-gateway/gateway.yaml.bak
sudo cp -a "${INSTALL_TMP}/particle_horizon/." /opt/particle_horizon/

The state key and signed license are not carried in the archive, so they survive the copy; only gateway.yaml is replaced. Restore the site’s configuration, or merge it into the newly supplied file where a release introduces configuration changes:

sudo cp /opt/particle_horizon/local_config/keystone-gateway/gateway.yaml.bak \
  /opt/particle_horizon/local_config/keystone-gateway/gateway.yaml

Then run config validate, start the service, and verify /readyz, license metadata, and a non-destructive status query. To roll back, stop the service, repoint the stable path at the previous SOFTWARE directory, and restore a compatible configuration/state backup. Do not assume state formats are backward compatible; follow release notes.

For HA, V1 documents no guaranteed rolling or zero-downtime upgrade. Plan a maintenance window, preserve both nodes’ matching state key and license, and upgrade one node at a time only after confirming release compatibility. A node may become degraded-active during peer maintenance; observe /v1/ha, avoid deliberate partitioning, and validate convergence before upgrading the other node.

Confirm