mirror of
https://github.com/Dvorinka/Containr.git
synced 2026-10-28 07:41:27 +00:00
feat(nodes): per-node default domain with auto service hostnames (#65)
node_agents.default_domain gives each agent a base domain. Services
placed on it (explicit pin or spread) with no explicit service_domains
get <name>.<default_domain> — resolved in serviceDomainNames so edge
routing, wake placeholders, and public_url all see the same names.
Spread services union every eligible node's base domain; explicit
domains always win.
Surfaces: PUT /agents/:id {default_domain} (hostname-validated), CLI
nodes update --domain, MCP arg docs, OpenAPI + regenerated types,
node-detail inline editor.
Also marks the already-shipped backup-import roadmap item.
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
a4bb7ad559
commit
1409186a1f
17 files changed
+294
-41
No files matched your search
@@ -179,6 +179,18 @@ LIMIT 1;
|
||||
-- name: SetAgentTags :exec
|
||||
UPDATE node_agents SET tags = $2::jsonb, updated_at = NOW() WHERE id = $1;
|
||||
|
||||
-- name: SetAgentDefaultDomain :exec
|
||||
UPDATE node_agents SET default_domain = $2, updated_at = NOW() WHERE id = $1;
|
||||
|
||||
-- name: ListSchedulableAgentDomains :many
|
||||
-- Base domains of every online, schedulable agent carrying the required
|
||||
-- placement tags — auto-domain candidates for spread services.
|
||||
SELECT DISTINCT default_domain FROM node_agents
|
||||
WHERE status = 'online' AND schedulable
|
||||
AND default_domain <> ''
|
||||
AND tags @> $1::jsonb
|
||||
ORDER BY default_domain;
|
||||
|
||||
-- name: ListServiceContainers :many
|
||||
SELECT id, name, node_agent_id, status, ports, resources FROM container_instances
|
||||
WHERE service_id = $1;
|
||||
|
||||
@@ -199,7 +199,8 @@ CREATE TABLE node_agents (
|
||||
metadata JSONB,
|
||||
auto_prune BOOLEAN NOT NULL DEFAULT false,
|
||||
schedulable BOOLEAN NOT NULL DEFAULT true,
|
||||
tags JSONB NOT NULL DEFAULT '[]'
|
||||
tags JSONB NOT NULL DEFAULT '[]',
|
||||
default_domain VARCHAR(255) NOT NULL DEFAULT ''
|
||||
);
|
||||
|
||||
CREATE TABLE container_instances (
|
||||
|
||||
Reference in new issue
Block a user