Upgrading from 2025.12 to the 2026.1 Innovation Release Innovation Release
Upgrade from 2025.12 to 2026.1.
Role: Infrastructure Engineer
Prerequisites
Administrative access to the Kubernetes cluster (
kubectl,helm).Access to the HM installation configuration file or
values.yamlfile used for the current installation. To save the contents of your current installation configuration:helm get values edbpgai-bootstrap -n edbpgai-bootstrap > values.yaml
Required Tools:
helm(Latest version recommended)
Upgrade 2025.12 → 2026.1
This release introduces new authentication secrets, and deprecates several Beacon parameters.
Create Langflow secret
Before installing the 2026.1 chart, you must manually create the langflow-secret secret in the default namespace.
Create a Langflow secret:
kubectl create secret generic langflow-secret -n default \ --from-literal LANGFLOW_SUPERUSER=langflow \ --from-literal LANGFLOW_SECRET_KEY="$(python3 -c "from secrets import token_urlsafe; print(f'{token_urlsafe(32)}')")" \ --from-literal LANGFLOW_SUPERUSER_PASSWORD="$(openssl rand -base64 24 | tr -dc 'a-zA-Z0-9' | cut -c1-16)"
This command:
- Generates a base64url-encoded application secret key (
LANGFLOW_SECRET_KEY) required for Langflow encryption (a secure token with 32 bytes is required). - Associates the secret with the
langflowsuperuser (LANGFLOW_SUPERUSER). - Generates a secure password for the
langflowuser (LANGFLOW_SUPERUSER_PASSWORD).
- Generates a base64url-encoded application secret key (
Ensure the created secret is synchronized with the
upm-langflowandupm-beaco-ff-basenamespaces:kubectl annotate secret langflow-secret -n default replicator.v1.mittwald.de/replicate-to="upm-langflow,upm-beaco-ff-base"
Alternatively, you can create the secret manually.
kubectl apply -f - <<EOF apiVersion: v1 kind: Secret metadata: name: langflow-secret namespace: default annotations: replicator.v1.mittwald.de/replicate-to: "upm-langflow,upm-beaco-ff-base" type: Opaque stringData: LANGFLOW_SECRET_KEY: <generated_langflow_secret_key> LANGFLOW_SUPERUSER: langflow LANGFLOW_SUPERUSER_PASSWORD: <generated_superuser_password> EOF
Update the values.yaml
In your HM installation configuration file or values.yaml, replace the following deprecated fields with new fields:
| Remove field: | Replace with: |
|---|---|
beaconAgent.provisioning.provider | parameters.global.load_balancer_provider |
beaconAgent.provisioning.loadBalancersEnabled | parameters.global.load_balancer_mode |
beaconAgent.provisioning.nodePortDomain | parameters.global.node_port_domain |
Note
If you don't replace these fields, the HM installation upgrade will still suceed, but if in the future you have differing values set for both the old and new parameter, the new parameter will take preference over the old one.
Remove the scenarios stanza (only for multi-DC environments)
If you are running a multi-DC environment (if you deployed HM across multiple data centers), you must remove the scenarios stanza before upgrading. If your HM is a single-DC instance, skip this section and go to Perform the upgrade directly.
Due to schema changes in scenarios options for v2026.1.0, the operator fails to map values from v2025.12.0 correctly. This triggers an unintended cleanup routine. To mitigate this, if your installation uses the scenarios parameter, the scenarios stanza must be removed prior to initiating the version upgrade. You can reapply the stanza after the upgrade.
You can find the new schema changes and scenario installation options in Deploying Hybrid Manager across multiple data centers .
Failing to follow these steps will cause the operator to ignore existing configurations and uninstall all components, including Postgres clusters.
For Helm-based installations
Open the
values.yamlfile of your primary instance (Hub).Remove the entire
scenarios:stanza.Re-apply the configuration to your secondary instance (Spoke).
Do not proceed with the v2026.1.0 upgrade until you have confirmed the secondary instance has finished reconciling and is in a healthy Ready or Deployed state.
For operator-based (CRD) installations
Edit your
HybridControlPlaneresource:kubectl edit hybridcontrolplane <resource-name>
Where
<resource-name>is the name you assigned during installation.Delete the scenarios section from the specification.
Force a reconciliation by annotating the resource:
kubectl annotate hybridcontrolplane <resource-name> --overwrite edbpgai.com/ready-for-upgrade=true
Do not proceed with the v2026.1.0 upgrade until you have confirmed the secondary instance has finished reconciling and is in a healthy Ready or Deployed state.
Perform the upgrade
For Helm-based installations
Update your Helm repository:
helm repo update
Perform the upgrade:
helm upgrade --install edbpgai-bootstrap enterprisedb-edbpgai/edbpgai-bootstrap \ --version 2026.1.0 \ --values values.yaml \ --namespace edbpgai-bootstrap \ --wait
For operator-based (CRD) installations
For installations managed via the operator, you must update the version specification within your HybridControlPlane resource.
Update the
edbpgai-bootstrapproject from the catalog:Openshift example:
- Navigate to Operators > OperatorHub in the OpenShift Console.
- Search for EDB Postgres AI.
- Follow the on-screen wizard to deploy into the
edbpgai-bootstrapproject.
Edit the
HybridControlPlaneresource:kubectl edit hybridcontrolplane <resource-name>
Where
<resource-name>is the name you assigned during installation.In the YAML editor, locate the
spec.version(or equivalent version field) and update it to2026.1.0.Save the changes. Force a reconciliation by annotating the resource:
kubectl annotate hybridcontrolplane <resource-name> --overwrite edbpgai.com/ready-for-upgrade=true
The operator will then detect the version change and begin the rolling update. You can monitor the progress with:
kubectl get hybridcontrolplane <resource-name> -w
Re-add the scenarios stanza (only for multi-DC environments)
If you removed the scenarios: stanza earlier to avoid the uninstallation bug, you can now re-integrate it. Update the installation configuration for the primary (Hub) and secondary locations (Spokes).