Skip to content

implement Octavia loadbalancer pool controller - #640

Draft
eshulman2 wants to merge 7 commits into
k-orc:mainfrom
eshulman2:add_pools
Draft

eshulman2 wants to merge 7 commits into
k-orc:mainfrom
eshulman2:add_pools

Conversation

@eshulman2

@eshulman2 eshulman2 commented Jan 11, 2026

Copy link
Copy Markdown
Contributor

Add pool and member support as a sub-resource. Members are
modeled this way because they can only exist as part of a pool
and have no independent existence.

depends on: #638 #639

@github-actions github-actions Bot added the semver:major Breaking change label Jan 11, 2026
@eshulman2
eshulman2 marked this pull request as draft January 11, 2026 08:41
- allow testing octavia by enabling it in the e2e job
- increase vm qouta to allow e2e to run
$ 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
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.
$ 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
Add pool and member support as a sub-resource. Members are
modeled this way because they can only exist as part of a pool
and have no independent existence.

This branch has not been deployed

No deployments
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.

1 participant