Performing a minor update
Preparing for a minor update
-
In this lab we will perform an update of edpm-compute0 compute node. We need to create 2 files include a set of OpenStackDataPlaneNodeSet custom resources (CRs):
-
openstack-edpm-update-ovn.yaml - You use this file to update your OVN services. You must update OVN services before the OpenStack Operator can begin the automatic update of the remaining control plane services.
-
openstack-edpm-update-services.yaml- You use this file to update the remaining control plane packages, services, and container images on the data plane nodes.
-
Update the OpenStack Operator
In this lab we have installed the OpenStack operators using manually approved. So, to manually approving a pending Operator update, follow these steps: . List the available ClusterServiceVersion for an operator:
oc get csv -n openstack-operators
oc get csv -n openstack-operators NAME DISPLAY VERSION REPLACES PHASE barbican-operator.v1.0.5 Barbican Operator 1.0.5 barbican-operator.v1.0.4 Succeeded cinder-operator.v1.0.5 Cinder Operator 1.0.5 cinder-operator.v1.0.4 Succeeded designate-operator.v1.0.5 Designate Operator 1.0.5 designate-operator.v1.0.4 Succeeded glance-operator.v1.0.5 Glance Operator 1.0.5 glance-operator.v1.0.4 Succeeded heat-operator.v1.0.5 Heat Operator 1.0.5 heat-operator.v1.0.4 Succeeded horizon-operator.v1.0.5 Horizon Operator 1.0.5 horizon-operator.v1.0.4 Succeeded infra-operator.v1.0.5 OpenStack Infra 1.0.5 infra-operator.v1.0.4 Succeeded ironic-operator.v1.0.5 Ironic Operator 1.0.5 ironic-operator.v1.0.4 Succeeded keystone-operator.v1.0.5 Keystone Operator 1.0.5 keystone-operator.v1.0.4 Succeeded manila-operator.v1.0.5 Manila Operator 1.0.5 manila-operator.v1.0.4 Succeeded mariadb-operator.v1.0.5 MariaDB Operator 1.0.5 mariadb-operator.v1.0.4 Succeeded metallb-operator.v4.16.0-202412170135 MetalLB Operator 4.16.0-202412170135 Succeeded neutron-operator.v1.0.5 Neutron Operator 1.0.5 neutron-operator.v1.0.4 Succeeded nova-operator.v1.0.5 Nova Operator 1.0.5 nova-operator.v1.0.4 Succeeded octavia-operator.v1.0.5 Octavia Operator 1.0.5 octavia-operator.v1.0.4 Succeeded openshift-gitops-operator.v1.15.0 Red Hat OpenShift GitOps 1.15.0 openshift-gitops-operator.v1.12.0 Succeeded openstack-baremetal-operator.v1.0.5 OpenStack Baremetal Operator 1.0.5 openstack-baremetal-operator.v1.0.4 Succeeded openstack-operator.v1.0.5 OpenStack 1.0.5 openstack-operator.v1.0.4 Succeeded ovn-operator.v1.0.5 OVN Operator 1.0.5 ovn-operator.v1.0.4 Succeeded placement-operator.v1.0.5 Placement Operator 1.0.5 placement-operator.v1.0.4 Succeeded rabbitmq-cluster-operator.v1.0.5 RabbitMQ Cluster Operator 1.0.5 rabbitmq-cluster-operator.v1.0.4 Succeeded swift-operator.v1.0.5 Swift operator 1.0.5 swift-operator.v1.0.4 Succeeded telemetry-operator.v1.0.5 Telemetry Operator 1.0.5 telemetry-operator.v1.0.4 Succeeded
Manually approve the update:
oc get installplan -n openstack-operators
NAME CSV APPROVAL APPROVED install-9wrs7 cinder-operator.v1.0.6 Manual false install-m76bj infra-operator.v1.0.5 Manual true
Find and approve the pending InstallPlan:
oc patch installplan <installplan-name> -n openstack-operators --type merge --patch '{"spec": {"approved": true}}'
This will approve the Operator update, and OpenShift will proceed with the update of the OpenStack Operators.
Explore the file OpenStackDataPlaneNodeSet to update OVN service
In the bastion terminal, make sure that you are in lab yamls directory:
cd labrepo/content/files
Visualize the file openstack-edpm-update-ovn.yaml to understand better the servicesOverride functionality to apply just the ovn OpenStackDataplaneService:
cat openstack-edpm-update-ovn.yaml
apiVersion: dataplane.openstack.org/v1beta1
kind: OpenStackDataPlaneDeployment
metadata:
name: edpm-deployment-ipam-ovn-update
spec:
nodeSets:
- openstack-edpm-ipam
servicesOverride:
- ovn
Explore the file OpenStackDataPlaneNodeSet to update remaining services of the data plane
Visualize the file openstack-edpm-update-services.yaml:
cat openstack-edpm-update-services.yaml
apiVersion: dataplane.openstack.org/v1beta1
kind: OpenStackDataPlaneDeployment
metadata:
name: edpm-deployment-ipam-update-dataplane-services
spec:
nodeSets:
- openstack-edpm-ipam
servicesOverride:
- update
Performing a minor update
To update your Red Hat OpenStack Services on OpenShift (RHOSO) 18.0 environment to the latest maintenance release, perform the following tasks:
-
Update OVN services on the control plane.
-
Update OVN services on the data plane.
-
Wait for the OpenStack Operator to complete the automatic update of the remaining control plane packages, services, and container images.
-
Update the remaining services on the data plane.
Updating OVN services on the control plane
Get the OpenStackVersion to identify the target version to be installed:
oc get openstackversion -n openstack
NAME TARGET VERSION AVAILABLE VERSION DEPLOYED VERSION openstack-galera-network-isolation 18.0.3-20241126.2 18.0.4-20250106.2 18.0.3-20241126.2
Update the target version in the OpenStackVersion custom resource (CR) to point to the version that you want to install. After you update the target version, the OVN service update on the control plane begins automatically.
-
Create a patch file for the OpenStackVersion CR on your workstation, for example, openstackversionpatch.yaml
cat <<EOF >openstackversionpatch.yaml "spec": { "targetVersion": 18.0.4-20250106.2 } EOF
Note: Replace targetVersion field with the target version you want to install, for example, 18.0.3-20241126.2
-
Patch the OpenStackVersion CR:
oc patch openstackversion openstack-galera-network-isolation --type=merge --patch-file openstackversionpatch.yaml
-
Verify that the OVN services are updated on the control plane
oc wait openstackversion openstack-galera-network-isolation --for=condition=MinorUpdateOVNControlplane --timeout=20m
Updating OVN services on the data plane
-
To update OVN services on the data plane, create an OpenStackDataPlaneDeployment custom resource (CR) with the openstack-edpm-update-ovn.yaml file:
oc create -f openstack-edpm-update-ovn.yaml
-
Verify that the data plane update deployment succeeded:
oc wait openstackversion openstack-galera-network-isolation --for=condition=MinorUpdateOVNDataplane --timeout=20m
-
Check if the update deployment is completed
-
Sample output
oc get openstackdataplanedeployment NAME STATUS MESSAGE edpm-deployment-ipam-ovn-update True Setup Complete
Updating the remaining services on the data plane
When the OVN service is updated on the control plane and data plane, and the OpenStack Operator has completed the automatic update of the remaining control plane packages, services, and container images, you must update the remaining services on the data plane
-
Wait until all control plane services are updated:
oc wait openstackversion openstack-galera-network-isolation --for=condition=MinorUpdateControlplane --timeout=20m
-
To update the remaining services on the data plane, create an OpenStackDataPlaneDeployment custom resource (CR) with the openstack-edpm-update-services.yaml file:
oc create -f openstack-edpm-update-services.yaml
-
Verify that the data plane update deployment succeeded:
oc wait openstackversion openstack-galera-network-isolation --for=condition=MinorUpdateDataplane --timeout=20m
-
Check if the update deployment is completed
-
Sample output
oc get openstackdataplanedeployment NAME STATUS MESSAGE edpm-deployment-ipam-ovn-update True Setup Complete
Rebooting the nodes
You can reboot your Compute nodes any time after you complete the minor update. You check which updated nodes require a reboot first, and then specify them in an OpenStackDatPlaneDeployment custom resource (CR) to start the reboot. Until after the reboot, your environment still uses the old kernel and Open vSwitch (OVS) for data plane development kit (DPDK) implementations.
To ensure minimal downtime of instances in your Red Hat OpenStack Services on OpenShift (RHOSO) environment, you should migrate the instances from the Compute node that you need to reboot.
-
Review and understand the OpenStackDataPlaneDeployment to reboot the nodes:
cat openstack-edpm-reboot.yaml
apiVersion: dataplane.openstack.org/v1beta1
kind: OpenStackDataPlaneDeployment
metadata:
name: openstack-edpm-ipam-reboot
namespace: openstack
spec:
nodeSets:
- openstack-edpm-ipam
servicesOverride:
- reboot-os
ansibleExtraVars:
edpm_reboot_strategy: force
ansibleLimit:
- edpm-compute-0.aio.example.com
-
Apply the openstack-edpm-ipam-reboot.yaml OpenStackDataPlaneDeployment:
oc create -f openstack-edpm-reboot.yaml
-
Verify that the openstack-edpm-ipam-reboot deployment completed:
oc get openstackdataplanedeployment NAME STATUS MESSAGE openstack-edpm-deployment-ipam-reboot True Setup complete