labels.go RawHistoryFolder
1package domain
2
3// Label keys used by Gordon for container and image metadata.
4const (
5 // Container labels
6 LabelDomain = "gordon.domain"
7 LabelImage = "gordon.image"
8 LabelManaged = "gordon.managed"
9 LabelCreated = "gordon.created"
10 // LabelEnvHash stores a SHA-256 hash of the effective environment
11 // variables at deploy time, used to detect env drift without
12 // exposing secret values.
13 LabelEnvHash = "gordon.env-hash"
14
15 // App ownership labels are stamped by the v3 deploy engine on every
16 // container and volume it creates (03-deployment.md §4A/B, frozen here
17 // so prune/backup guards can consume them before the engine activates).
18 // The engine wiring that stamps them lands at cutover; until then no
19 // live resource carries them and guards treat their absence on a
20 // managed resource as legacy/unknown provenance (never prune-eligible
21 // once app state exists).
22 LabelApp = "gordon.app"
23 LabelAppService = "gordon.app.service"
24 LabelAppRevision = "gordon.app.revision"
25 // LabelAppID carries the app's stable internal UUID, so provenance
26 // survives a public-name reuse without ever inferring ownership
27 // from the name alone.
28 LabelAppID = "gordon.app.id"
29
30 // Standalone service labels identify Gordon-managed L4 service containers.
31 LabelService = "gordon.service"
32 LabelServiceName = "gordon.service.name"
33 LabelServiceConfigHash = "gordon.service.config-hash"
34 LabelServiceManagedVolumes = "gordon.service.managed-volumes"
35 LabelServiceCleanupPreserveVolumes = "gordon.service.cleanup.preserve-volumes"
36 LabelServiceCleanupRemoveContainer = "gordon.service.cleanup.remove-container"
37
38 // LabelProxyPort specifies the container port to proxy HTTP traffic to.
39 LabelProxyPort = "gordon.proxy.port"
40
41 // LabelProxyProtocol specifies the backend protocol the container speaks.
42 // Supported values: "h2c" (cleartext HTTP/2). When unset, HTTP/1.1 is assumed.
43 LabelProxyProtocol = "gordon.proxy.protocol"
44
45 // Auto-route image labels (for automatic route discovery)
46 // LabelDomains specifies multiple route domains (comma-separated).
47 LabelDomains = "gordon.domains"
48 // LabelHealth specifies the health check endpoint path.
49 LabelHealth = "gordon.health"
50 // LabelPort is a deprecated alias for LabelProxyPort.
51 // Kept for backward compatibility; prefer LabelProxyPort for new images.
52 LabelPort = "gordon.port"
53 // LabelEnvFile specifies the path to .env file inside the image.
54 LabelEnvFile = "gordon.env-file"
55 // LabelPurpose marks Gordon-owned helper containers that are not
56 // managed workloads (volume archives, bounded readiness probes).
57 // Lifecycle, reconcile and prune paths must treat them as helper
58 // infrastructure, never as apps or services.
59 LabelPurpose = "gordon.purpose"
60)
61
62// Purpose values for Gordon-owned helper containers.
63const (
64 // PurposeNetworkProbe identifies one bounded readiness probe helper.
65 PurposeNetworkProbe = "network-probe"
66)