Skip to content

feat(robot): allow Robot support without API credentials for IP-based LB targets#1163

Open
robertlemke wants to merge 2 commits intohetznercloud:mainfrom
flownative:flownative/robot-without-credentials
Open

feat(robot): allow Robot support without API credentials for IP-based LB targets#1163
robertlemke wants to merge 2 commits intohetznercloud:mainfrom
flownative:flownative/robot-without-credentials

Conversation

@robertlemke
Copy link

When robot.enabled is set but no ROBOT_USER / ROBOT_PASSWORD are provided, the HCCM now derives IP targets directly from the Kubernetes Node's InternalIP instead of querying the Robot API. This is useful for setups where Robot servers are connected via vSwitch and only the service controller is needed.

Existing behavior is unchanged when credentials are provided. Partial credentials (only user or only password) are rejected during validation.

Fixes: #1162

…targets

Previously, enabling Robot support (`ROBOT_ENABLED=true`) required both
`ROBOT_USER` and `ROBOT_PASSWORD` to be set. This made it impossible to
use Robot nodes as IP-based load balancer targets without providing Robot
API credentials.

With this change, Robot credentials become optional. When no credentials
are provided, the load balancer reconciler derives IP targets directly
from the Kubernetes Node objects' InternalIP instead of querying the
Robot API. This is sufficient for setups where the node's InternalIP
(e.g. a vSwitch private IP) is the correct LB target address.

Partial credentials (only user or only password) are still rejected as a
likely misconfiguration.
@robertlemke robertlemke requested a review from a team as a code owner February 24, 2026 11:12
@robertlemke
Copy link
Author

Hey there! This is my first contribution to HCCM and I tried to make it as clean and meaningful as possible.

I added tests and also tested the feature in a Talos Cluster based on Hetzner dedicated servers, as well as my CAPI-based cluster using HCloud instances.

Please let me know if I missed anything or if the motivation for this feature is unclear.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(robot): support Robot without API credentials for IP-based LB targets

1 participant