mount an azure files share at /var/lib/sop so config and billing state survive restarts - #420
Merged
Merged
Conversation
…e survive restarts
Gemini PR ReviewReviewed commit:
|
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.
The Container App had no volume, so /var/lib/sop was the container's own disk. config.json, stores and billing state (plan upgrades, webhook dedupe) were wiped on every restart or new revision. This adds a Standard LRS storage account with a joltrin-data file share, registers it on the Container Apps environment, and mounts it at /var/lib/sop with uid/gid 65532 (the image's nonroot user) and nobrl.
Validated with az bicep build, az deployment group validate and a what-if against joltrin-prod-rg: it creates the storage account, file service, share and environment storage and modifies the container app. Nothing is deleted.
Not covered here: a first-admin bootstrap. With a fresh share there is still no config.json, and first-run setup only accepts loopback requests, so nobody can log in on the live app yet. That is a server change and gets its own PR. I have not tested the embedded B-Tree engine against SMB-backed storage under load, so check that after the first deploy before taking real payments.
Thanks, Gerard Recinto