Skip to content

fix(oci): tag reserved public IPs for monitor safety - #23

Merged
syscod3 merged 1 commit into
mainfrom
fix/tag-reserved-public-ip-for-monitor-safety
Aug 8, 2026
Merged

fix(oci): tag reserved public IPs for monitor safety#23
syscod3 merged 1 commit into
mainfrom
fix/tag-reserved-public-ip-for-monitor-safety

Conversation

@syscod3

@syscod3 syscod3 commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Summary

  • CreateReservedPublicIP never tagged the IP it creates
  • oci-free-tier-monitor's orphan-cleanup only checks lifecycle_state == AVAILABLE, which a pivot-managed IP briefly reads mid-failover during this controller's own detach/reattach — the monitor's scheduled scan could delete a live Service's VIP at exactly the wrong moment
  • Tags every created IP with pivot.oci.io/managed: "true"; the monitor (already fixed in syscode-labs/oci-free-tier-monitor) skips anything carrying that tag regardless of lifecycle_state

Test plan

  • go build ./... passes
  • gofmt clean
  • golangci-lint passes (pre-commit)
  • envtest suite (local env missing kubebuilder assets — not run locally, should pass in CI)

…ce a failover

CreateReservedPublicIP never set FreeformTags. oci-free-tier-monitor's
orphan-IP cleanup only checks lifecycle_state == AVAILABLE, which a
managed IP briefly reads during this controller's own detach/reattach on
node failover — the monitor's scheduled scan could delete a live Service's
VIP mid-reassignment. Tag every IP pivot creates with
pivot.oci.io/managed: "true"; the monitor already skips anything carrying
that tag regardless of lifecycle_state (syscode-labs/oci-free-tier-monitor,
already fixed there).
@syscod3
syscod3 merged commit 5e39440 into main Aug 8, 2026
12 of 13 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