Reload configuration¶
gdsgate reload re-reads a running component's configuration. Choose a server
with --role; without it, the command targets the resident client.
gdsgate reload
gdsgate reload --role authority
gdsgate reload --role proxy
gdsgate reload --role connector
gdsgate reload --role agent-host
Server commands use the installed role's configuration to find its local control
channel. They do not follow contexts use. For a foreground process or a custom
file, name the file explicitly:
gdsgate --config /etc/gdsgate/connector.toml reload --role connector
gdsgate --config /etc/gdsgate/connector.toml doctor --role connector --json
Without --config, the server re-reads the file it loaded last. An explicit path
becomes the loaded source after successful application. It must retain the same
state directory and settings that require restart. The command starts no process
and installs no service. Configurationless development processes have no reload
channel.
Apply changes¶
- Edit the component's file or use
setup change. - Run
reload --role ROLEas the process owner or a machine administrator. - Read the result. Success includes the role, loaded path and reload generation. A refusal names the settings that require restart or the failed preparation.
- Run
doctor --role ROLE --explainto inspect the last reload result. Its JSON includesruntime_reloadwithrole,config_path,generationanderror. The field isnullwhen no running reload channel can be reached.
The server validates and prepares every replacement before applying changes. A
preparation failure retains the loaded source and live configuration. Accepted
application finishes even if the requesting command disconnects. An interrupted
command should be followed by doctor before retrying.
Files must belong to the service account or a machine administrator and must not be writable by another account. Read access for a service group is allowed. The local channel admits the owning account and machine administrators; it is not a network listener.
On Unix, a reload socket cannot be served from a directory that another account
can write unless the directory has the sticky bit. At startup, Connector, Proxy
and Agent Host tighten an owned node state directory with unsafe write permissions
to 0700. This changes the directory itself, without recursively changing its
contents. Shared system directories, foreign owners and symbolic links are not
rewritten. Authority store directories retain their configured permissions.
A state directory may be a symbolic link, including one created by a service manager. The link, its containing directories and its resolved target must be owned by root or the service account and protected from replacement by another account. Sticky ancestors remain supported when the entries below them have these owners. Reload binds at the checked target without changing permissions through the link. Unsafe links disable reload with a diagnostic.
If the protected reload channel cannot be created, the component logs an ERROR
and continues without configuration reload. This does not bypass transport,
authentication or resource authorization checks. reload then fails to connect;
correct the local channel problem and restart the component to enable it.
Windows service install makes the server configuration owned by Administrators,
writable by Administrators and SYSTEM, and readable by the service account.
setup change preserves that owner and access list. Reinstall an existing server
service once to apply these permissions before using configuration reload.
Changes supported without restart¶
| Role | Settings | Effect |
|---|---|---|
| Authority | transport.cert_ttl_secs |
Validity of subsequently issued transport identities. Existing identities retain their expiry. |
| Authority | ha.max_cluster_sessions |
Limit for subsequent session admission. Existing sessions remain open. |
| Authority | policy.editor.min_approvers |
Approval threshold used by later policy transitions. |
| Authority | mcp.destructive_patterns |
Classification of later MCP decisions. |
| Proxy | proxy.public_addr |
Address advertised to subsequent clients and joining nodes. It does not move a listener. |
Proxy with proxy.authority_topology = true |
endpoints.authority, authority_failover, authority_enroll, authority_enroll_failover |
Replaces explicit route overrides. Verified membership and cached topology remain intact. |
| Connector | connector.backends, connector.discovery_sources |
Replaces local declarations and probes. Open sessions retain their original backend. Changed declarations wait for admission before new sessions start. |
| Agent host | endpoints.authority, endpoints.proxy_public |
Changes later Authority calls and the Proxy route for newly acquired works. Existing works retain their clients. Requires an enrolled Authority client. |
all |
Authority limits, proxy.public_addr, Connector declarations and probes |
Prepares all components before applying any changes. Uses the existing local listeners. |
Connector reload requires every desired tunnel to be registered with an updated Proxy and Authority supporting live declarations. An older peer or a missing tunnel refuses local reload. Discovery retains its existing reconnect behavior when communicating with older peers.
Connector success confirms local application. Cluster admission and automatic
publication follow asynchronously. Authority still checks node identity,
publication scope, catalogue modes and activation receipts. A denied resource
remains unavailable. Inspect doctor, the catalogue and serving status after
application. Authority outages, revocations and expired leases still stop access.
An automatic publisher keeps its existing namespace, journal and generation counter. Removed routes are withdrawn, and new routes wait for Authority's accepted snapshot. A manual discovery reload cancels old probes before starting replacements.
Authority limits are local settings. Reload each HA Authority after updating its file. Reload does not distribute configuration files or move sessions between processes. Keyring synchronization and CA rotation retain their existing commands.
Changes requiring restart¶
The [admin] block configures the administrative CLI. Server roles do not use it;
updating its endpoint, identity directory or transport does not require a server
restart and does not replace the server's enrolled identity.
Other settings outside the table require restart. These include cluster identity,
enrollment and transport identity, database or state paths, listeners, TLS paths
and names, OIDC, workload validation, keyrings, HA membership, telemetry, recording
sinks and Agent host runtime settings. Static Proxy Authority routes also require
restart when proxy.authority_topology is disabled.
A file containing both supported changes and a change requiring restart is refused as a whole. Resolve the named fields and retry, or restart deliberately. Changed environment variables or service environment files require restart.
Certificate contents at existing configured paths use the separate TLS refresh
mechanism. Invalid replacements keep the previous certificate. SIGHUP and
Windows service paramchange retain their certificate-refresh behavior; they do
not acknowledge configuration application.
Services and platforms¶
Linux units installed by this build use an acknowledged reload command:
sudo systemctl reload gdsgate-authority
sudo systemctl reload gdsgate-proxy
sudo systemctl reload gdsgate-connector
Reinstall an existing unit with the installed new binary and the same config:
Use the corresponding role and config for Proxy or Connector. The installer
updates ExecReload and runs systemctl daemon-reload automatically. Until
then, use gdsgate reload --role ROLE directly. A binary upgrade also requires
a separate process restart; unit installation and configuration reload leave
an already running process in place. Follow the
0.11 service upgrade.
The role remains running during configuration reload.
On Windows, run the same gdsgate.exe reload --role ROLE command from an elevated
terminal. It reaches the running service through its protected local channel.
For a container or an unmanaged process, run the command as the process owner,
with the same configuration and state paths available.
Authority places its channel beside the SQLite store, or in the HA keyring-sync
state directory when no file store is configured. Explicit enroll.state_dir
selects the remaining Authority case; otherwise the audit export directory or
platform Authority state directory is used for a configured database. A manual,
unprivileged database deployment should set a private enroll.state_dir.
Other server roles use their enrolled state directory. None of these paths are
shared with the resident's control socket.
For resident settings, context switching and OS resources requiring restart, see resident reload.