Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Limitations and outlook of Robot vSwitch integration #859

Open
lukasmetzner opened this issue Feb 4, 2025 · 0 comments
Open

Limitations and outlook of Robot vSwitch integration #859

lukasmetzner opened this issue Feb 4, 2025 · 0 comments
Assignees
Labels
enhancement New feature or request pinned

Comments

@lukasmetzner
Copy link
Contributor

After reviewing open issues and PRs we identified common issues with the Robot vSwitch integrations and propose our solutions here. This issue will be referenced in the corresponding pull requests.

IP mismatch

When a node is initialized via the HCCM, we receive the Kubernetes node object from the cloud-provider library and must return instance-specific metadata defined by cloudprovider.InstanceMetadata. One of the required fields is NodeAddresses, which should include all available addresses retrieved from the Hetzner Cloud API and the Robot Webservice. The cloud-provider library then validates these addresses against those listed in the node object. However, if a user manually sets the vSwitch IP using the --node-ip kubelet flag, the validation fails because the Robot Webservice does not provide the necessary information.

E1112 10:10:10.000000       1 node_controller.go:240] error syncing 'XXX': failed to get node modifiers from cloud provider: provided node IP for node "XXX" is not valid: failed to get node address from cloud provider that matches ip: XXX, requeuing

Solution

We forward the nodes InternalIPs by default. This behavior can be disabled via an environment variable.

Support private IPs as load balancer targets

Due to the same restrictions in the Robot Webservice, we can not support private vSwitch IPs as load balancer targets.

Solution

We can use the nodes configured InternalIP as a target, when load-balancer.hetzner.cloud/use-private-ip is set to true.

Native Routing does not work with vSwitch IPs

As stated in the Hetzner Cloud API documentation, we can not add a route to a network, where the gateway address is an IP behind a vSwitch. There is currently no solution for this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request pinned
Projects
None yet
Development

No branches or pull requests

1 participant