harvester / tests

Harvester test cases
Apache License 2.0
11 stars 32 forks source link

[TEST] v1.4.0 release testing - Four node upgrade with bonded nics #1625

Open TachunLin opened 1 week ago

TachunLin commented 1 week ago

What's the test to develop? Please describe

Perform the four nodes upgrade test with bonded nics for v1.4.0 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 RKE1 & RKE2 guest cluster. provisioned on Harvester VM before the upgrade.
  6. Deploy Harvester cloud provider to RKE1 Cluster (prior to latest version)
  7. Verify DHCP load balancer service
  8. Install Harvester CSI Driver in RKE2 (prior to latest version)
  9. Create a new Harvester PVC for nginx deployment
  10. Create Load balancer and PVC in the guest cluster in RKE2 cluster.
  11. Upgrade Rancher
  12. Create another one node guest cluster.
  13. Scale down up the guest cluster gc1.

Upgrade Test Path:

OS:

Upgrade Test Check

  1. Can correctly upgrade from v1.3.2 to v1.4.0-rc4

Post Upgrade Check

  1. Dependencies Check
  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. Add a node after the upgrade
  8. Upgrade RKE1/RKE2 guest cluster
  9. Upgrade cloud provider and CSI driver
  10. Verify DHCP load balancer service and create a new Harvester PVC
  11. Shutting off VM and then restarting VM
TachunLin commented 6 days ago

Four nodes upgrade test on SLES 15 SP6 from v1.3.2 to v1.4.0-rc4

Test environment

Harvester: v1.3.2 upgrade to v1.4.0-rc4 Rancher: v2.7.15 (Prime) RKE2 version: OS: SLES 15 SP6

Prerequisite and dependency setup

${\textsf{✅}}$ VLAN 1 network on mgmt and another vlan 100 network on bonded NICs $~~$ ![image](https://github.com/user-attachments/assets/745600f3-8fdf-4a30-8d03-a8958a5557a3)
${\textsf{✅}}$ 2 Virtual machines with data and md5sum computed- 1 running, 1 stopped $~~$ ![image](https://github.com/user-attachments/assets/dcf53ead-3ccb-45ff-944f-d97a8bde7a80) ``` sles@sles15-sp6-running:~> sha512sum running.txt 831658c6fa11148b1b6c91aeedf5dedb7eca9ed088b5561deaa1774d8bfce7bf322a1bcaf71b4457e688c64f2a1e6adbd71f273f9ae8bf7d482289963ac17f8a running.txt ``` ``` sles@sles15-sp6-stopped:~> sha512sum stopped.txt 6c9ea237c6001f86c0aeadaed585d9dc04ddfe704992284db7c56c5fdc9c874a01c9dc47d459cf82686aefa28dbadc836340d10a01731896c3ee05fd6f813ee7 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/82697d8e-a035-49f1-8913-978c3c567a53)
${\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/afd09943-f863-4628-9b56-33a19bbfb8c9)
${\textsf{✅}}$ Import to Rancher 2.7.15 and create an RKE2 v1.27.16 guest cluster. provisioned on Harvester VM before the upgrade. $~~$ ![image](https://github.com/user-attachments/assets/d3f9d96c-8b26-4f5a-a4d4-d20d85e1ba7f) ![image](https://github.com/user-attachments/assets/e5f884b7-5e93-4974-a5fc-7461f9c1b012)
${\textsf{✅}}$ Verify cloud provider and csi-driver version and running $~~$ - csi-driver: 0.1.18 - cloud provider: 0.2.4 ![image](https://github.com/user-attachments/assets/256fe9fe-2a23-4c14-9413-72d78b64b0fa)
${\textsf{✅}}$ Create a new Harvester PVC for nginx deployment $~~$ ![image](https://github.com/user-attachments/assets/45b8387d-33eb-4420-bab6-44df1e96d2e2) ![image](https://github.com/user-attachments/assets/c3abdaa4-460d-4cf5-8a65-c4c00dad38de) ![image](https://github.com/user-attachments/assets/ab170cdb-4079-441a-b299-16688741801a)
${\textsf{✅}}$ Verify DHCP load balancer service $~~$ ![image](https://github.com/user-attachments/assets/f3375fc8-60cb-4771-9d0b-339a6806efc3)

Upgrade from v1.3.2 to v1.4.0-rc4

${\textsf{✅}}$ Successfully upgrade to v1.4.0-rc4 $~~$ * Remember to apply this workaround https://github.com/harvester/harvester/issues/5756#issuecomment-2112855477 ![image](https://github.com/user-attachments/assets/940678ab-b46d-44e0-a53e-b9e5ea2efbed)

Post Upgrade Check

${\textsf{✅}}$ Dependency check $~~$ Chart: https://github.com/harvester/harvester/tree/v1.4.0-rc4/deploy/charts/harvester/dependency_charts Values: https://github.com/harvester/harvester/blob/v1.4.0-rc4/deploy/charts/harvester/values.yaml - csi-snapshotter
$\color{green}{\textsf{PASS}}$ $~~$ - tag: v6.3.3 https://github.com/harvester/harvester/blob/v1.4.0-rc4/deploy/charts/harvester/dependency_charts/csi-snapshotter/values.yaml - Harvester: csi-snapshotter ![image](https://github.com/user-attachments/assets/a09154ce-5e2f-412f-a4ce-3108733c7cdf)
- kubevirt-operator
$\color{green}{\textsf{PASS}}$ $~~$ - tag: 1.2.2-150500.8.21.1 https://github.com/harvester/harvester/blob/v1.4.0-rc4/deploy/charts/harvester/values.yaml - Harvester: virt-operator (deployment) ![image](https://github.com/user-attachments/assets/84d3e419-0dc5-47b4-b09f-9673be6d4d6a)
- kubevirt
$\color{green}{\textsf{PASS}}$ $~~$ - tag: 1.2.2-150500.8.21.1 https://github.com/harvester/harvester/blob/v1.4.0-rc4/deploy/charts/harvester/values.yaml - Harvester: kubevirt (crd) ![image](https://github.com/user-attachments/assets/dbd83def-4c28-4d25-bcb1-224d9418ba26)
- snapshot-validation-webhook
$\color{green}{\textsf{PASS}}$ $~~$ - tag: 6.3.3 https://github.com/harvester/harvester/blob/v1.4.0-rc4/deploy/charts/harvester/values.yaml - Harvester: harvester-snapshot-validation-webhook- (deployment) ![image](https://github.com/user-attachments/assets/90d7b2f6-0119-4101-990a-f6b69ac86532)
- whereabouts
$\color{green}{\textsf{PASS}}$ $~~$ - tag: 0.6.3 https://github.com/harvester/harvester/blob/v1.4.0-rc4/deploy/charts/harvester/values.yaml - Harvester: harvester-whereabouts- (pod) ![image](https://github.com/user-attachments/assets/7bcf42f5-6e48-4cd3-a1c5-3003be6520bc)
${\textsf{✅}}$ Versions of all the crds $~~$ https://github.com/harvester/harvester/tree/v1.4.0-rc4/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.4.0-rc4/deploy/charts/harvester-crd/templates/harvesterhci.io_preferences.yaml ``` harvester-node-0:~ # ./check-harvester-crd.sh https://raw.githubusercontent.com/harvester/harvester/v1.4.0-rc4/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.4.0-rc4/deploy/charts/harvester-crd/templates/harvesterhci.io_settings.yaml ``` harvester-node-0:~ # ./check-harvester-crd.sh https://raw.githubusercontent.com/harvester/harvester/v1.4.0-rc4/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.4.0-rc4/deploy/charts/harvester-crd/templates/harvesterhci.io_supportbundles.yaml ``` harvester-node-0:~ # ./check-harvester-crd.sh https://raw.githubusercontent.com/harvester/harvester/v1.4.0-rc4/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.4.0-rc4/deploy/charts/harvester-crd/templates/harvesterhci.io_upgradelogs.yaml ``` harvester-node-0:~ # ./check-harvester-crd.sh https://raw.githubusercontent.com/harvester/harvester/v1.4.0-rc4/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.4.0-rc4/deploy/charts/harvester-crd/templates/harvesterhci.io_upgrades.yaml ``` harvester-node-0:~ # ./check-harvester-crd.sh https://raw.githubusercontent.com/harvester/harvester/v1.4.0-rc4/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.4.0-rc4/deploy/charts/harvester-crd/templates/harvesterhci.io_versions.yaml ``` harvester-node-0:~ # ./check-harvester-crd.sh https://raw.githubusercontent.com/harvester/harvester/v1.4.0-rc4/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.4.0-rc4/deploy/charts/harvester-crd/templates/harvesterhci.io_virtualmachinebackups.yaml ``` harvester-node-0:~ # ./check-harvester-crd.sh https://raw.githubusercontent.com/harvester/harvester/v1.4.0-rc4/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.4.0-rc4/deploy/charts/harvester-crd/templates/harvesterhci.io_virtualmachineimages.yaml ``` harvester-node-0:~ # ./check-harvester-crd.sh https://raw.githubusercontent.com/harvester/harvester/v1.4.0-rc4/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.4.0-rc4/deploy/charts/harvester-crd/templates/harvesterhci.io_virtualmachinerestores.yaml ``` harvester-node-0:~ # ./check-harvester-crd.sh https://raw.githubusercontent.com/harvester/harvester/v1.4.0-rc4/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.4.0-rc4/deploy/charts/harvester-crd/templates/harvesterhci.io_virtualmachinetemplates.yaml ``` harvester-node-0:~ # ./check-harvester-crd.sh https://raw.githubusercontent.com/harvester/harvester/v1.4.0-rc4/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.4.0-rc4/deploy/charts/harvester-crd/templates/harvesterhci.io_virtualmachinetemplateversions.yaml ``` harvester-node-0:~ # ./check-harvester-crd.sh https://raw.githubusercontent.com/harvester/harvester/v1.4.0-rc4/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/5597cdd2-b2ca-460f-86f8-509070c5e705)
${\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/bf66b08e-67de-437a-a879-3e68f60a6a42) 2. Restore the stopped backup vm to new, the data can be restored and exists ![image](https://github.com/user-attachments/assets/176e2a13-5d87-4178-81cf-054dad5bc38b)
${\textsf{❌}}$ Image and volume status $~~$ * Volume state is fine ![image](https://github.com/user-attachments/assets/c7b38bcd-fac5-4df2-846e-5f9efc5dd9c2) * One of the image display 0% progress and can't be used, ![image](https://github.com/user-attachments/assets/a4139e81-13a0-4ac5-b855-51065d0c7fcc) * Track in issue https://github.com/harvester/harvester/issues/6894
${\textsf{✅}}$ Monitoring chart status $~~$ ![image](https://github.com/user-attachments/assets/3b4c124b-ad94-4311-a86d-aa41f362f5b0) ![image](https://github.com/user-attachments/assets/176e2d7b-9d68-47d9-9d53-9a0c6da2ecb2) ![image](https://github.com/user-attachments/assets/06961cac-6045-4fe7-82ca-bf60dbd09d4b) ![image](https://github.com/user-attachments/assets/a77dd3e3-5476-4c8c-a074-ffe1a9c2ab5f) ![image](https://github.com/user-attachments/assets/5e04b32f-cef0-4412-bebf-30199bc84e2f)
${\textsf{✅}}$ VM operations are highlighted and working fine $~~$ * Start * Stop * Restart * Soft reboot * Delete * Clone * Migrate * Add volume
${\textsf{✅}}$ Rancher v2.7.15 and RKE2 cluster running well $~~$ ![image](https://github.com/user-attachments/assets/5b5a28a1-6a4e-4e94-bd5a-5db88d67fce7)
${\textsf{✅}}$ Upgrade Rancher to v2.8.9 $~~$ 1. Can successfully upgrade Rancher to v2.8.9 and the RKE2 cluster is running ![image](https://github.com/user-attachments/assets/900c8ba5-a84e-4e4f-93b5-8e9694f4e2cf)
${\textsf{✅}}$ Upgrade RKE2 guest cluster to v1.28.14+rke2r2 $~~$ 1. Can successfully upgrade the RKE2 cluster to `v1.28.14+rke2r2` ![image](https://github.com/user-attachments/assets/71fa9ef0-3410-482e-947f-e4b63f2a19a3) ![image](https://github.com/user-attachments/assets/6cc5129b-5a3d-463a-86be-bdeb4f524215)
${\textsf{✅}}$ Upgrade cloud provider and CSI driver $~~$ 1. Automatically upgrade cloud provider to `v0.2.6` and csi-driver to `0.1.18` ![image](https://github.com/user-attachments/assets/06298346-aa12-4fe1-809a-35d7f618a281)
${\textsf{✅}}$ Create a new Harvester PVC $~~$ 1. Create a new Harvester PVC for nginx deployment ![image](https://github.com/user-attachments/assets/6aa0c768-02b8-4d16-95a1-1f1036b10146) ![image](https://github.com/user-attachments/assets/c9aaffa4-f949-4923-8c9a-98c36f137935) ![image](https://github.com/user-attachments/assets/5e89dc72-7983-4084-bac8-5c023bce0a34)
${\textsf{✅}}$ Verify DHCP load balancer service $~~$ 1. Verify DHCP load balancer service ![image](https://github.com/user-attachments/assets/d4991d4f-70ff-43bf-9f14-355ef7c4f9eb)