mirror of
https://github.com/amidaware/tacticalrmm.git
synced 2026-04-26 06:55:52 +03:00
[GH-ISSUE #2369] FR: Proper container support #3404
Labels
No labels
In Process
bug
bug
dev-triage
documentation
duplicate
enhancement
fixed
good first issue
help wanted
integration
invalid
pull-request
question
requires agent update
security
ui tweak
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/tacticalrmm#3404
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @samip5 on GitHub (Dec 9, 2025).
Original GitHub issue: https://github.com/amidaware/tacticalrmm/issues/2369
Is your feature request related to a problem? Please describe.
Running TRMM on container orchestration platforms (Kubernetes, Swarm, Nomad, etc.) is pretty rough because the Docker setup assumes every container shares the same filesystem. In practice:
tactical.readyfile in/opt/tactical/tmp/, and NATS won’t start until it sees it — but in K8s these are separate pods with separate filesystems.create_natsapi_confgeneratesnats-rmm.confandnats-api.confunder/opt/tactical/api/, but other containers need to read them and can’t./opt/tactical, so you can’t mount a shared volume there without wiping out the app code.I have it running, but only by adding an init container to the NATS pod that polls a PVC for the config files and then copies them into an emptyDir. It works, but it’s not pretty.
MeshCentral is running in the same cluster but as a separate deployment, mainly to avoid adding even more cross-container filesystem coordination.
Describe the solution you'd like
nats-api.confis just JSON with DB creds and a key — that could be handled entirely with env vars./opt/tactical/api/.tactical.readyfile check with something containers can coordinate on: an HTTP readiness probe, or simply removing the check if the init container is already a separate pod.Describe alternatives you've considered
/opt/tactical— not viable because the source code lives there.Additional context
Happy to test or contribute patches. I can handle the Django side; the main blocker is the NATS container since its paths are fixed.
EDIT: I just spent 7 hours figuring this one out.