Gateway Proxy, RS Gateway, and Site-Level TRAs

Gateway Proxy, RS Gateway, and the site-level Traffic Routing Agent (TRA-DR) occupy their own namespaces in a multi-namespace deployment.

In this example, components are distributed across namespaces in the following way:

  • The masters and agents in namespace matrixx-operators.
  • MATRIXX Engine s1e1 in namespace matrixx-s1e1.
  • Engine s1e2 in namespace matrixx-s1e2.
  • Gateway Proxy and RS Gateway in namespace matrixx-gateways.
  • TRA-DR in namespace matrixx-tra.

Installation Example

Create the namespaces with commands similar to the following:

kubectl create ns matrixx-operators
kubectl create ns matrixx-s1e1
kubectl create ns matrixx-s1e2
kubectl create ns matrixx-gateways
kubectl create ns matrixx-tra

Given those characteristics, install MATRIXX with the following series of helm install commands, where matrixx_version is the version of MATRIXX and base.yaml is the same as previous examples:

helm install mtx-gateways matrixx/matrixx -n matrixx-gateways -f base.yaml -f gateways.yaml --version matrixx_version
helm install mtx-s1e1 matrixx/matrixx -n matrixx-s1e1 -f base.yaml -f topology-install.yaml --version matrixx_version
helm install mtx-s1e2 matrixx/matrixx -n matrixx-s1e2 -f base.yaml -f topology-install.yaml --version matrixx_version
helm install mtx-operators matrixx/matrixx -n matrixx-operators -f base.yaml -f topology-install.yaml --version matrixx_version
helm install mtx-tra matrixx/matrixx -n matrixx-tra -f base.yaml -f topology-install.yaml -f tra.yaml --version matrixx_version

The following gateways.yaml file controls Gateway Proxy and RS Gateway and their connection to the site-level TRA (TRA-DR).

gateway-proxy:
  enabled: true
  connections:
    tra:
      host: tra-ag1.matrixx-tra
 
rsgateway:
  enabled: true

The following topology-install.yaml file specifies engine and engine-level TRAs (TRA-PROC and TRA-PUB) in a domain and sub-domains:

engine:
  enabled: true
 
global:
  configurationSources:
    pricing-config:
      docker:
        image: example-pricing-sideloader:matrixx_version
  topology:
    operators:
      master:
        namespace: matrixx-operators
      agents:
      - namespace: matrixx-operators
    domains:
    - subdomains:
      - pricing:
          configurationSource:
            refName: pricing-config
          fileName: mtx_pricing_matrixxOne.xml
        engines:
        - namespace: matrixx-s1e1
        - namespace: matrixx-s1e2
 
pricing-controller:
  enabled: true

The following tra.yaml file enables the site-level TRA (TRA-RT).

tra:
  enabled: true

In this installation:

  • The engine sub-chart must be enabled and topology information configured in the namespace containing the TRA-RT (matrixx-tra).
  • The namespace containing Gateway Proxy and RS Gateway (matrixx-gateways) does not require the engine sub-chart to be enabled or topology information to be configured.

Upgrade Example

Pin the schema version to the pre-upgrade version with the following command:

helm upgrade mtx-gateways matrixx/matrixx -n matrixx-gateways -f base.yaml -f gateways.yaml -f versionPinning.yaml --version upgraded_version

Where the versionPinning.yaml Helm values file with the following contents:

global:
  versionPinning:
    schemaVersion: "matrixx_version" # Pre-upgrade version
    providerSchemaVersion: "provider_schema_version" #Pre-upgrade version

Upgrade the engines with the following commands:

helm upgrade mtx-s1e1 matrixx/matrixx -n matrixx-s1e1 -f base.yaml -f topology-upgrade.yaml --version upgraded_version
helm upgrade mtx-s1e2 matrixx/matrixx -n matrixx-s1e2 -f base.yaml -f topology-upgrade.yaml --version upgraded_version
helm upgrade mtx-operators matrixx/matrixx -n matrixx-operators -f base.yaml -f topology-upgrade.yaml --version upgraded_version

Where the topology-upgrade.yaml Helm values file includes the following contents:

engine:
  enabled: true
 
global:
  configurationSources:
    pricing-config:
      docker:
        image: example-pricing-sideloader:upgraded_version
  topology:
    operators:
      master:
        namespace: matrixx-operators
      agents:
      - namespace: matrixx-operators
    domains:
    - subdomains:
      - pricing:
          configurationSource:
            refName: pricing-config
          fileName: mtx_pricing_matrixxOne.xml 
        engines:
        - namespace: matrixx-s1e1
        - namespace: matrixx-s1e2
 
pricing-controller:
  enabled: true

Upgrade the site-level TRA (TRA-RT) with the following command (where upgraded_version is the post-upgrade version):

helm upgrade mtx-tra matrixx/matrixx -n matrixx-tra -f base.yaml -f topology-upgrade.yaml -f tra.yaml --version upgraded_version

Remove version pinning with the following command (where upgraded_version is the post-upgrade version):

helm upgrade mtx-gateways matrixx/matrixx -n matrixx-gateways -f base.yaml -f gateways.yaml --version upgraded_version