Skip to content

Enhancement: Add Cross-Cluster Connectivity Validation to ramenctl #484

Description

@BenamarMk

Problem

We've encountered a customer issue where creating a ServiceExport exposed an underlying network problem that had not been detected by any existing validation.

The flow is illustrated below:

                         Create ServiceExport
                                 │
                                 ▼
                   Lighthouse Agent (managed cluster)
                                 │
                                 │ HTTPS (TLS)
                                 ▼
                     Broker Kubernetes API Server
                                 │
                      TLS ClientHello sent
                                 │
                                 ▼
                    Normal host network routing
                     (NOT Submariner IPsec tunnel)
                                 │
                                 ▼
                 Path MTU is smaller than 1500 bytes
                                 │
                  PMTU discovery is not working
              (or ICMP "Fragmentation Needed" is blocked)
                                 │
                                 ▼
                Large TLS ClientHello packet is dropped
                                 │
                                 ▼
                  TLS handshake hangs / eventually times out
                                 │
                                 ▼
             Lighthouse Agent cannot update the Broker
                                 │
                                 ▼
          Broker never receives the exported service metadata
                                 │
                                 ▼
      Remote clusters never create the corresponding ServiceImport

Although the Submariner IPsec tunnel was healthy and data-plane traffic was functional, communication between the Lighthouse Agent and the Broker API failed because it follows the host network rather than the Submariner tunnel. As a result, the cluster pair appeared healthy until a ServiceExport was created.

Proposed Enhancement

Enhance ramenctl to perform end-to-end validation of the communication paths required by Ramen before disaster recovery operations are configured.

The validation should include:

  1. Control-plane validation

    • Verify communication from each managed cluster to the Broker API.
    • Validate that creating a temporary ServiceExport results in the corresponding ServiceImport being created on the peer cluster.
    • Detect failures such as TLS handshake timeouts, MTU/PMTU issues, routing problems, or other connectivity failures that prevent Lighthouse from communicating with the Broker.
  2. Data-plane validation

    • Validate Submariner data-plane connectivity independently of the control plane.
    • Create temporary VolSync ReplicationSource and ReplicationDestination resources.
    • Synchronize a small test PVC between the clusters.
    • Verify that replication completes successfully and clean up all temporary resources.

Expected Benefits

  • Detect cross-cluster communication issues before they impact disaster recovery workflows.
  • Validate both the Lighthouse control plane and the Submariner data plane independently.
  • Identify network problems, including MTU, routing, TLS, or firewall issues
  • Provide administrators with actionable diagnostics rather than discovering connectivity problems only after DR configuration or failover operations begin.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions