Single Namespace

These examples show installation and upgrade of Topology Operator masters, agents, and MATRIXX Engines s1e1 and s1e2 in the matrixx namespace.

Note: In all the Topology Operator usage examples, multiple Helm values files are used. Although it is not obvious in this example, this technique is invaluable for more complicated deployments where it can reduce unnecessary duplication and enable you to upgrade the deployment in stages. For more information, see the discussion about managing Helm values files.

Installation Example

Create the namespace and perform installation with the following commands:

kubectl create ns matrixx
helm install mtx matrixx/matrixx -n matrixx -f base.yaml -f topology-install.yaml --version matrixx_version

Where matrixx_version is the version of MATRIXX, such as 5280.

In a single-namespace, single-cluster deployment, explicit location configurations for the masters, agents, or engines are not needed.

The base.yaml Helm values file has the following contents:

activemq:
  enabled: false
 
engine:
  enabled: true
 
event-streamer:
  enabled: false
 
gateway-proxy:
  enabled: false
 
global:
  image:
    registry:
      name: registry_url
      password: registry_password
      username: registry_username

matrixxbct:
  enabled: false
 
mymatrixx:
  enabled: false
 
notifier:
  enabled: false
 
payment-service:
  enabled: false
 
pricing-controller:
  enabled: false
 
rsgateway:
  enabled: false
 
snmp-exporter:
  enabled: false
 
tra:
  enabled: false

The topology-install.yaml has the following contents:

engine:
  enabled: true
 
global:
  configurationSources:
    pricing-config:
      docker:
        image: example-pricing-sideloader:matrixx_version
  topology:
    domains:
    - subdomains:
      - pricing:
          configurationSource:
            refName: pricing-config
          fileName: mtx_pricing_matrixxOne.xml
        engines:
        - checkpointing:
            replicaCount: 1
          processing:
            replicaCount: 2
            tralb:
              replicaCount: 2
          publishing:
            replicaCount: 2
            tralb:
              replicaCount: 2
        - checkpointing:
            replicaCount: 1
          processing:
            replicaCount: 2
            tralb:
              replicaCount: 2
          publishing:
            replicaCount: 2
            tralb:
              replicaCount: 2
 
pricing-controller:
  enabled: true

Upgrade Example

Upgrade the processing, publishing, and checkpointing pods of both engines to use custom configuration with the following command:

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

The processing, publishing, and checkpointing pods of both engines are configured with a configuration source using a topology-upgrade.yaml Helm values file with the following contents:

engine:
  enabled: true
 
global:
  configurationSources:
    pricing-config:
      docker:
        image: example-pricing-sideloader:matrixx_version
    engine-config:
      docker:
        image: example-engine-config-sideloader:matrixx_version 
  topology:
    domains:
    - subdomains:
      - pricing:
          configurationSource:
            refName: pricing-config
          fileName: mtx_pricing_matrixxOne.xml
        configuration:
          engine:
            sources:
            - refName: engine-config
        engines:
        - checkpointing:
            replicaCount: 1
          processing:
            replicaCount: 2
            tralb:
              replicaCount: 2
          publishing:
            replicaCount: 2
            tralb:
              replicaCount: 2
        - checkpointing:
            replicaCount: 1
          processing:
            replicaCount: 2
            tralb:
              replicaCount: 2
          publishing:
            replicaCount: 2
            tralb:
              replicaCount: 2
 
pricing-controller:
  enabled: true
Note: Unlike the previous Engine Controller and Engine Operator methods, when using the topology-operator method you can use helm upgrade to update the engine configuration, rather than uninstalling and reinstalling.