From TestNF 3.1.0, we support TestNF upgrade from lower version(2.3.x, 3.0.x) to latest one.

  1. Login to TCA GUI, make sure latest TestNF csar is uploaded, and TestNF instance with lower version is Instantiated successfully.

  2. Click upgrade button to start upgrading.

    Figure 1. Trigger Upgrade
  3. Select target TestNF package and click NEXT button.

    Figure 2. Select upgrade package
  4. Check new node customization items and click NEXT button.

    Figure 3. Check New Node Customization items
  5. Provide helm repository information and click NEXT button. For non-airgapped environment, could use https://vmwaresaas.jfrog.io/artifactory/helm-registry/ directly without username and password. For airgapped environment, it should be the repository address where TestNF helm charts store.

    Figure 4. Provide helm repository information.
  6. Select right port groups for each NIC, and upload new values.yml if needed. Then click NEXT button.

    Figure 5. Give parameters
  7. Click NEXT button and review all parameters. If no questions, click UPGRADE button.

    Figure 6. Review
  8. After several minutes, would see upgrade result in GUI.

    Figure 7. Upgrade Success

Caution:

For upgrading from TestNF 2.3.x, the following extra steps should be taken before doing any upgrade operations on TCA GUI.

Extra Steps for upgrading from TestNF 2.3.x.
  • In TestNF 2.3, below network-attachment-definitions resources are created in target namespace by default.

capv@classy-e2e-wc1-cp-control-plane-xnn2x [ ~ ]$ kubectl get network-attachment-definitions -n testnf-du
NAMESPACE   NAME         AGE
testnf-du   ipvlan       14m
testnf-du   macvlan      14m
testnf-du   sriov-pass   14m
  • If still want to these existing resources, please set below section in values.yaml when triggering upgrade.

nads: []
  • If want to create and use new nads, please set below section in values.yaml when triggering upgrade.

annotations:    
  k8s.v1.cni.cncf.io/networks: ipvlan-new,macvlan-new,sriov-pass-new

nads:
- apiVersion: "k8s.cni.cncf.io/v1"
  kind: NetworkAttachmentDefinition
  metadata:
    name: ipvlan-new
    annotations:
      k8s.v1.cni.cncf.io/resourceName: vlan1
  spec:
    config: '{
      "cniVersion": "0.3.0",
      "name": "ipvlan",
      "plugins": [
        {
          "type": "ipvlan",
          "master": "vlan1",
          "ipam": {
            "type": "host-local",
            "ranges": [
              [{
                "subnet": "192.167.11.0/24",
                "rangeStart": "192.167.11.1",
                "rangeEnd": "192.167.11.255"
              }]
            ]
          }
        }
      ]
    }'
- apiVersion: "k8s.cni.cncf.io/v1"
  kind: NetworkAttachmentDefinition
  metadata:
    name: macvlan-new
    annotations:
      k8s.v1.cni.cncf.io/resourceName: vlan2
  spec:
    config: '{
      "cniVersion": "0.3.0",
      "name": "macvlan",
      "plugins": [
        {
          "type": "macvlan",
          "master": "vlan2",
          "ipam": {
            "type": "host-local",
            "ranges": [
              [{
                "subnet": "192.167.12.0/24",
                "rangeStart": "192.167.12.1",
                "rangeEnd": "192.167.12.255"
              }]
            ]
          }
        }
      ]
    }'
- apiVersion: "k8s.cni.cncf.io/v1"
  kind: NetworkAttachmentDefinition
  metadata:
    name: sriov-pass-new
    annotations:
      k8s.v1.cni.cncf.io/resourceName: intel.com/sriovpass
  spec:
    config: '{
      "cniVersion": "0.3.0",
      "name": "sriov-pass-network",
      "plugins": [
        {
          "type": "host-device",
          "ipam": {
            "type": "host-local",
            "ranges": [
              [{
                "subnet": "192.167.13.0/24",
                "rangeStart": "192.167.13.1",
                "rangeEnd": "192.167.13.255"
              }]
            ]
          }
        },
        {
          "type": "sbr"
        },
        {
          "type": "tuning",
          "sysctl": {
            "net.core.somaxconn": "500"
          },
          "promisc": true
        }
      ]
    }'