v0.26.0
What's changed in v0.26.0
-
feat(secrets): three-bucket list with platform-pushed section, symmetric managed-by tagging (by @patrickleet)
hops secrets sync awsnow writeshops.ops.com.ai/managed-by=sync
alongside the existinghops.ops.com.ai/secret=true, mirroring the
managed-by=pushsecrettag that AuthStack-style Crossplane stacks
attach to ESO-pushed AWS SM entries. Bucketing insecrets list
becomes a positive match instead of "secret=true minus everything
else."secrets listgains a "Platform-pushed secrets" section between the
existing "Managed secrets" and "Other AWS secrets" sections. Routing
byhops.ops.com.ai/managed-by:- sync (or absent + secret=true for legacy entries) → Managed
- pushsecret → Platform-pushed
- everything else → Other
Platform-pushed columns: Name | Owner | Cluster | Namespace | KMS Key |
Status.Owneris derived from the explicithops.ops.com.ai/kind+
hops.ops.com.ai/nametags (renders e.g.AuthStack/pat-local); falls
back to scanning for the olderhops.ops.com.ai/<kind.lower>=<name>
label for entries pushed before the explicit tags were added.has_managed_secret_tag()(used bysync --cleanupto decide which
remote secrets to consider for deletion) was tightened to require
eithermanaged-by=syncOR no managed-by tag at all. Previously it
matched anysecret=trueentry, which would have swept up PushSecret-
managed entries the moment we addedsecret=trueto that flow.Existing managed secrets show
remote tags differin the list output
until the nexthops secrets sync awswrites the new managed-by tag.
No data is at risk — the migration is just additive.Pairs with the AuthStack PushSecret commit + the SecretStack
push/*IAM grant.
See full diff: v0.25.1...v0.26.0