-
Bug
-
Resolution: Done
-
Major
-
4.19
-
Quality / Stability / Reliability
-
False
-
-
None
-
Important
-
None
-
None
-
None
-
None
-
+
-
In Progress
-
Release Note Not Required
-
None
-
None
-
None
-
None
-
None
Description of problem:
When creating a HyperShift cluster on OpenStack using the --openstack-node-additional-port flag to attach an additional network, cluster creation fails due to Neutron policy restrictions related to port security settings. The issue occurs when using a non-admin OpenStack project.
Version-Release number of selected component (if applicable):
- RHOS-17.1-RHEL-9-20241030.n.1 - Management Cluster (HyperShift): 4.19.0-0.nightly-2025-04-04-170728 - Hosted Cluster: 4.18.8 - hcp version: Client Version: openshift/hypershift: 14daa753ec8409aa140bf0299fed55ea1069f389. Latest supported OCP: 4.19.0 Server Version: <unknown> Server Supports OCP Versions: 4.19, 4.18, 4.17, 4.16, 4.15, 4.14
How reproducible:
Always when using a non-admin OpenStack project
Steps to Reproduce:
1. Create an OpenStack project and user without admin privileges
2. Run HyperShift cluster creation with additional network:
```
hcp create cluster openstack \
--name $CLUSTER_NAME \
[other parameters] \
--openstack-node-additional-port "network-id:${STORAGE_NFS_NETWORK_ID},disable-port-security:true"
```
3. Observe the nodepool configuration:
```
{
"additionalPorts": [
{
"network": {
"id": "769aab27-82c5-4021-bce2-ad6a4effaa1a"
},
"portSecurityPolicy": "Disabled"
}
],
"flavor": "worker"
}
```
4. Check the OpenStack cluster events:
Failed to create port shiftstack-hcp-no-admin-xxxxx-1:
Expected HTTP response code [201 202], but got 403 instead:
{"NeutronError": {"type": "PolicyNotAuthorized",
"message": "(rule:create_port and rule:create_port:port_security_enabled) is disallowed by policy"}}
5. The cluster remains in a failed state with worker nodes unable to start
Actual results:
Port creation fails due to port_security_enabled=true being explicitly set on additional ports, which is restricted by Neutron for non-admin users.
Expected results:
HyperShift should be able to create clusters with additional networks without requiring admin privileges, similar to how IPI deployments work.
Workaround:
Granting the admin role to the OpenStack project user resolved the issue: ``` openstack role add --user hostedcluster-user_no_admin --project shiftstack-hosted_cluster_no_admin admin ``` After applying the admin role, all ports were created successfully and servers launched without issues.
Additional info:
- This issue affects only non-admin users; with admin privileges the operation succeeds
- Faced the same issue wsing just --openstack-node-additional-port "network-id:${ID}" with no security settings
- In IPI clusters, additional networks use noAllowedAddressPairs: true which doesn't trigger this policy restriction