Add skupper for BKL and keystone to SKMO job#3836
Conversation
e91b57c to
74abdbd
Compare
74abdbd to
f87154f
Compare
f87154f to
64dea66
Compare
64dea66 to
d3f6a8e
Compare
d3f6a8e to
6368ac0
Compare
|
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/451747df4e864222b9ec4411ae75617d ✔️ openstack-k8s-operators-content-provider SUCCESS in 1h 42m 53s |
3502950 to
c88378c
Compare
c88378c to
89a9ef9
Compare
52c399b to
7b01c17
Compare
7b01c17 to
82dfda1
Compare
|
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/faf40921ee674e6c9ef0143267a03148 ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 17m 33s |
82dfda1 to
2190966
Compare
|
Note: the prefix check is failing because the earliest commit contains [federation] changes. Once #3847 is merged, then I will rebase and federation role changes will no longer be in this or subsequent PRs. |
…uting Add hook playbooks and configuration to establish Skupper virtual services for RabbitMQ and Keystone internal endpoints, enabling cross-region connectivity in the multi-namespace SKMO scenario. skupper-connector.yaml: query the RabbitMQ TLS secret from the correct CRD - rabbitmq.openstack.org/v1beta1 (RabbitMq) as used by the OpenStack infra-operator, not the community rabbitmq.com/v1beta1 (RabbitmqCluster). Add retries to wait for spec.tls.secretName to be populated before creating the Skupper Connector. skupper-keystone-connector.yaml: add retries to the KeystoneAPI CR lookup to wait for spec.tls.api.internal.secretName to be available, since that field is not populated until Keystone completes TLS setup. configure-leaf-keystone-internal.yaml: after patching the leaf OSCP to use the Skupper Keystone virtual service, also create a MetalLB LoadBalancer Service (keystone-regionone-lb) and a DNSData CR (keystone-skupper) so that EDPM compute nodes outside the OCP cluster can resolve and connect to the Keystone auth_url. The Skupper Listener creates a ClusterIP-only Service that is unreachable from EDPM nodes; the LoadBalancer Service obtains a MetalLB IP on the leaf internalapi network and the DNSData entry registers both the short (.svc) and fully-qualified (.svc.cluster.local) names in the dnsmasq instance serving those nodes. Signed-off-by: Ade Lee <alee@redhat.com> Co-authored-by: Claude <noreply@anthropic.com> Made-with: Cursor
2190966 to
dc41cd9
Compare
|
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/cfb35b7b9f12422aa41653bb512ad800 ❌ openstack-k8s-operators-content-provider FAILURE in 15m 55s |
|
recheck |
|
/approve |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: abays, michburk The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
0c53ca8
into
openstack-k8s-operators:main
[skmo] Add Skupper for cross-region RabbitMQ and Keystone [skmo] Add Skupper for cross-region RabbitMQ and Keystone internal routing Add automation variables and kustomize configuration to establish Skupper virtual services for RabbitMQ and Keystone internal endpoints, enabling cross-region connectivity in the multi-namespace SKMO scenario. The RabbitMQ Skupper connector routes barbican-keystone-listener traffic from the leaf (openstack2) namespace to the central (openstack) RabbitMQ over an mTLS tunnel, avoiding exposure on the public network. The Keystone Skupper connector routes internal service-to-service authentication traffic from leaf region services to the central Keystone endpoint, replacing the previous approach of using the public Keystone URL for internal traffic. To make the Skupper Keystone virtual service reachable from EDPM compute nodes (which run outside the OCP cluster and cannot reach ClusterIP services), a MetalLB LoadBalancer Service and a DNSData CR are created alongside the Skupper Listener. This ensures nova-compute can resolve and connect to the Keystone auth_url on startup. Also adds skupper-keystone-internal.md documenting the full procedure, including the EDPM DNS workaround and the rationale for each step. Depends-On: openstack-k8s-operators/ci-framework#3836 Reviewed-by: Enrique Vallespi Gil Reviewed-by: Andrew Bays <andrew.bays@gmail.com> Reviewed-by: Ade Lee Reviewed-by: Daniel Pawlik Reviewed-by: John Fulton <johfulto@redhat.com>
[skmo] Add Skupper for cross-region RabbitMQ and Keystone internal routing
Add hook playbooks and configuration to establish Skupper virtual
services for RabbitMQ and Keystone internal endpoints, enabling
cross-region connectivity in the multi-namespace SKMO scenario.
skupper-connector.yaml: query the RabbitMQ TLS secret from the correct
CRD - rabbitmq.openstack.org/v1beta1 (RabbitMq) as used by the
OpenStack infra-operator, not the community rabbitmq.com/v1beta1
(RabbitmqCluster). Add retries to wait for spec.tls.secretName to
be populated before creating the Skupper Connector.
skupper-keystone-connector.yaml: add retries to the KeystoneAPI CR
lookup to wait for spec.tls.api.internal.secretName to be available,
since that field is not populated until Keystone completes TLS setup.
configure-leaf-keystone-internal.yaml: after patching the leaf OSCP
to use the Skupper Keystone virtual service, also create a MetalLB
LoadBalancer Service (keystone-regionone-lb) and a DNSData CR
(keystone-skupper) so that EDPM compute nodes outside the OCP cluster
can resolve and connect to the Keystone auth_url. The Skupper Listener
creates a ClusterIP-only Service that is unreachable from EDPM nodes;
the LoadBalancer Service obtains a MetalLB IP on the leaf internalapi
network and the DNSData entry registers both the short (.svc) and
fully-qualified (.svc.cluster.local) names in the dnsmasq instance
serving those nodes.