Upgrading One Sub-Domain At a Time

When upgrading, you may want to have some additional control over when each individual sub-domain is upgraded. This requires some additional steps.

Procedure

  1. Upgrade the sub-domain 1 (s1) engines:
    1. Upgrade the s1 engine namespaces:
      helm --kube-context context1 upgrade mtx-engine-s1 matrixx/matrixx -n matrixx-engine-s1 -f base.yaml -f topology-upgrade_version.yaml -f cluster1.yaml --version upgrade_version
      helm --kube-context context2 upgrade mtx-engine-s1 matrixx/matrixx -n matrixx-engine-s1 -f base.yaml -f topology-upgrade_version.yaml -f cluster2.yaml --version upgrade_version
    2. Upgrade the namespace containing the agents but not the masters:
      helm --kube-context context2 upgrade mtx-operators matrixx/matrixx -n matrixx-operators -f base.yaml -f topology-upgrade_version.yaml -f cluster2.yaml --version upgrade_version
    3. Upgrade the namespace containing the masters configured to disable the sub-domain 2 (s2) and sub-domain 3 (s3) subdomain-operator instances:
      helm --kube-context context1 upgrade mtx-operators matrixx/matrixx -n matrixx-operators -f base.yaml -f topology-upgrade_version.yaml -f cluster1.yaml --set global.topology.domains[0].subdomains[1].disable=true --set global.topology.domains[0].subdomains[2].disable=true --version upgrade_version
      

      The Helm --set option allows you to temporarily modify configuration values from the command prompt rather than editing topology-upgrade_version.yaml.

    The topology-operator pod updates only the s1 MtxSubdomain CR, skipping the s2 and s3 MtxSubdomain CRs. The subdomain-operator-s1 pod acts upon the updated s1 MtxSubdomain CR to upgrade the s1 engines.
  2. Upgrade the sub-domain 2 (s2) engines:
    1. Upgrade the s2 engine namespaces:
      helm --kube-context context1 upgrade mtx-engine-s2 matrixx/matrixx -n matrixx-engine-s2 -f base.yaml -f topology-upgrade_version.yaml -f cluster1.yaml --version upgrade_version
      helm --kube-context context2 upgrade mtx-engine-s2 matrixx/matrixx -n matrixx-engine-s2 -f base.yaml -f topology-upgrade_version.yaml -f cluster2.yaml --version upgrade_version
    2. Upgrade the namespace containing the masters configured to disable the s3 subdomain-operator:
      helm --kube-context context1 upgrade mtx-operators matrixx/matrixx -n matrixx-operators -f base.yaml -f topology-upgrade_version.yaml -f cluster1.yaml --set global.topology.domains[0].subdomains[2].disable=true --version upgrade_version
      
    The topology-operator pod updates only the s2 MtxSubdomain CR. It has already updated the s1 MtxSubdomain CR and is skipping updating the s3 MtxSubdomain CR. The subdomain-operator-s2 acts upon the updated s2 MtxSubdomain CR to upgrade the s2 engines.
  3. Upgrade the sub-domain 3 (s3) engines:
    1. Upgrade the s3 engine namespaces:
      helm --kube-context context1 upgrade mtx-engine-s3 matrixx/matrixx -n matrixx-engine-s3 -f base.yaml -f topology-upgrade_version.yaml -f cluster1.yaml --version upgrade_version
      helm --kube-context context2 upgrade mtx-engine-s3 matrixx/matrixx -n matrixx-engine-s3 -f base.yaml -f topology-upgrade_version.yaml -f cluster2.yaml --version upgrade_version
    2. Upgrade the namespace containing the masters:
      helm --kube-context context1 upgrade mtx-operators matrixx/matrixx -n matrixx-operators -f base.yaml -f topology-upgrade_version.yaml -f cluster1.yaml --version upgrade_version
    The topology-operator pod updates the s3 MtxSubdomain CR. it has already updated the s1 and s2 MtxSubdomain CRs. The subdomain-operator-s3 acts upon the updated s3 MtxSubdomain CR to upgrade the s3 engines.