Skip to content

fix: reuse OpenStack clients and prepare v0.11.1 - #179

Merged
lappesj merged 3 commits into
mainfrom
feat/no-fork-client-cache
Oct 23, 2026
Merged

lappesj merged 3 commits into
mainfrom
feat/no-fork-client-cache

Conversation

@lappesj

@lappesj lappesj commented Oct 23, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Prepare the v0.11.1 patch release with authenticated OpenStack client reuse across reconciliations.

  • Cache clients by the complete provider configuration; coalesce concurrent initialization and bound the cache to 128 entries per provider flavor.
  • Authenticate before publishing cached clients so failed initial authentication is not retained and token expiry is known.
  • Expire clients before their tokens, invalidate the matching generation on HTTP 401, and bound shared reauthentication to 30 seconds.
  • Preserve credential/scope isolation and keep Swift authentication uncached.
  • Classify existing gophercloud and x/sync dependencies as direct dependencies; no dependency version changes.

Verification

  • GitHub CI passed: unit tests, lint, generated diff, and local deployment.
  • Client tests passed locally with the race detector across 20 runs.
  • Development package publication passed.
  • Deployed commit fdaf977 to de101-dev through the JFrog GHCR mirror using GitOps; runtime digest verified.
  • Real controller / mock Keystone tests passed: 24 role reads across six managed resources and two ProviderConfigs used one token; initial HTTP 429 recovery, revoked-token HTTP 401 recovery with allow_reauth=false, and 20-second token expiry without an expiry HTTP 401.
  • All nine Observe-only fixture resources were Ready/Synced and were cleaned up with their dummy credentials and mock infrastructure.
  • All 296 pre-existing OpenStack managed resources remained Synced, including all 11 original RoleAssignments Ready/Synced. One pre-existing NotReady resource was unchanged.

Release checklist

  • Confirm v0.11.1 stable release scope.
  • Commit and push the dated CHANGELOG.md release entry (3957bdd).
  • Resolve the DCO sign-off check for all three commits.
  • Complete required review and merge into main.
  • Create/update release-v0.11 and tag v0.11.1 using the Tag workflow.
  • Publish the tagged package to GHCR and Upbound; verify mirror availability.
  • Publish GitHub release notes.

No production deployment is included. The existing dev canary override remains unchanged by this release preparation.

@lappesj
lappesj marked this pull request as ready for review October 23, 2026 14:11
@lappesj
lappesj requested a review from Avatos as a code owner October 23, 2026 14:11
Jacob Lapp added 3 commits October 23, 2026 16:19
Signed-off-by: Jacob Lapp <jacob.lapp@cgm.com>
Signed-off-by: Jacob Lapp <jacob.lapp@cgm.com>
Signed-off-by: Jacob Lapp <jacob.lapp@cgm.com>
@lappesj
lappesj force-pushed the feat/no-fork-client-cache branch from 3957bdd to 645c50d Compare October 23, 2026 14:20
@lappesj
lappesj merged commit e37b051 into main Oct 23, 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.

1 participant