Upgrade Harvester with bonded NICs on network

  • Related issues: #3047 [BUG] migrate_harv_mgmt_to_mgmt_br.sh should remove ClusterNetwork resource

Category:

  • Upgrade Harvester

Environment setup from v1.0.3 upgrade to v1.1.1

  1. Clone ipxe-example and switch to v1.0 branch
  2. Add three additional Network interface in Vagrantfile
      harvester_node.vm.network 'private_network',
        libvirt__network_name: 'harvester',
        mac: @settings['harvester_network_config']['cluster'][node_number]['mac']
      harvester_node.vm.network 'private_network',
        libvirt__network_name: 'harvester'
      harvester_node.vm.network 'private_network',
        libvirt__network_name: 'harvester'
      harvester_node.vm.network 'private_network',
        libvirt__network_name: 'harvester'
    
  3. Edit the config-create.yaml.j2 and config-join.yaml.j2 in /ansible/role/harvester/template/
  4. Add the cluster_network and defaultPysicalNIC to harvester-mgmt
    cluster_networks:
      vlan:
        enable: true
        description: "some description about this cluster network"
        config:
          defaultPhysicalNIC: harvester-mgmt
    
  5. Bond multiple NICs on harvester-mgmt and harvester-vlan networks
    networks:
        harvester-mgmt:
          interfaces:
          - name: {{ settings['harvester_network_config']['cluster'][0]['mgmt_interface'] }}  # The management interface name
          - name: ens9
          method: dhcp
        bond0:
          interfaces:
          - name: {{ settings['harvester_network_config']['cluster'][0]['vagrant_interface'] }}
          method: dhcp
        harvester-vlan:
          interfaces:
          - name: ens7
          - name: ens8
          method: none
    

Verification Steps

  1. Provision previous version of Harvester cluster

  2. For VLAN 1 testing, enable network on settings, select harvester-mgmt

  3. Create a vlan1 network with id 1 on Networks page image

  4. For other VLAN id testing, enable network on settings, select correct network interface e.g enps0f1 image

  5. Create a vlan91 network with available id 91 on Networks page (id number depends on your available network setting) image

  6. Create images with different OS distribution

  7. Create several virtual machines, set network to management-network or available vlan

  8. Create virtual machine on different target node

  9. Setup NFS or S3 backup target in settings

  10. Backup each virtual machines

  11. Shutdown all virtual machines

  12. Offline upgrade to target version, refer to https://docs.harvesterhci.io/v1.1/upgrade/automatic

Expected Results

  1. Can completely upgrade Harvester to specific version
  2. Cluster Network exists image
  3. Can create Vlan 1 on mgmt and route correctly
  4. Can create other valid VLAN on specific NIC and route correctly
  5. Check the network connectivity of vlan and management network
  6. All pods are running correctly
  7. Check can display Monitoring Chart
    • Prometheus dashboard
    • VM metrics
  8. Can access dashboard by VIP
  9. Can use original password to login
  10. Can start VM in running status
  11. Image exists without corrupted
  12. Volume exists
  13. Virtual network exists
  14. Backup exists
  15. Setting value exists
  16. Can restore VM from backup
  17. Can create new VMs (test)