From 599df395868a4107b7cd8992f0c8fdba8208d987 Mon Sep 17 00:00:00 2001 From: Christian Schwede Date: Wed, 5 Nov 2025 15:42:57 +0100 Subject: [PATCH 1/2] Remove rsync sysctl setting in docs This is no longer needed due to a change in edpm-ansible, using NET_BIND_SERVICE cap for rsync. Signed-off-by: Christian Schwede --- docs/config.md | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/docs/config.md b/docs/config.md index 68587c2e..198b1db5 100644 --- a/docs/config.md +++ b/docs/config.md @@ -106,8 +106,7 @@ To deploy and run Swift storage services on dataplane nodes, you need to create an `OpenStackDataPlaneNodeSet` with the following properties: 1. Included `swift` service -2. Sysctl setting to allow binding on port 873 for unprivileged rsync process -3. List of disks to be used for storage in Swift +2. List of disks to be used for storage in Swift You also need to enable DNS forwarding to resolve dataplane hostnames within the controlplane pods. First get the `clusterIP` of the resolver: @@ -159,24 +158,6 @@ to the end of the services list, for example: This runs the required playbooks to configure Swift storage services. -### Add required sysctl setting for rsync - - -Rsync is used to replicate data between nodes. It uses port 873 for this, which -is a privileged port by default. However, rsync is running unprivileged within -rootless podman, and thus needs an additional setting to allow binding to port -873. -This setting needs to be added to the `nodeTemplate` section, for example: - -``` - nodeTemplate: - ansible: - ansibleVars: - edpm_kernel_sysctl_extra_settings: - net.ipv4.ip_unprivileged_port_start: - value: 873 -``` - ### Define disks to be used by Swift on the dataplane nodes If all nodes use the same type of disks these can be defined once in a global From a0f546b5575a384f18d8924cf8152258708ad79f Mon Sep 17 00:00:00 2001 From: Christian Schwede Date: Wed, 5 Nov 2025 15:57:34 +0100 Subject: [PATCH 2/2] Add doc note regarding dataplane deployments Signed-off-by: Christian Schwede --- docs/config.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/docs/config.md b/docs/config.md index 198b1db5..6260bc27 100644 --- a/docs/config.md +++ b/docs/config.md @@ -96,6 +96,33 @@ continue to run on the controlplane, and all Swift storage services will run on dataplane nodes. It is recommended to not mix storage on PVs and dataplane nodes permanently. +> **_NOTE:_** If there are no Swift dataplane nodes configured and `swiftStorage` +> replicas are set to 0 ring building is not possible (because there are no +> nodes/disks until dataplane nodes are defined), and as a result `swiftProxy` +> won't start until the dataplane is created. Therefore it is recommended to +> start Swift proxies after creating the dataplane and set both `swiftProxy` as +> well as `swiftStorage` replicas to 0 when creating the OpenStackControlPlane +> CR, for example: + +``` +apiVersion: core.openstack.org/v1beta1 +kind: OpenStackControlPlane +metadata: + name: openstack-galera-network-isolation + namespace: openstack +spec: + ... + swift: + enabled: true + template: + swiftProxy: + replicas: 0 + swiftRing: + ringReplicas: 3 + swiftStorage: + replicas: 0 +``` + An `OpenStackDataPlaneDeployment` can use one or more `OpenStackDataPlaneNodeSet`. Each `OpenStackDataPlaneNodeSet` can use different disk and configuration settings to allow fine-grained control. Further