Skip to content

feat: Add Create & Delete Hetzner Load Balancer integrations #3169

Merged
shiroyasha merged 3 commits intosuperplanehq:mainfrom
usernamenenad:feature/hetzner-create-lb
Feb 19, 2026
Merged

feat: Add Create & Delete Hetzner Load Balancer integrations #3169
shiroyasha merged 3 commits intosuperplanehq:mainfrom
usernamenenad:feature/hetzner-create-lb

Conversation

@usernamenenad
Copy link
Contributor

@usernamenenad usernamenenad commented Feb 18, 2026

(There is no ticket for this - idk if I should make it?)

This PR adds Create and Delete Hetzner Load Balancer integrations to Superplane.

There are abilities to choose load balancer type, its' location and load balancing algorithm.

image image

Delete Load Balancer configuration lists available load balancers to be deleted.

image image

@usernamenenad usernamenenad force-pushed the feature/hetzner-create-lb branch from 3fc3937 to 289c77b Compare February 18, 2026 18:12
@usernamenenad usernamenenad force-pushed the feature/hetzner-create-lb branch from 289c77b to cd26cee Compare February 18, 2026 18:24
@AleksandarCole AleksandarCole added the pr:stage-2/3 Needs to pass functional review label Feb 18, 2026
@usernamenenad usernamenenad force-pushed the feature/hetzner-create-lb branch from cd26cee to f724f2a Compare February 18, 2026 18:42
@AleksandarCole AleksandarCole requested review from shiroyasha and removed request for shiroyasha February 19, 2026 14:47
@AleksandarCole AleksandarCole added pr:stage-3/3 Ready for full, in-depth, review and removed pr:stage-2/3 Needs to pass functional review labels Feb 19, 2026
@shiroyasha
Copy link
Collaborator

@usernamenenad looks good. What remains:

1/ that one comment from cursor
2/ you will need to run make gen.components.docs and push for the CI to pass

Signed-off-by: usernamenenad <radovic.nenad158@gmail.com>
Signed-off-by: usernamenenad <radovic.nenad158@gmail.com>
@usernamenenad usernamenenad force-pushed the feature/hetzner-create-lb branch from f724f2a to 86090be Compare February 19, 2026 19:26
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

type createLoadBalancerResponse struct {
LoadBalancer *ServerResponse `json:"load_balancer"`
Action *ActionResponse `json:"action"`
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Response struct uses wrong JSON key for actions

High Severity

The createLoadBalancerResponse struct maps Action to JSON field "action" (singular), but the Hetzner Cloud API's POST /load_balancers endpoint returns "actions" (plural array). This means out.Action will always be nil after deserialization via decodeJSON, causing the nil check to always fail and CreateLoadBalancer to always return the error "create load balancer missing load_balancer or action". The entire Create Load Balancer feature is broken.

Additional Locations (1)

Fix in Cursor Fix in Web

Copy link
Contributor Author

@usernamenenad usernamenenad Feb 19, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, the official documentation says that it returns a singular word (action)

https://docs.hetzner.cloud/reference/cloud#tag/load-balancers/create_load_balancer

@shiroyasha shiroyasha merged commit a687455 into superplanehq:main Feb 19, 2026
2 checks passed
@usernamenenad usernamenenad deleted the feature/hetzner-create-lb branch February 20, 2026 18:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr:stage-3/3 Ready for full, in-depth, review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants