Skip to content

fix(tamanu): release the previous program's field ownership on adopted objects - #33

Merged
passcod merged 1 commit into
mainfrom
fix-release-legacy-fields
Oct 27, 2026
Merged

passcod merged 1 commit into
mainfrom
fix-release-legacy-fields

Conversation

@passcod

@passcod passcod commented Oct 27, 2026 •

Copy link
Copy Markdown
Member

🤖 The handover to Argo CD adopted the objects the previous program created under stable names, but left the pulumi-kubernetes-* field managers it applied them with. Server-side apply lets Argo remove only the fields it owns, so fields only the old manager owned stay on the object. From Tamanu 2.60 the render drops the raw and reporting database variables and the stub deletes their Secrets, so the facility servers of a handed-over deployment can no longer start once its stub is updated.

Every update of a handed-over stack now applies an empty object as each leftover manager on the adopted Deployments, Services, CNPG Clusters, ScheduledBackups and barman ObjectStores, before anything is declared. A preview only logs what it would release.

A server-side dry run across both clusters showed what releasing removes: the stale database variables on the facility Deployments of deployments at 2.60 or later, the pulumi.com/patchForce annotation on Deployments and Clusters, and nothing on Services, ScheduledBackups or ObjectStores.

The runbooks for a stuck Application and for the handover now cover it.

…d objects

The handover to Argo CD adopted the Deployments, Services and database objects
the previous program created under stable names, but left the field managers it
applied them with. Server-side apply lets Argo remove only the fields it owns, so
a field only the old manager owned stays on the object: from Tamanu 2.60 the
render drops the raw and reporting database variables, the stub deletes their
Secrets, and the facility servers can no longer start.

Every update of a handed-over stack now applies an empty object as each leftover
pulumi-kubernetes manager, before anything is declared, so its fields are given
up and the ones Argo does not also own are removed.
@passcod
passcod merged commit 33f4a49 into main Oct 27, 2026
8 checks passed
@passcod
passcod deleted the fix-release-legacy-fields branch October 27, 2026 09:35
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