Platform9 PCD Upgrade Pre & Post Check Validation
Problem
What are the Pre- and Post-Check Validations for Platform Self-Hosted PCD Upgrades?
Environment
- Platform9 Private Cloud Director- Self-Hosted
Upgrade Preparation
Refer to the following guidelines before starting any upgrades:
In Release notes, ensure to go through the Upgrade Notes, Bug Fixes and Know Issues.
Pre & Post-Check Validations
Please continue to follow the same procedures both prior to and after the upgrade.
SAVE all the outputs in a text file in the specified format precheck-region-$(date)-versoin and postcheck-region-$(date)-version
It is essential to compare these outputs following the upgrade to ensure consistency and verify that the changes have been successfully implemented.
Control Plane Services Check:
- Check the current PCD version and Status.
$ airctl statusThe airctl status command should display a "ready" status for the deployment status, as well as for region health. Additionally, the desired services must match the ready services for all regions.
$ airctl statusfqdn: test-pf9.platform9.comregion: test-pf9deployment status: readyregion health: ✅ Readyversion: PCD 2025.6-151-------- region service status ----------desired services: 29ready services: 29------------- deployment details ---------------fqdn: test-pf9-regionone.platform9.comregion: test-pf9-regiononedeployment status: readyregion health: ✅ Readyversion: PCD 2025.6-151-------- region service status ----------desired services: 77ready services: 77- On checking
airctl statusIf task state stuck in**host_upgrade_error**, use the following command to reset it
$ airctl reset-taskstate --region <AFFECTED_REGION_NAME> --region-state ready- Check the deployment status. All deployments should be available.
$ kubectl get deployment -n <REGION_NS>- Check the hostagent version.
$ NS=<WORKLOAD_REGION_NS>$ kubectl -n $NS exec deploy/resmgr -c resmgr -- curl -s http://localhost:8082/v1/hosts | jq -r '.[] | .host_id + " | " + .status + " | "+ .info.hostname + " | " + .host_agent.version'Verify that the version of the hostagent is consistent with the current version of the management plane.
- Check whether the hosts are responding or not from DB.
$ NS=<WORKLOAD_REGION_NS>$ kubectl exec -i -n "$NS" $(kubectl get po -n "$NS" -l du-app=resmgr -o jsonpath="{.items[0].metadata.name}") -c resmgr -- mysql -t resmgr -u root -h $(kubectl get po -n "$NS" -l du-app=mysql -o jsonpath='{.items[0].status.podIP}') -p$(kubectl exec -i -n "$NS" $(kubectl get po -n "$NS" -l du-app=resmgr -o jsonpath="{.items[0].metadata.name}") -c resmgr -- /bin/bash -c "DB=\$(consul-dump-yaml --start-key customers/\$CUSTOMER_ID/regions/\$REGION_ID/db | awk '/dbserver:/ {print \$2}'); consul-dump-yaml --start-key customers/\$CUSTOMER_ID/dbservers/\$DB | awk '/admin_pass:/ {print \$2}'") -e "SELECT id,hostname,responding FROM hosts;A response of 0 indicates that the node is not connected to the management plane, while a response of 1 indicates that it is connected to the management plane.
Disconnected hosts will not get upgraded. Please make sure that the hosts are connected to the management plane before starting host upgrade.
OpenStack Services Check:
Export the admin_rc file before executing the OpenStack Commands.
- Check hypervisor list
$ openstack --insecure hypervisor list --long- Check hypervisor status
$ openstack --insecure hypervisor stats show- Check compute service list
$ openstack --insecure compute service list --long- Check network agent
$ openstack --insecure network agent list --long- Check volume service-list
$ openstack --insecure volume service list --long- Filter Inactive VM's
$ openstack server list --all | egrep -v "ACTIVE"UI Validation
After the upgrade, attempt to access the UI and navigate through multiple pages to verify that the interface is functioning properly. Recommended sample pages include: hosts, cluster, VM, image, and network.
- If these steps prove insufficient or not applicable, reach out to the Platform9 Support Team for additional assistance.