Skip to content

Conversation

@eshulman2
Copy link
Contributor

@eshulman2 eshulman2 commented Dec 25, 2025

Add support for OpenStack Octavia Load Balancer resources. This includes:

  • LoadBalancer CRD with support for VIP subnet/network/port references
  • Controller with create, update, delete, and import capabilities
  • Status reporting with provisioning and operating status
  • Dependency resolution for Subnet, Network, Port, and Project references
  • Kuttl tests for create, update, import, and dependency scenarios

Globalize GetDependencyHelper to reduce code duplication

Closes #619
depends-on: #621

@github-actions github-actions bot added the semver:major Breaking change label Dec 25, 2025
@eshulman2 eshulman2 marked this pull request as draft December 25, 2025 10:48
@eshulman2 eshulman2 force-pushed the lbaas branch 12 times, most recently from 7f5140a to 27dfa2d Compare December 29, 2025 15:49
@eshulman2
Copy link
Contributor Author

/retest

allow testing octavia by enabling it in the e2e job
$ go run ./cmd/scaffold-controller -interactive=false     -kind=LoadBalancer     -gophercloud-client=NewLoadBalancerV2     -gophercloud-module=github.com/gophercloud/gophercloud/v2/openstack/loadbalancer/v2/loadbalancers     -optional-create-dependency Subnet     -optional-create-dependency Network     -optional-create-dependency Port     -optional-create-dependency Flavor     -optional-create-dependency Project
@eshulman2 eshulman2 force-pushed the lbaas branch 2 times, most recently from 53aae1e to 8e5a475 Compare January 8, 2026 12:03
Add support for OpenStack Octavia Load Balancer resources. This includes:

- LoadBalancer CRD with support for VIP subnet/network/port references
- Controller with create, update, delete, and import capabilities
- Status reporting with provisioning and operating status
- Dependency resolution for Subnet, Network, Port, and Project references
- Kuttl tests for create, update, import, and dependency scenarios

Closes k-orc#619
$ go run ./cmd/scaffold-controller -interactive=false       -kind=Listener       -gophercloud-client=NewLoadBalancerV2       -gophercloud-module=github.com/gophercloud/gophercloud/v2/openstack/loadbalancer/v2/listeners       -gophercloud-type=Listener       -openstack-json-object=listener       -available-polling-period=15       -deleting-polling-period=15       -required-create-dependency=LoadBalancer       -optional-create-dependency=Pool       -import-dependency=LoadBalancer
implement listener controller for octavia loadbalancer service. this
contoller is a controller of its own to allow proper importing of
loadbalancers
$ go run ./cmd/scaffold-controller -interactive=false \
      -kind=LBPool \
      -gophercloud-client=NewLoadBalancerV2 \
      -gophercloud-module=github.com/gophercloud/gophercloud/v2/openstack/loadbalancer/v2/pools \
      -gophercloud-type=Pool \
      -openstack-json-object=pool \
      -available-polling-period=15 \
      -deleting-polling-period=15 \
      -optional-create-dependency=LoadBalancer \
      -optional-create-dependency=Listener \
      -optional-create-dependency=Project \
      -import-dependency=LoadBalancer \
      -import-dependency=Listener \
      -import-dependency=Project
- implement pool and member support as a "sub resource"

decided to implement members as a sub resource as it can only exist as
part of a pool and has no existent of its own
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

semver:major Breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Load Balancer Controller

1 participant