Migrating to Topology Operator
This example shows migration from a MATRIXX version XXXX deployment managed by Engine Operator to a deployment managed by Topology Operator. The same approach applies when migrating from Engine Controller.
Consider a multi-cluster deployment of two engines on version XXXX managed by the Engine Operator method:
- Engine s1e1 in cluster 1 namespace
matrixx-engine-s1
. - Engine s1e2 in cluster 2 namespace
matrixx-engine-s1
.
The engines were initially installed using:
helm --kube-context context1 install mtx-engine-s1 matrixx/matrixx -n matrixx-engine-s1 -f base-XXXX.yaml -f topology-XXXX-s1e1.yaml --version XXXX
helm --kube-context context2 install mtx-engine-s1 matrixx/matrixx -n matrixx-engine-s1 -f base-XXXX.yaml -f topology-XXXX-s1e2.yaml --version XXXX
The topology-XXXX-s1e1.yaml file has the following contents:
engine:
enabled: true
global:
configurationSources:
pricing-config:
docker:
image: example-pricing-sideloader:XXXX
topology:
domains:
- subdomains:
- pricing:
configurationSource:
refName: pricing-config
fileName: mtx_pricing_matrixxOne.xml
engines:
- external: false
processing:
externalAddress: proc-cls-s1e1 external address
publishing:
externalAddress: publ-cls-s1e1 external address
- external: true
processing:
externalAddress: proc-cls-s1e2 external address
publishing:
externalAddress: publ-cls-s1e2 external address
pricing-controller:
enabled: true
The topology-XXXX-s1e2.yaml file has the following contents:
engine:
enabled: true
global:
configurationSources:
pricing-config:
docker:
image: example-pricing-sideloader:XXXX
topology:
domains:
- subdomains:
- pricing:
configurationSource:
refName: pricing-config
fileName: mtx_pricing_matrixxOne.xml
engines:
- external: true
processing:
externalAddress: proc-cls-s1e1 external address
publishing:
externalAddress: publ-cls-s1e1 external address
- external: false
processing:
externalAddress: proc-cls-s1e2 external address
publishing:
externalAddress: publ-cls-s1e2 external address
pricing-controller:
enabled: true
The engines will be upgraded to version YYYY and managed by the Topology Operator method:
- The masters and agents in cluster 1 namespace
matrixx-operators
. - Agents in cluster 2 namespace
matrixx-operators
. - Engine s1e1 in cluster 1 namespace
matrixx-engine-s1
. - Engine s1e2 in cluster 2 namespace
matrixx-engine-s1
.
The upgraded engines are deployed using the following topology-YYYY.yaml Helm values file:
engine:
enabled: true
global:
configurationSources:
pricing-config:
docker:
image: example-pricing-sideloader:YYYY
topology:
operators:
master:
context: context1
namespace: matrixx-operators
agents:
- context: context1
namespace: matrixx-operators
externalAddress: topology-agent-1 external address
- context: context2
namespace: matrixx-operators
externalAddress: topology-agent-2 external address
domains:
- subdomains:
- pricing:
configurationSource:
refName: pricing-config
fileName: mtx_pricing_matrixxOne.xml
engines:
- context: context1
namespace: matrixx-engine-s1
processing:
externalAddress: proc-cls-s1e1 external address
publishing:
externalAddress: publ-cls-s1e1 external address
- context: context2
namespace: matrixx-engine-s1
processing:
externalAddress: proc-cls-s1e2 external address
publishing:
externalAddress: publ-cls-s1e2 external address
pricing-controller:
enabled: true