Repository navigation
Add LBHealthMonitor controller - #1036
Draft
zunken1337 wants to merge 15 commits into
Draft
zunken1337 wants to merge 15 commits into
zunken1337 wants to merge 15 commits into
Conversation
Adds an ORC controller for Octavia load balancers, and enables Octavia in the e2e devstack. Rebased from k-orc#638 onto main: module path v3, RequireDependency, the default resync period, the reconcileResourceActuator assertion, listResources, +orc:kustomize:ref markers, no dead spec.resource nil checks, and the e2e matrix (hibiscus/gazpacho/flamingo, Noble amphora image). Co-Authored-By: Joakim Johansson <joakimjohansson@zunken.nu> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- adoption matches everything set at creation, not only the name - filter: adminStateUp, flavorRef, and vipAddress as IPvAny - link the provisioning and operating status codes - wait on deletion, not readiness, when deleting - API validation tests, an adopt test, README Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- omit empty description, flavorID and availabilityZone from the status - assert operatingStatus, and more present and absent fields - create-full: test projectRef, which needs admin, on a separate LB Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Octavia's flavor_id refers to an Octavia flavor, which the operator creates (/v2/lbaas/flavors), not a compute flavor, so a Flavor reference can't work. ORC has no kind for Octavia flavors yet. Also clarify that availabilityZone is an Octavia availability zone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
As k-orc#1015 did for network and subnet: CreateResource adds the deletion guards, but an adopted load balancer never goes through it. The adopt test now removes the subnet guard and checks that it comes back. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Each load balancer is an amphora VM with 1 GB of RAM. With more load
balancer tests, nova ran out of memory to schedule them ("No valid host
was found") although most of it was unused.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
loadbalancer-import creates a load balancer with the fixed VIP address
10.0.0.100 on the subnet where the trap load balancer and its amphora
already got random addresses, so the address was sometimes taken
("The VIP IP address is already in use"). Give the subnet an allocation
pool that excludes it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adds an ORC controller for Octavia listeners. Rebased from k-orc#639 onto the LoadBalancer controller: module path v3, RequireDependency, the default resync period, the reconcileResourceActuator assertion, +orc:kustomize:ref markers, and no dead spec.resource nil checks. Co-Authored-By: Joakim Johansson <joakimjohansson@zunken.nu> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Create and update now handle every field in the spec: connection limit, timeouts, insert headers, allowed CIDRs, TLS (Barbican container URLs, ciphers, versions, ALPN, client authentication), HSTS and tags. Status reports the TLS and HSTS settings. The Barbican fields are named ...URL rather than ...Ref, since they are not references to ORC objects. defaultPoolRef is removed until the Pool controller exists. Adoption filters by load balancer, import applies every filter field, and a 409 on update waits instead of failing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adds an ORC controller for Octavia pools, with their members. Rebased from k-orc#640 onto the Listener controller: module path v3, RequireDependency, the default resync period, the reconcileResourceActuator assertion, +orc:kustomize:ref markers, and no dead spec.resource nil checks. Co-Authored-By: Joakim Johansson <joakimjohansson@zunken.nu> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adoption filters by load balancer or listener, import applies every filter field, and the members' subnets get their deletion guards. The pool's lbAlgorithm, TLS and CA/CRL settings can be updated; the TLS settings Octavia fills in by default are only updated when set. Members are listed in one call. The Barbican fields are named ...URL. Listener gets defaultPoolRef, for a pool created on the load balancer. lbpool-update replaced its dependencies along with the pool, which removed their finalizers; they are now prerequisites. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A health monitor checks the members of one pool. type and poolRef are immutable; delay, timeout, retries and the HTTP options can be updated. The optional fields have Octavia defaults and gophercloud can't reset them or clear the tags, so they are only updated when set. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #1023
Depends on #1018, #1034 and #1035. Until they merge this PR also shows their commits; the new ones are the last three.
LBHealthMonitoras proposed in #1023:poolRefandtypeare immutable,timeout < delayis validated with CEL. Optional fields are only updated when set, since gophercloud can't reset them.🤖 Generated with Claude Code