Changes to Custom Resource Definitions

MtxSubdomain and MtxEngine custom resource definitions (CRDs) for Pricing Controller, Engine Controller, and Engine Operator-based deployments are in the matrixx.com group. MtxTopology, MtxSubdomain, and MtxEngine CRDs for use with Topology Operator-based deployments are in the matrixx.matrixx.com group.

CRD Groups

In a cluster which has both kinds of CRD, the original MtxSubdomain and MtxEngine take precedence when you attempt to view them using with a kubectl command similar to the following:

$ kubectl get mtxengines -A
No resources found

$ kubectl get mtxengines -A
No resources found

You must include the group to explicitly request the new MtxSubdomain and MtxEngine custom resources (CRs):

$ kubectl get mtxsubdomains.matrixx.matrixx.com -A
NAMESPACE        NAME           AGE
matrixx-master   subdomain-s1   13m
 
$ kubectl get mtxengines.matrixx.matrixx.com -A
NAMESPACE      NAME          AGE
matrixx-s1e1   engine-s1e1   13m
matrixx-s1e2   engine-s1e2   10m

Because there is only one type of MtxTopology CR, the group is optional:

$ kubectl get mtxtopologies -A
NAMESPACE        NAME       AGE
matrixx-master   topology   14m
 
$ kubectl get mtxtopologies.matrixx.matrixx.com -A
NAMESPACE        NAME       AGE
matrixx-master   topology   14m

Similarly, in k9s, you would search for:

  • matrixx.matrixx.com/v1/mtxengines rather than mtxengines for MtxEngine CRs.
  • matrixx.matrixx.com/v1/mtxtopologies or mtxtopologies for MtxTopology CRs.
  • matrixx.matrixx.com/v1/mtxsubdomains (before MATRIXX version 5270) or matrixx.matrixx.com/v2/mtxsubdomains (MATRIXX version 5270 and later) rather than mtxsubdomains for MtxSubdomain CRs.

CRD Upgrades

CRDs can be added or modified in the Helm templates, but these changes might not be propagated to the cluster. The helm install command deploys any CRDs in the chart that do not already exist on the cluster but the command ignores any modified CRDs. Similarly, the helm upgrade command ignores any new or modified CRDs. Because of this issue with Helm, it might be necessary to manually add or update CRDs. For more information see the discussion about adding new CRDs as part of upgrade (#6581) at the Helm GitHub repository.

In MATRIXX version 5270, the MtxSubdomain CRD was updated to add a version 2 (v2), that defines properties for optional tax configuration. On every cluster where there has been a pre-5270 MATRIXX deployment where the CRD exists and only supports v1, you must first update the MtxSubdomain CRD before installing or upgrading to 5270 or later with the following command:

helm template matrixx/matrixx --version 5270 --include-crds --show-only operatorV2/mtxsubdomain.yaml | kubectl apply -f -

If using Helm version 3.13.x or later, use the following command instead:

helm template matrixx/matrixx --version 5270 --include-crds --show-only crds/operatorV2/mtxsubdomain.yaml | kubectl apply -f -

Either version of this command only needs to be executed once. The updated CRD supports both the original v1 and the new v2.