Skip to content

Commit

Permalink
Addressed review comments
Browse files Browse the repository at this point in the history
  • Loading branch information
Shilpa-Gokul committed Feb 6, 2025
1 parent a0b4576 commit a08663e
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 12 deletions.
Binary file modified docs/images/additional-listener-workflow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
19 changes: 7 additions & 12 deletions docs/proposal/additional-listener.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
# Adding additional listeners to nodes based on the selector
# Support configuring additional listeners to specific machines

[Github Issue](https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/issues/1678)
## Motivation
Currently, when a listener pool is configured for a specific port (e.g., port 22), all machines are added to the pool.
This creates a challenge when debugging OpenShift cluster deployments, as access to the bootstrap node is necessary for
retrieving log files and other diagnostic data. Since all machines are included in the pool, SSH access to the bootstrap
node becomes impossible.
Currently, when configuring LoadBalancer's additional listeners, all the machines are added to the listener pool.
This creates a challenge when you want to ssh into a particular machine.
To address this, there should be a mechanism to assign listeners to specific machines using label selector matching.

## Goal
Expand Down Expand Up @@ -85,16 +83,13 @@ spec:
The load balancer pool member configuration is now invoked for all machines inorder to provide the ability to assign
the listeners to any machine based on the label selectors.

The load balancer details are retrieved from the IBMPowerVSCluster.Spec.LoadBalancers. If no load balancers are
specified in the Spec, the load balancer details are generated based on the IBMPowerVSCluster name.
Loop through the load balancers, check the status of the IBMPowerVSCluster, and verify the load balancer's
provisioning status. Proceed only if the status is Active and it contains backend pools.
Loop through the load balancer pools, retrieve the associated pool members for each, and then verify the label selector
specified in the listener.
Loop through the load balancer pools, retrieve the associated pool members for each, and fetch the selector from the
listener using the default pool name. Then, verify if the machine label matches the listener's label selector,
and depending on the outcome, the process continues as follows:

- If the selector matches, continue with adding the listener to the machine.
- If it doesn't match, skip the listener and move on to the next pool member.
- If the selector is empty and the machine is a control plane, continue to add the listener, since all listeners
- If the selector is empty and the machine is a control plane, proceed with adding the listener, as all listeners
can be assigned to control plane machines.

### Workflow
Expand Down

0 comments on commit a08663e

Please sign in to comment.