Skip to content

Develop -> Main CAPC for release v0.13.0#115

Merged
suhasagasthya merged 14 commits intomainfrom
develop
Apr 9, 2026
Merged

Develop -> Main CAPC for release v0.13.0#115
suhasagasthya merged 14 commits intomainfrom
develop

Conversation

@suhasagasthya
Copy link
Copy Markdown

Issue #, if available:

Description of changes:

Testing performed:

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

suhasagasthya and others added 14 commits December 19, 2025 11:54
Signed-off-by: Suhas Agasthya <suhasagasthya@gmail.com>
Signed-off-by: Suhas Agasthya <suhasagasthya@gmail.com>
Signed-off-by: Suhas Agasthya <suhasagasthya@gmail.com>
- Compare actual LB rule IDs in the CloudStackIsolatedNetwork watch
  predicate instead of only comparing the count. This ensures control
  plane machines are re-reconciled when rule IDs change even if the
  number of rules stays the same.
- Use sanitized IsolatedNetworkName() in GenerateIsolatedNetwork to
  ensure the Kubernetes object name matches the lookup name. Previously,
  network names containing dots would cause a mismatch between creation
  and lookup.
- Fix IsolatedNetwork() to return the cached CloudStackIsolatedNetwork
  when already populated, instead of returning an empty object.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
When a load balancer rule disappears from CloudStack (e.g. due to IP
disassociation or external deletion), the machine controller would fail
hard on ListLoadBalancerRuleInstances and get stuck in an error loop.
Now non-existent rules are skipped with a warning event, allowing the
machine controller to continue processing remaining rules while the
isolated network controller re-creates the missing ones.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Loadbalancer rule assignment fixes
Signed-off-by: Suhas Agasthya <suhasagasthya@gmail.com>
Signed-off-by: Suhas Agasthya <suhasagasthya@gmail.com>
feat: CAPI 1.12.1 and support K8s 1.35
refactor: Improve handling of CloudStackMachineTemplate
…hooks

Make ControlPlaneEndpoint optional on CloudStackCluster and
CloudStackIsolatedNetwork, allowing the endpoint to be populated
dynamically during reconciliation rather than requiring it at creation
time. Move port defaulting (6443) from the mutating webhook into the
isolated network controller's reconcile loop.

Remove mutating webhooks for CloudStackCluster and
CloudStackClusterTemplate as they are no longer needed.

CC-1861

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…point

feat(api): Make ControlPlaneEndpoint optional and remove mutating webhooks
@suhasagasthya suhasagasthya merged commit a74dbe5 into main Apr 9, 2026
8 checks passed
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.

2 participants