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.yaml file 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.

  1. 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 langflow superuser (LANGFLOW_SUPERUSER).
    • Generates a secure password for the langflow user (LANGFLOW_SUPERUSER_PASSWORD).
  2. Ensure the created secret is synchronized with the upm-langflow and upm-beaco-ff-base namespaces:

    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.providerparameters.global.load_balancer_provider
beaconAgent.provisioning.loadBalancersEnabledparameters.global.load_balancer_mode
beaconAgent.provisioning.nodePortDomainparameters.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

  1. Open the values.yaml file of your primary instance (Hub).

  2. Remove the entire scenarios: stanza.

  3. 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

  1. Edit your HybridControlPlane resource:

    kubectl edit hybridcontrolplane <resource-name>

    Where <resource-name> is the name you assigned during installation.

  2. Delete the scenarios section from the specification.

  3. 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

  1. Update your Helm repository:

    helm repo update
  2. 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.

  1. Update the edbpgai-bootstrap project 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-bootstrap project.
  2. Edit the HybridControlPlane resource:

    kubectl edit hybridcontrolplane <resource-name>

    Where <resource-name> is the name you assigned during installation.

  3. In the YAML editor, locate the spec.version (or equivalent version field) and update it to 2026.1.0.

  4. Save the changes. Force a reconciliation by annotating the resource:

    kubectl annotate hybridcontrolplane <resource-name> --overwrite edbpgai.com/ready-for-upgrade=true
  5. 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).