Upgrading TIBCO Control Plane

You can upgrade self-hosted TIBCO Control Plane by upgrading updated Helm charts.

Before you begin
  • You must create the session-keys secret required by platform-bootstrap chart. The default secret name is session-keys and key names are TSC_SESSION_KEY and DOMAIN_SESSION_KEY.

    Run this command to create the session-keys secret by using existing values:

    TSC_SESSION_KEY=$(kubectl get tibcoclusterenv ops.tsc.session.key -n <Control_Plane_Namespace> -o jsonpath='{.spec.value}')
    DOMAIN_SESSION_KEY=$(kubectl get tibcoclusterenv ops.domain.session.key -n <Control_Plane_Namespace> -o jsonpath='{.spec.value}')
    kubectl create secret generic session-keys -n <Control_Plane_Namespace> \
      --from-literal=TSC_SESSION_KEY=$TSC_SESSION_KEY \     
      --from-literal=DOMAIN_SESSION_KEY=$DOMAIN_SESSION_KEY
    

    If you want to use a different secret for both TSC_SESSION_KEY and DOMAIN_SESSION_KEY or if you want to use different secret names then it can be passed using values when installing bootstrap chart.

    --set router-operator.tscSessionKey.secretName=session-key-tsc --set router-operator.tscSessionKey.key=TSC_SESSION_KEY_NEW --set router-operator.domainSessionKey.secretName=session-key-domain --set router-operator.domainSessionKey.key=DOMAIN_SESSION_KEY_NEW
    
  • You must create the cporch-encryption-secret secret by using existing values. This secret is required by platform-base chart. To prevent the secret from getting deleted in this release, we need to annotate it.

    1. Save the secret and keep backup.

      kubectl get secret cporch-encryption-secret -n <Control_Plane_Namespace> -o yaml > cporch-encryption-secret.yaml
    2. Annotate the secret to prevent it being deleted during platform-base upgrade.

      kubectl annotate secret cporch-encryption-secret helm.sh/resource-policy=keep --overwrite -n <Control_Plane_Namespace>
      
      Warning: During upgrade, you must correctly annotate the cporch-encryption-secret for existing ingress. Failure to properly annotate this secret can lead to its deletion, which will cause the Control Plane to stop working, existing keys and secrets non-functional, and bring down the entire TIBCO Control Plane. If this secret is deleted, existing setups will not work properly and may need to be recreated.
  • If you are using a custom container registry, you must push the updated images to your custom registry. For more information, see Pushing Images to Custom Container Registry.
  • If you have Service Mesh capability provisioned in an earlier version, then you must remove the service mesh capability before upgrading to the latest version of TIBCO Control Plane.

Note: You cannot change default container registry and Helm chart repository when upgrading from an earlier version.
    Procedure
  1. Update your local helm repository with the latest charts.

    helm repo update
  2. Upgrading platform-bootstrap Chart

  3. Fetch the current values of platform-bootstrap chart installed.

    helm get values -n <control_plane_namespace> platform-bootstrap > values.yaml
  4. Update the values for platform-bootstrap as per new structure. Refer to the values.yaml available in the GitHub Repository for correct structure and indentation to avoid errors.

    • The tp-cp-bootstrap chart has been removed. The following charts (hybrid-proxy, resource-set-operator, router-operator, compute-services, otel-collector) are now directly included within platform-bootstrap. Due to this restructuring, values for these components should no longer be passed under a tp-cp-bootstrap section.

    Note: In this release, there are changes in the structure of chart values. For successful upgrade to version 1.9.0, you must update your existing values YAML files as per new values YAML file structure.
  5. Upgrade platform-bootstrap chart with the updated values by using the following command. For more information about the chart version, see Helm Chart Version Matrix.

    helm upgrade --install --wait --timeout=1h -n <control_plane_namespace> platform-bootstrap tibco-platform/platform-bootstrap -f values.yaml --version=1.9.0
  6. Upgrading platform-base Chart

  7. Fetch the current values of platform-base chart installed.

    helm get values -n <control_plane_namespace> platform-base > values.yaml
  8. Update the values for platform-base as per new structure. Refer to the values.yaml available in the GitHub Repository for correct structure and indentation to avoid errors.

    • The global values previously managed by platform-bootstrap (containerRegistry, controlPlaneInstanceId, serviceAccount, and dnsDomain etc.) must now be explicitly passed again in the platform-base chart values.

    Note: In this release, there are changes in the structure of chart values. For successful upgrade to version 1.9.0, you must update your existing values YAML files as per new values YAML file structure.
  9. Upgrade platform-base chart with updated values by using the following command. For more information about the chart version, see Helm Chart Version Matrix.

    helm upgrade --install --wait --timeout=1h -n <control_plane_namespace> platform-base tibco-platform/platform-base -f values.yaml --version=1.9.0
  10. If you are already signed in to TIBCO Control Plane, sign out and sign in again.