@@ -29,9 +29,48 @@ Rolling conversion with multiple node sets:: In production, do not convert
2929* The initial {object_storage} adoption is complete. For more information, see
3030 xref:adopting-the-object-storage-service_hsm-integration[Adopting the
3131 {object_storage}].
32+ * Nodes cannot be members of more than one `OpenStackDataPlaneNodeSet` CR at
33+ the same time. If the nodes you want to convert were part of the node set
34+ created during the earlier adoption, delete that node set before proceeding:
35+ +
36+ ----
37+ $ oc delete openstackdataplanenodeset <adoption-nodeset-name>
38+ ----
3239
3340.Procedure
3441
42+ . Create a patch file to configure the {object_storage} data plane storage
43+ ports. The {OpenStackPreviousInstaller} deployment used different default
44+ ports (6002 for the account service, 6001 for the container service, 6000 for
45+ the object service). The converted nodes must continue to use these same
46+ ports to ensure connectivity between all {object_storage} storage nodes using
47+ the unmodified rings:
48+ +
49+ ----
50+ cat > swift-config-patch.yaml << EOF
51+ spec:
52+ swift:
53+ template:
54+ swiftStorage:
55+ defaultConfigOverwrite:
56+ 01-account-server.conf: |
57+ [DEFAULT]
58+ bind_port = 6002
59+ 01-container-server.conf: |
60+ [DEFAULT]
61+ bind_port = 6001
62+ 01-object-server.conf: |
63+ [DEFAULT]
64+ bind_port = 6000
65+ EOF
66+ ----
67+
68+ . Apply the patch to the `OpenStackControlPlane` CR:
69+ +
70+ ----
71+ $ oc patch openstackcontrolplane openstack --type=merge --patch-file=swift-config-patch.yaml
72+ ----
73+
3574. Create a `OpenStackDataPlaneService` custom resource (CR) to remove remaining
3675 {OpenStackPreviousInstaller} artifacts, such as containers, `systemd` units, and
3776 configuration, from the node:
@@ -94,6 +133,13 @@ spec:
94133 nodeTemplate:
95134 ansible:
96135 ansibleUser: cloud-admin
136+ ifeval::["{build}" == "downstream"]
137+ ansibleVarsFrom:
138+ - secretRef:
139+ name: subscription-manager
140+ - secretRef:
141+ name: redhat-registry
142+ endif::[]
97143 ansibleVars:
98144 edpm_nodes_validation_validate_controllers_icmp: false
99145 edpm_nodes_validation_validate_gateway_icmp: false
@@ -106,30 +152,40 @@ spec:
106152 gather_facts: false
107153 timesync_ntp_servers:
108154 - hostname: pool.ntp.org
155+ ifeval::["{build}" != "downstream"]
156+ edpm_bootstrap_command: |
157+ # This is a hack to deploy RDO Delorean repos to RHEL as if it were Centos 9 Stream
158+ set -euxo pipefail
159+ curl -sL https://github.com/openstack-k8s-operators/repo-setup/archive/refs/heads/main.tar.gz | tar -xz
160+ python3 -m venv ./venv
161+ PBR_VERSION=0.0.0 ./venv/bin/pip install ./repo-setup-main
162+ # This is required for FIPS enabled until trunk.rdoproject.org
163+ # is not being served from a centos7 host, tracked by
164+ # https://issues.redhat.com/browse/RHOSZUUL-1517
165+ dnf -y install crypto-policies
166+ update-crypto-policies --set FIPS:NO-ENFORCE-EMS
167+ ./venv/bin/repo-setup current-podified -b antelope -d centos9 --stream
168+ dnf -y upgrade openstack-selinux
169+ rm -f /run/virtlogd.pid
170+ rm -rf repo-setup-main
171+ endif::[]
172+ ifeval::["{build}" == "downstream"]
173+ rhc_release: 9.2
174+ rhc_repositories:
175+ - {name: "*", state: disabled}
176+ - {name: "rhel-9-for-x86_64-baseos-eus-rpms", state: enabled}
177+ - {name: "rhel-9-for-x86_64-appstream-eus-rpms", state: enabled}
178+ - {name: "rhel-9-for-x86_64-highavailability-eus-rpms", state: enabled}
179+ - {name: "rhoso-18.0-for-rhel-9-x86_64-rpms", state: enabled}
180+ endif::[]
109181 ansibleSSHPrivateKeySecret: dataplane-adoption-secret
110182 managementNetwork: ctlplane
111183 nodes:
112184 edpm-swift-0:
113185 ansible:
114186 ansibleHost: 192.168.122.100
115- ifeval::["{build}" == "downstream"]
116- ansibleVarsFrom:
117- - secretRef:
118- name: subscription-manager
119- - secretRef:
120- name: redhat-registry
121- endif::[]
122187 ansibleVars:
123188 edpm_swift_disks: []
124- ifeval::["{build}" == "downstream"]
125- rhc_release: 9.2
126- rhc_repositories:
127- - {name: "*", state: disabled}
128- - {name: "rhel-9-for-x86_64-baseos-eus-rpms", state: enabled}
129- - {name: "rhel-9-for-x86_64-appstream-eus-rpms", state: enabled}
130- - {name: "rhel-9-for-x86_64-highavailability-eus-rpms", state: enabled}
131- - {name: "rhoso-18.0-for-rhel-9-x86_64-rpms", state: enabled}
132- endif::[]
133189 hostName: edpm-swift-0
134190 networks:
135191 - defaultRoute: true
@@ -144,9 +200,6 @@ endif::[]
144200 subnetName: subnet4
145201 preProvisioned: true
146202 services:
147- ifeval::["{build}" == "upstream"]
148- - repo-setup
149- endif::[]
150203 - bootstrap
151204 - download-cache
152205 - install-os
@@ -194,19 +247,20 @@ $ watch oc get pod -l app=openstackansibleee
194247----
195248+
196249----
197- $ oc logs -l app=openstackansibleee -f --max-log-requests 20
250+ $ oc logs -l app=openstackansibleee -f --max-log-requests 40
198251----
199252
200253.Verification
201254
202- * Verify that the node set is ready :
255+ * Verify that the Object Storage services are running on the converted node :
203256+
204257----
205- $ oc get openstackdataplanenodeset openstack-edpm-ipam
258+ $ ssh cloud-admin@192.168.122.100 "sudo systemctl status edpm_swift_*"
206259----
207260
208- * Verify that the Object Storage services are running on the converted node:
261+ * Verify that the Object Storage services are functional after conversion, for
262+ example by uploading an object:
209263+
210264----
211- $ ssh cloud-admin@192.168.122.100 "sudo systemctl status edpm_swift_* "
265+ $ oc rsh openstackclient /bin/sh -c "touch obj && openstack container create cont && openstack object create cont obj "
212266----
0 commit comments