mirror of
https://github.com/Dvorinka/Containr.git
synced 2026-10-28 15:51:26 +00:00
feat(services): volume mounts + admin volume inventory (C1)
services.volumes JSONB [{type: volume|bind, source, target, read_only}]
mapped into every replica's container config at deploy and reconcile
time, hashed into the runtime spec so mount changes trigger
reconciliation. Mounted via existing docker.HostConfig.Mounts.
- RuntimeSpec.Volumes + specHash + mount.Mount mapping in createReplica
- Create/update service accepts volumes; PUT replaces the whole list
- Replica-count reconcile now goes through the deploy queue — the last
raw `go` reconcile left that could race a build
- GET /admin/volumes inventories node volumes with in_use flags;
DELETE /admin/volumes/:name removes unused ones (409 on in-use)
- CLI: services update --volume/--bind/--clear-volumes, volumes
list|delete; MCP: services_update + volumes_list/delete
- Settings UI: Volumes section with mount editor
- Migration normalizes the nullable baseline column to NOT NULL [].
Verified live: deploy applies mounts to the container, docker
auto-creates named volumes, in-use deletion is refused.
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
1 parent
747b714a02
commit
2f8f595d6e
21 files changed
+863
-93
No files matched your search
@@ -0,0 +1,13 @@
|
||||
-- +goose Up
|
||||
-- Volume mounts on services: [{type: "volume"|"bind", source, target,
|
||||
-- read_only}]. Applied to every replica's container config at deploy and
|
||||
-- reconcile time. The baseline schema declared the column nullable with
|
||||
-- no default — this normalizes it.
|
||||
ALTER TABLE services ADD COLUMN IF NOT EXISTS volumes JSONB DEFAULT '[]'::jsonb;
|
||||
UPDATE services SET volumes = '[]'::jsonb WHERE volumes IS NULL;
|
||||
ALTER TABLE services ALTER COLUMN volumes SET DEFAULT '[]'::jsonb;
|
||||
ALTER TABLE services ALTER COLUMN volumes SET NOT NULL;
|
||||
|
||||
-- +goose Down
|
||||
ALTER TABLE services ALTER COLUMN volumes DROP NOT NULL;
|
||||
ALTER TABLE services ALTER COLUMN volumes DROP DEFAULT;
|
||||
Reference in new issue
Block a user