Upgrade from v1.2.1 to v1.2.2
General information
An Upgrade button appears on the Dashboard screen whenever a new Harvester version that you can upgrade to becomes available. For more information, see Start an upgrade.
For air-gapped environments, see Prepare an air-gapped upgrade.
Known issues
1. Upgrade stuck in the Upgrading System Service
state
Expired certificates of certain system services may cause an upgrade to become stuck in the Upgrading System Service
state for an extended period. To resolve this issue, perform the following steps:
Identify the name of the
apply-manifest
job.kubectl get jobs -n harvester-system -l harvesterhci.io/upgradeComponent=manifest
Example output:
NAME COMPLETIONS DURATION AGE
hvst-upgrade-9gmg2-apply-manifests 0/1 46s 46sCheck the logs of the
apply-manifest
job.kubectl logs jobs/hvst-upgrade-9gmg2-apply-manifests -n harvester-system
If the following messages appear in the log, continue to the next step:
Waiting for CAPI cluster fleet-local/local to be provisioned (current phase: Provisioning, current generation: 30259)...
Waiting for CAPI cluster fleet-local/local to be provisioned (current phase: Provisioning, current generation: 30259)...
Waiting for CAPI cluster fleet-local/local to be provisioned (current phase: Provisioning, current generation: 30259)...
Waiting for CAPI cluster fleet-local/local to be provisioned (current phase: Provisioning, current generation: 30259)...Check the state of the Cluster API (CAPI) cluster.
kubectl get clusters.provisioning.cattle.io local -n fleet-local -o yaml
If the output is similar to the following example, the issue likely exists in the cluster.
- lastUpdateTime: "2023-01-17T16:26:48Z"
message: 'configuring bootstrap node(s) custom-24cb32ce8387: waiting for probes:
kube-controller-manager, kube-scheduler'
reason: Waiting
status: Unknown
type: UpdatedIdentify the hostname of the affected node, and implement the workaround to see if service certificates expire.
kubectl get machines.cluster.x-k8s.io -n fleet-local <machine_name> -o yaml | yq .status.nodeRef.name
Replace
<machine_name>
with the name of the affected node (as stated in the output of the previous step).noteIf multiple nodes joined the cluster around the same time, you must implement the workaround on all those nodes.
- Related issue:
- Workaround:
2. The harvester-seeder
add-on is not upgraded
When upgrading Harvester clusters from v1.2.1 to v1.2.2, the harvester-seeder
add-on is not fully upgraded due to the chart version mismatch:
Error: chart "harvester-seeder" matching 0.1.0 not found in harvester-seeder index. (try 'helm repo update'): no chart version found for harvester-seeder-0.1.0
The harvester-seeder
chart version bundled with Harvester v1.2.2 is 0.1.1. However, the harvester-seeder
add-on remains to use the 0.1.0 chart. The same situation will happen if you enable the add-on after upgrading to Harvester v1.2.2, you will notice the chart could not be installed successfully with the similar messages as above.
The workaround is to manually update the harvester-seeder
Addon manifest (if it's already enabled, please disable it before patching):
kubectl -n harvester-system patch addons.harvesterhci harvester-seeder --type=json -p '[{"op": "replace", "path": "/spec/version", "value": "0.1.1"}]'