Repository navigation
Feature/service runtime fields - #288
Merged
Merged
Conversation
The column came with migration 20261014120000 and is read and written by its own queries, but the three SELECT * project queries were prepared before it existed. Preparing them against a migrated database fails to compile (no field members_server_access), so no sqlx query cache could be regenerated. The field is kept out of API bodies. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012TKZy6f5shPzM9WLdswH6f
A service can now say how it runs: restart ("no" for a job that runs
once), entrypoint, compose profiles, network aliases, deploy.replicas
and deploy.resources.reservations.devices (GPUs). Together they let one
stack carry CPU and GPU variants of a service under one name.
Every declared setting reaches each compose stacker writes from the
service, per shared-fixtures stack-service-runtime-fields: the CLI
compose, the author's own compose (deploy.compose_file), the compose the
server renders from the registered project, and the one the
status-panel agent applies. Tracing those paths also found settings
that were silently dropped:
- registering a project sent no depends_on, cap_add, cap_drop or
devices, and the server form had no healthcheck, so a deploy started
outside the CLI lost them;
- project_app rows never got depends_on or healthcheck, and had no
place for capabilities or devices (new runtime JSONB column);
- the agent's compose never rendered command or entrypoint: the
template asked for them but the render context did not carry them.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012TKZy6f5shPzM9WLdswH6f
Open
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.
This pull request introduces support for advanced Docker Compose runtime features in service definitions, including new fields such as
restart,cap_add,cap_drop,devices,profiles,aliases, anddeployoptions. These changes are reflected in both the database schema (with a newruntimeJSONB column in theproject_apptable) and in the code that generates Compose files. Additionally, the documentation has been updated to describe these new options and provide usage examples.Key changes:
Database and Query Updates:
runtimeJSONB column to theproject_apptable to store runtime Compose settings. This is implemented via new migration files and updates to all relevant.sqlxquery descriptors to handle the new field. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18]Compose Service Generation:
service_to_compose_valueincompose_service_sync.rsto emit new runtime fields (restart,entrypoint,profiles,aliases,deploy, etc.) in generated Compose YAML, with correct handling for networks and aliases.runtimefield in service definitions. [1] [2]Documentation:
STACKER_YML_REFERENCE.mdto document new service fields and provide examples for one-shot jobs, profiles, GPU device reservations, and shared aliases. [1] [2]Additional Query Updates:
members_server_accessboolean field to several.sqlxquery descriptors for organization membership, and updated their nullability arrays. [1] [2] [3] [4] [5] [6]These changes enable more flexible and powerful Compose configurations for services, supporting modern deployment scenarios such as GPU workloads and multi-profile stacks.