harvester / tests

Harvester test cases
Apache License 2.0
10 stars 31 forks source link

[TEST] v1.3.2 release testing - Four node upgrade with bonded nics #1471

Closed TachunLin closed 4 days ago

TachunLin commented 2 weeks ago

What's the test to develop? Please describe

Perform the four nodes upgrade test with bonded nics for v1.3.2 release testing

Prerequisite and dependency of test

  1. VLAN 1 network on mgmt and 1 network on bonded NICs
  2. 2 Virtual machines with data and md5sum computed- 1 running, 1 stopped
  3. 2 VM backup, snapshots - 1 backup when VM is running and 1 backup when VM is stooped
  4. Create a new storage class apart from default one. Use the new storage class for some basic operations.
  5. Import to Rancher and create an RKE2 guest cluster. provisioned on Harvester VM before the upgrade.
  6. Verify DHCP load balancer service
  7. Install Harvester CSI Driver (prior to latest version)
  8. Create a new Harvester PVC for nginx deployment
  9. Upgrade Rancher

Upgrade Test Path:

OS:

Upgrade Test Check

  1. Can correctly upgrade from v1.3.1 to v1.3.2-rc

Post Upgrade Check

  1. Dependencies Check
    1. dependency_charts
    2. Versions of all the crds
  2. Virtual machines are in same state as before and accessible.
  3. Restore the backups, check the data
  4. Image and volume status
  5. Monitoring chart status
  6. VM operations are highlighted and working fine.
  7. Upgrade RKE2 guest cluster
  8. Upgrade cloud provider and CSI driver
  9. Verify DHCP load balancer service and create a new Harvester PVC
  10. Shutting off VM and then restarting VM
TachunLin commented 2 weeks ago

Four nodes upgrade test on Ubuntu 24.04 from v1.3.1 to v1.3.2-rc2

Test environment

Harvester: v1.3.1 upgrade to v1.3.2-rc2 Rancher: v2.7.14 (Prime) RKE2 version: v1.27.16 OS: Ubuntu 24.04

Prerequisite and dependency setup

${\textsf{✅}}$ VLAN 1 network on mgmt and 1 network on bonded NICs $~~$ ![image](https://github.com/user-attachments/assets/3ae8e73d-218d-4bc1-8fd3-0956a8e80647)
${\textsf{✅}}$ 2 Virtual machines with data and md5sum computed- 1 running, 1 stopped $~~$ ![image](https://github.com/user-attachments/assets/65ff03b3-c3f7-47af-8430-2a2bd085aba4) ``` ubuntu@ubuntu2404-running:~$ sha512sum running.txt 09318b9fe73630d941a2f4fc9e7509d39565391d555abf20000634f07e357c1c67262bea1d18fe9078db0b37292424f16f56cb90f7f2714e9c2ce22b3595d6cb running.txt ``` ``` ubuntu@ubuntu2404-stopped:~$ sha512sum stopped.txt e4b11c7e5dbcff75eb76a2245f3ecb954ca8fe88ebeb4c263b29e6f4065bf9591d5cb09c4f5385a2cc514ca80233dd496ba45aee79ef2b1ca0c7ff3efb33d94d stopped.txt ```
${\textsf{✅}}$ 2 VM backup, snapshots - 1 backup when VM is running and 1 backup when VM is stooped $~~$ ![image](https://github.com/user-attachments/assets/4f789e31-65a9-4965-87a2-86e9ac093ba5)
${\textsf{✅}}$ Create a new storage class apart from default one. Use the new storage class for some basic operations. $~~$ ![image](https://github.com/user-attachments/assets/ae0b61bd-ab22-49b8-854f-98d1b63065b9)
${\textsf{✅}}$ Import to Rancher 2.7.14 and create an RKE2 v1.27.16 guest cluster. provisioned on Harvester VM before the upgrade. $~~$ ![image](https://github.com/user-attachments/assets/8ce321fb-ea50-4a5c-a57d-8bde04527b94) ![image](https://github.com/user-attachments/assets/9a002b3a-fcc3-40a6-9233-a5850c991c9e)
${\textsf{✅}}$ Verify cloud provider and csi-driver version and running $~~$ 1. cloud provider: 0.2.4 2. csi-driver: 0.1.17 ![image](https://github.com/user-attachments/assets/6212bb08-63e8-42ac-9f6b-01cacdcfcdc9)
${\textsf{✅}}$ Verify DHCP load balancer service $~~$ ![image](https://github.com/user-attachments/assets/e1c1b106-062f-4769-bec1-94b69d9ecd6f)
${\textsf{✅}}$ Create a new Harvester PVC for nginx deployment $~~$ ![image](https://github.com/user-attachments/assets/05d8e351-85cf-4a39-999b-2151c4dff749) ![image](https://github.com/user-attachments/assets/75d27173-20d3-40a1-9a4b-c2d55e137677) ![image](https://github.com/user-attachments/assets/c320fd76-de2a-43fe-b0a0-f452bcda62d8)

Upgrade from v1.3.1 to v1.3.2-rc2

${\textsf{✅}}$ Successfully upgrade to v1.3.2-rc2 $~~$ * Remember to apply this workaround https://github.com/harvester/harvester/issues/5756#issuecomment-2112855477 ![image](https://github.com/user-attachments/assets/b4ef5b2c-8f53-41fa-b081-8ec0416f4137)

Post Upgrade Check

${\textsf{✅}}$ Dependency check $~~$ Chart: https://github.com/harvester/harvester/tree/v1.3.2-rc2/deploy/charts/harvester/dependency_charts Values: https://github.com/harvester/harvester/blob/v1.3.2-rc2/deploy/charts/harvester/values.yaml - csi-snapshotter
$\color{green}{\textsf{PASS}}$ $~~$ - tag: v6.3.3 https://github.com/harvester/harvester/blob/v1.3.2-rc2/deploy/charts/harvester/dependency_charts/csi-snapshotter/values.yaml - Harvester: csi-snapshotter ![image](https://github.com/user-attachments/assets/ce34ff66-65f2-41f0-9fd0-146a257ff4f9)
- kubevirt-operator
$\color{green}{\textsf{PASS}}$ $~~$ - tag: 1.1.1-150500.8.18.1 https://github.com/harvester/harvester/blob/v1.3.2-rc2/deploy/charts/harvester/values.yaml - Harvester: virt-operator (deployment) ![image](https://github.com/user-attachments/assets/5ec72aea-488a-433d-81d5-19009728597b)
- kubevirt
$\color{green}{\textsf{PASS}}$ $~~$ - tag: 1.1.1-150500.8.18.1 https://github.com/harvester/harvester/blob/v1.3.2-rc2/deploy/charts/harvester/values.yaml - Harvester: kubevirt (crd) ![image](https://github.com/user-attachments/assets/76743279-6c25-457d-b354-fa48208c2e29)
- snapshot-validation-webhook
$\color{green}{\textsf{PASS}}$ $~~$ - tag: 6.3.3 https://github.com/harvester/harvester/blob/v1.3.2-rc2/deploy/charts/harvester/values.yaml - Harvester: harvester-snapshot-validation-webhook- (deployment) ![image](https://github.com/user-attachments/assets/e0371832-31f5-4023-ba1b-1df383df8bb0)
- whereabouts
$\color{green}{\textsf{PASS}}$ $~~$ - tag: 0.6.3 https://github.com/harvester/harvester/blob/v1.3.2-rc2/deploy/charts/harvester/values.yaml - Harvester: harvester-whereabouts- (pod) ![image](https://github.com/user-attachments/assets/47e6a6d5-7fe2-477c-b8d5-45cca94c260b)
${\textsf{✅}}$ Versions of all the crds $~~$ https://github.com/harvester/harvester/tree/v1.3.2-rc2/deploy/charts/harvester-crd/templates - addons.harvesterhci.io
$\color{green}{\textsf{PASS}}$ $~~$ https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_addons.yaml ``` harvester-node-0:~ # ./check-harvester-crd.sh https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_addons.yaml Observation: v1beta1 Expectation: v1beta1 True ```
- keypairs.harvesterhci.io
$\color{green}{\textsf{PASS}}$ $~~$ https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_keypairs.yaml ``` harvester-node-0:~ # ./check-harvester-crd.sh https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_keypairs.yaml Observation: v1beta1 Expectation: v1beta1 True ```
- harvesterhci.io_preferences
$\color{green}{\textsf{PASS}}$ $~~$ https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_preferences.yaml ``` harvester-node-0:~ # ./check-harvester-crd.sh https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_preferences.yaml Observation: v1beta1 Expectation: v1beta1 True ```
- harvesterhci.io_settings
$\color{green}{\textsf{PASS}}$ $~~$ https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_settings.yaml ``` harvester-node-0:~ # ./check-harvester-crd.sh https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_settings.yaml Observation: v1beta1 Expectation: v1beta1 True ```
- harvesterhci.io_supportbundles
$\color{green}{\textsf{PASS}}$ $~~$ https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_supportbundles.yaml ``` harvester-node-0:~ # ./check-harvester-crd.sh https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_supportbundles.yaml Observation: v1beta1 Expectation: v1beta1 True ```
- harvesterhci.io_upgradelogs
$\color{green}{\textsf{PASS}}$ $~~$ https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_upgradelogs.yaml ``` harvester-node-0:~ # ./check-harvester-crd.sh https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_upgradelogs.yaml Observation: v1beta1 Expectation: v1beta1 True ```
- harvesterhci.io_upgrades
$\color{green}{\textsf{PASS}}$ $~~$ https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_upgrades.yaml ``` harvester-node-0:~ # ./check-harvester-crd.sh https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_upgrades.yaml Observation: v1beta1 Expectation: v1beta1 True ```
- harvesterhci.io_versions
$\color{green}{\textsf{PASS}}$ $~~$ https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_versions.yaml ``` harvester-node-0:~ # ./check-harvester-crd.sh https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_versions.yaml Observation: v1beta1 Expectation: v1beta1 True ```
- harvesterhci.io_virtualmachinebackups
$\color{green}{\textsf{PASS}}$ $~~$ https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_virtualmachinebackups.yaml ``` harvester-node-0:~ # ./check-harvester-crd.sh https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_virtualmachinebackups.yaml Observation: v1beta1 Expectation: v1beta1 True ```
- harvesterhci.io_virtualmachineimages
$\color{green}{\textsf{PASS}}$ $~~$ https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_virtualmachineimages.yaml ``` harvester-node-0:~ # ./check-harvester-crd.sh https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_virtualmachineimages.yaml Observation: v1beta1 Expectation: v1beta1 True ```
- harvesterhci.io_virtualmachinerestores
$\color{green}{\textsf{PASS}}$ $~~$ https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_virtualmachinerestores.yaml ``` harvester-node-0:~ # ./check-harvester-crd.sh https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_virtualmachinerestores.yaml Observation: v1beta1 Expectation: v1beta1 True ```
- harvesterhci.io_virtualmachinetemplates
$\color{green}{\textsf{PASS}}$ $~~$ https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_virtualmachinetemplates.yaml ``` harvester-node-0:~ # ./check-harvester-crd.sh https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_virtualmachinetemplates.yaml Observation: v1beta1 Expectation: v1beta1 True ```
- harvesterhci.io_virtualmachinetemplateversions
$\color{green}{\textsf{PASS}}$ $~~$ https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_virtualmachinetemplateversions.yaml ``` harvester-node-0:~ # ./check-harvester-crd.sh https://raw.githubusercontent.com/harvester/harvester/v1.3.2-rc2/deploy/charts/harvester-crd/templates/harvesterhci.io_virtualmachinetemplateversions.yaml Observation: v1beta1 Expectation: v1beta1 True ```
${\textsf{✅}}$ Virtual machines are in same state as before and accessible $~~$ ![image](https://github.com/user-attachments/assets/a0d97540-ae4b-40c2-b20d-d5950a22fd9b)
${\textsf{✅}}$ Restore the backups, check the data $~~$ 1. Restore the running backup vm to new, the data can be restored and exists ![image](https://github.com/user-attachments/assets/7fb7d0b3-76c8-431e-9a0e-635c21611bf6) 2. Restore the stored backup vm to new, the data can be restored and exists ![image](https://github.com/user-attachments/assets/3c9ddc5d-fa81-489a-8d8b-a10e4010ad08)
${\textsf{✅}}$ Image and volume status $~~$ ![image](https://github.com/user-attachments/assets/94d410e1-dd94-4f4e-a30e-0afa10a91a61) ![image](https://github.com/user-attachments/assets/597e5007-67ab-467b-8b9f-bd24e4528020)
${\textsf{✅}}$ Monitoring chart status $~~$ ![image](https://github.com/user-attachments/assets/a8d0a3af-f3a0-4370-b3ed-d970056a3963) ![image](https://github.com/user-attachments/assets/7eae7e9a-3f85-41ca-9e38-06f28b5466fc) ![image](https://github.com/user-attachments/assets/9ee7d84f-f8ab-4c5d-b652-f26c6c76a456) ![image](https://github.com/user-attachments/assets/92a854ef-f8d4-466f-a764-61dcb3807635)
${\textsf{✅}}$ VM operations are highlighted and working fine $~~$ * Start * Stop * Restart * Soft reboot * Delete * Clone * Migrate * Add volume
${\textsf{✅}}$ Upgrade Rancher to v2.7.15 $~~$ 1. Can successfully upgrade Rancher to v2.7.15 and the RKE2 cluster is running ![image](https://github.com/user-attachments/assets/a631668b-e21b-45de-8cff-5d0ea70539f1)
${\textsf{✅}}$ Upgrade RKE2 guest cluster to v1.27.6+rke2r2 $~~$ 1. Can successfully upgrade the RKE2 cluster to `v1.27.6+rke2r2` ![image](https://github.com/user-attachments/assets/90815bab-876a-4a3c-973b-2e5a62108148) ![image](https://github.com/user-attachments/assets/fcfc2958-9ee8-4a1a-b127-60a110642bf7)
${\textsf{✅}}$ Upgrade cloud provider and CSI driver $~~$ 1. Automatically upgrade cloud provider to `v0.2.4` and csi-driver to `0.2.16` ![image](https://github.com/user-attachments/assets/c543b5b6-af0b-4914-bdc9-cb30ad665e65)
${\textsf{✅}}$ Create a new Harvester PVC $~~$ 1. Create a new Harvester PVC for nginx deployment ![image](https://github.com/user-attachments/assets/4b39ac82-b0c6-48c7-b587-614a89135565) ![image](https://github.com/user-attachments/assets/25824591-d8e6-4473-9d28-cadf6995fd4c) ![image](https://github.com/user-attachments/assets/64449b39-5b00-4892-ab6b-aba720010ca3)
${\textsf{✅}}$ Verify DHCP load balancer service $~~$ 1. Verify DHCP load balancer service ![image](https://github.com/user-attachments/assets/a3b770c4-a30e-4470-ada2-f4b1000bb1f8)