diff --git a/cli/testdata/coder_server_--help.golden b/cli/testdata/coder_server_--help.golden index cd3fc8f61e..506f31b489 100644 --- a/cli/testdata/coder_server_--help.golden +++ b/cli/testdata/coder_server_--help.golden @@ -964,6 +964,9 @@ These options are only available in the Enterprise Edition. --browser-only bool, $CODER_BROWSER_ONLY Whether Coder only allows connections to workspaces via the browser. + --cluster-host string, $CODER_CLUSTER_HOST + Hostname or (more commonly) IP to reach this replica for clustering. + --derp-server-relay-url url, $CODER_DERP_SERVER_RELAY_URL An HTTP URL that is accessible by other replicas to relay DERP traffic. Required for high availability. diff --git a/cli/testdata/server-config.yaml.golden b/cli/testdata/server-config.yaml.golden index e713e7d2b2..72d9ebac90 100644 --- a/cli/testdata/server-config.yaml.golden +++ b/cli/testdata/server-config.yaml.golden @@ -190,6 +190,13 @@ networking: # Whether Coder only allows connections to workspaces via the browser. # (default: , type: bool) browserOnly: false + # Configure network clustering. Coder Servers in the primary region form a cluster + # by + # communicating directly. + cluster: + # Hostname or (more commonly) IP to reach this replica for clustering. + # (default: , type: string) + clusterHost: "" # Interval to poll for scheduled workspace builds. # (default: 1m0s, type: duration) autobuildPollInterval: 1m0s diff --git a/codersdk/deployment.go b/codersdk/deployment.go index dd4e22a1d4..34b1f4a783 100644 --- a/codersdk/deployment.go +++ b/codersdk/deployment.go @@ -1455,6 +1455,13 @@ func (c *DeploymentValues) Options() serpent.OptionSet { Tailscale and WireGuard.`, YAML: "derp", } + deploymentGroupNetworkingCluster = serpent.Group{ + Parent: &deploymentGroupNetworking, + Name: "Cluster", + Description: `Configure network clustering. Coder Servers in the primary region form a cluster by +communicating directly.`, + YAML: "cluster", + } deploymentGroupIntrospection = serpent.Group{ Name: "Introspection", Description: `Configure logging, tracing, stat collection, and metrics exporting.`, @@ -3576,6 +3583,16 @@ func (c *DeploymentValues) Options() serpent.OptionSet { Group: &deploymentGroupNetworking, YAML: "browserOnly", }, + { + Name: "Cluster Host", + Description: "Hostname or (more commonly) IP to reach this replica for clustering.", + Flag: "cluster-host", + Env: "CODER_CLUSTER_HOST", + Annotations: serpent.Annotations{}.Mark(annotationEnterpriseKey, "true"), + Value: &c.Cluster.Host, + Group: &deploymentGroupNetworkingCluster, + YAML: "clusterHost", + }, { Name: "SCIM API Key", Description: "Enables SCIM and sets the authentication header for the built-in SCIM server. New users are automatically created with OIDC authentication.", diff --git a/docs/reference/cli/server.md b/docs/reference/cli/server.md index 33b3cec7d2..367fb0519b 100644 --- a/docs/reference/cli/server.md +++ b/docs/reference/cli/server.md @@ -1122,6 +1122,16 @@ The algorithm to use for generating ssh keys. Accepted values are "ed25519", "ec Whether Coder only allows connections to workspaces via the browser. +### --cluster-host + +| | | +|-------------|---------------------------------------------| +| Type | string | +| Environment | $CODER_CLUSTER_HOST | +| YAML | networking.cluster.clusterHost | + +Hostname or (more commonly) IP to reach this replica for clustering. + ### --scim-auth-header | | | diff --git a/enterprise/cli/testdata/coder_server_--help.golden b/enterprise/cli/testdata/coder_server_--help.golden index 9d2d5b6cc5..bc0822640d 100644 --- a/enterprise/cli/testdata/coder_server_--help.golden +++ b/enterprise/cli/testdata/coder_server_--help.golden @@ -965,6 +965,9 @@ These options are only available in the Enterprise Edition. --browser-only bool, $CODER_BROWSER_ONLY Whether Coder only allows connections to workspaces via the browser. + --cluster-host string, $CODER_CLUSTER_HOST + Hostname or (more commonly) IP to reach this replica for clustering. + --derp-server-relay-url url, $CODER_DERP_SERVER_RELAY_URL An HTTP URL that is accessible by other replicas to relay DERP traffic. Required for high availability. diff --git a/helm/coder/templates/_coder.tpl b/helm/coder/templates/_coder.tpl index f344239f19..32d899c5a0 100644 --- a/helm/coder/templates/_coder.tpl +++ b/helm/coder/templates/_coder.tpl @@ -94,6 +94,10 @@ env: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: "http://$(KUBE_POD_IP):8080" +- name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP {{- include "coder.tlsEnv" . }} {{- with .Values.coder.env }} {{ toYaml . }} diff --git a/helm/coder/tests/testdata/auto_access_url_1.golden b/helm/coder/tests/testdata/auto_access_url_1.golden index a6a064e535..1574869803 100644 --- a/helm/coder/tests/testdata/auto_access_url_1.golden +++ b/helm/coder/tests/testdata/auto_access_url_1.golden @@ -162,6 +162,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP - name: SOME_ENV value: some value - name: CODER_ACCESS_URL diff --git a/helm/coder/tests/testdata/auto_access_url_1_coder.golden b/helm/coder/tests/testdata/auto_access_url_1_coder.golden index be09066fb1..745cb0087e 100644 --- a/helm/coder/tests/testdata/auto_access_url_1_coder.golden +++ b/helm/coder/tests/testdata/auto_access_url_1_coder.golden @@ -162,6 +162,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP - name: SOME_ENV value: some value - name: CODER_ACCESS_URL diff --git a/helm/coder/tests/testdata/auto_access_url_2.golden b/helm/coder/tests/testdata/auto_access_url_2.golden index ae96db6fce..d31665bbe2 100644 --- a/helm/coder/tests/testdata/auto_access_url_2.golden +++ b/helm/coder/tests/testdata/auto_access_url_2.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP - name: SOME_ENV value: some value image: ghcr.io/coder/coder:latest diff --git a/helm/coder/tests/testdata/auto_access_url_2_coder.golden b/helm/coder/tests/testdata/auto_access_url_2_coder.golden index c9da24feeb..60c870e22e 100644 --- a/helm/coder/tests/testdata/auto_access_url_2_coder.golden +++ b/helm/coder/tests/testdata/auto_access_url_2_coder.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP - name: SOME_ENV value: some value image: ghcr.io/coder/coder:latest diff --git a/helm/coder/tests/testdata/auto_access_url_3.golden b/helm/coder/tests/testdata/auto_access_url_3.golden index a0fc740b18..9f86f92bc8 100644 --- a/helm/coder/tests/testdata/auto_access_url_3.golden +++ b/helm/coder/tests/testdata/auto_access_url_3.golden @@ -162,6 +162,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP - name: SOME_ENV value: some value image: ghcr.io/coder/coder:latest diff --git a/helm/coder/tests/testdata/auto_access_url_3_coder.golden b/helm/coder/tests/testdata/auto_access_url_3_coder.golden index 00f8bb0029..7c15331829 100644 --- a/helm/coder/tests/testdata/auto_access_url_3_coder.golden +++ b/helm/coder/tests/testdata/auto_access_url_3_coder.golden @@ -162,6 +162,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP - name: SOME_ENV value: some value image: ghcr.io/coder/coder:latest diff --git a/helm/coder/tests/testdata/command.golden b/helm/coder/tests/testdata/command.golden index f6e9eb63c8..d89ad775a7 100644 --- a/helm/coder/tests/testdata/command.golden +++ b/helm/coder/tests/testdata/command.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/command_args.golden b/helm/coder/tests/testdata/command_args.golden index e42faf81b1..92d69f1aa2 100644 --- a/helm/coder/tests/testdata/command_args.golden +++ b/helm/coder/tests/testdata/command_args.golden @@ -165,6 +165,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/command_args_coder.golden b/helm/coder/tests/testdata/command_args_coder.golden index e1763bad38..cc512aa864 100644 --- a/helm/coder/tests/testdata/command_args_coder.golden +++ b/helm/coder/tests/testdata/command_args_coder.golden @@ -165,6 +165,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/command_coder.golden b/helm/coder/tests/testdata/command_coder.golden index 23fc7b94c5..1335be61c5 100644 --- a/helm/coder/tests/testdata/command_coder.golden +++ b/helm/coder/tests/testdata/command_coder.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/custom_resources.golden b/helm/coder/tests/testdata/custom_resources.golden index 97b5410a8f..b06d97c694 100644 --- a/helm/coder/tests/testdata/custom_resources.golden +++ b/helm/coder/tests/testdata/custom_resources.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/custom_resources_coder.golden b/helm/coder/tests/testdata/custom_resources_coder.golden index eab1973a47..cb7f781d87 100644 --- a/helm/coder/tests/testdata/custom_resources_coder.golden +++ b/helm/coder/tests/testdata/custom_resources_coder.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/default_values.golden b/helm/coder/tests/testdata/default_values.golden index 8c8576c659..6b729d33d6 100644 --- a/helm/coder/tests/testdata/default_values.golden +++ b/helm/coder/tests/testdata/default_values.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/default_values_coder.golden b/helm/coder/tests/testdata/default_values_coder.golden index 130172a653..af57c53ca5 100644 --- a/helm/coder/tests/testdata/default_values_coder.golden +++ b/helm/coder/tests/testdata/default_values_coder.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/env_from.golden b/helm/coder/tests/testdata/env_from.golden index ba03d2ad1a..130153bfdd 100644 --- a/helm/coder/tests/testdata/env_from.golden +++ b/helm/coder/tests/testdata/env_from.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP - name: COOL_ENV valueFrom: configMapKeyRef: diff --git a/helm/coder/tests/testdata/env_from_coder.golden b/helm/coder/tests/testdata/env_from_coder.golden index 43c3c3b41f..b54746b093 100644 --- a/helm/coder/tests/testdata/env_from_coder.golden +++ b/helm/coder/tests/testdata/env_from_coder.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP - name: COOL_ENV valueFrom: configMapKeyRef: diff --git a/helm/coder/tests/testdata/extra_templates.golden b/helm/coder/tests/testdata/extra_templates.golden index 35ede023c6..b95e7f476f 100644 --- a/helm/coder/tests/testdata/extra_templates.golden +++ b/helm/coder/tests/testdata/extra_templates.golden @@ -173,6 +173,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/extra_templates_coder.golden b/helm/coder/tests/testdata/extra_templates_coder.golden index 38eddb2aa2..89ac8b5a65 100644 --- a/helm/coder/tests/testdata/extra_templates_coder.golden +++ b/helm/coder/tests/testdata/extra_templates_coder.golden @@ -173,6 +173,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/host_aliases.golden b/helm/coder/tests/testdata/host_aliases.golden index 5aba404cd9..77bd4d024c 100644 --- a/helm/coder/tests/testdata/host_aliases.golden +++ b/helm/coder/tests/testdata/host_aliases.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/host_aliases_coder.golden b/helm/coder/tests/testdata/host_aliases_coder.golden index ebaa8f0fe4..c8b84af20f 100644 --- a/helm/coder/tests/testdata/host_aliases_coder.golden +++ b/helm/coder/tests/testdata/host_aliases_coder.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/labels_annotations.golden b/helm/coder/tests/testdata/labels_annotations.golden index cd601d77e9..988f2c5c44 100644 --- a/helm/coder/tests/testdata/labels_annotations.golden +++ b/helm/coder/tests/testdata/labels_annotations.golden @@ -172,6 +172,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/labels_annotations_coder.golden b/helm/coder/tests/testdata/labels_annotations_coder.golden index 38190f0b30..d6abc7f8f2 100644 --- a/helm/coder/tests/testdata/labels_annotations_coder.golden +++ b/helm/coder/tests/testdata/labels_annotations_coder.golden @@ -172,6 +172,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/namespace_rbac.golden b/helm/coder/tests/testdata/namespace_rbac.golden index 0cbfce4d98..80f4b64f8a 100644 --- a/helm/coder/tests/testdata/namespace_rbac.golden +++ b/helm/coder/tests/testdata/namespace_rbac.golden @@ -354,6 +354,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/namespace_rbac_coder.golden b/helm/coder/tests/testdata/namespace_rbac_coder.golden index 56ce5c9e9d..9bee753a6c 100644 --- a/helm/coder/tests/testdata/namespace_rbac_coder.golden +++ b/helm/coder/tests/testdata/namespace_rbac_coder.golden @@ -354,6 +354,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/partial_resources.golden b/helm/coder/tests/testdata/partial_resources.golden index aa66c2e523..88e38a49a3 100644 --- a/helm/coder/tests/testdata/partial_resources.golden +++ b/helm/coder/tests/testdata/partial_resources.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/partial_resources_coder.golden b/helm/coder/tests/testdata/partial_resources_coder.golden index baae3bd305..92dff99bb9 100644 --- a/helm/coder/tests/testdata/partial_resources_coder.golden +++ b/helm/coder/tests/testdata/partial_resources_coder.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/pod_securitycontext.golden b/helm/coder/tests/testdata/pod_securitycontext.golden index 56660bcb8a..36da47548b 100644 --- a/helm/coder/tests/testdata/pod_securitycontext.golden +++ b/helm/coder/tests/testdata/pod_securitycontext.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/pod_securitycontext_coder.golden b/helm/coder/tests/testdata/pod_securitycontext_coder.golden index 91ab6d32ae..f947e22ca8 100644 --- a/helm/coder/tests/testdata/pod_securitycontext_coder.golden +++ b/helm/coder/tests/testdata/pod_securitycontext_coder.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/pprof_address_override.golden b/helm/coder/tests/testdata/pprof_address_override.golden index 42e9655dce..3d6a3c5938 100644 --- a/helm/coder/tests/testdata/pprof_address_override.golden +++ b/helm/coder/tests/testdata/pprof_address_override.golden @@ -162,6 +162,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP - name: CODER_PPROF_ADDRESS value: 127.0.0.1:6060 - name: CODER_PPROF_ENABLE diff --git a/helm/coder/tests/testdata/pprof_address_override_coder.golden b/helm/coder/tests/testdata/pprof_address_override_coder.golden index c69afab593..d9d475edb9 100644 --- a/helm/coder/tests/testdata/pprof_address_override_coder.golden +++ b/helm/coder/tests/testdata/pprof_address_override_coder.golden @@ -162,6 +162,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP - name: CODER_PPROF_ADDRESS value: 127.0.0.1:6060 - name: CODER_PPROF_ENABLE diff --git a/helm/coder/tests/testdata/priority_class_name.golden b/helm/coder/tests/testdata/priority_class_name.golden index 841cd8afee..c17333ad67 100644 --- a/helm/coder/tests/testdata/priority_class_name.golden +++ b/helm/coder/tests/testdata/priority_class_name.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/priority_class_name_coder.golden b/helm/coder/tests/testdata/priority_class_name_coder.golden index c1bf856d8f..31b3f1ac05 100644 --- a/helm/coder/tests/testdata/priority_class_name_coder.golden +++ b/helm/coder/tests/testdata/priority_class_name_coder.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/probes_custom.golden b/helm/coder/tests/testdata/probes_custom.golden index 559ee18357..0d79e99628 100644 --- a/helm/coder/tests/testdata/probes_custom.golden +++ b/helm/coder/tests/testdata/probes_custom.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/probes_custom_coder.golden b/helm/coder/tests/testdata/probes_custom_coder.golden index 3c60278d8d..1ad922aa7f 100644 --- a/helm/coder/tests/testdata/probes_custom_coder.golden +++ b/helm/coder/tests/testdata/probes_custom_coder.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/probes_disabled.golden b/helm/coder/tests/testdata/probes_disabled.golden index a6cc68568c..6de6dc54ba 100644 --- a/helm/coder/tests/testdata/probes_disabled.golden +++ b/helm/coder/tests/testdata/probes_disabled.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/probes_disabled_coder.golden b/helm/coder/tests/testdata/probes_disabled_coder.golden index 714c166e86..5b917e63f1 100644 --- a/helm/coder/tests/testdata/probes_disabled_coder.golden +++ b/helm/coder/tests/testdata/probes_disabled_coder.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/prometheus.golden b/helm/coder/tests/testdata/prometheus.golden index 1bf94c5a10..74eace57a2 100644 --- a/helm/coder/tests/testdata/prometheus.golden +++ b/helm/coder/tests/testdata/prometheus.golden @@ -163,6 +163,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP - name: CODER_PROMETHEUS_ENABLE value: "true" image: ghcr.io/coder/coder:latest diff --git a/helm/coder/tests/testdata/prometheus_address_override.golden b/helm/coder/tests/testdata/prometheus_address_override.golden index 30d65a6c81..8090fa7cac 100644 --- a/helm/coder/tests/testdata/prometheus_address_override.golden +++ b/helm/coder/tests/testdata/prometheus_address_override.golden @@ -162,6 +162,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP - name: CODER_PROMETHEUS_ADDRESS value: 127.0.0.1:2112 - name: CODER_PROMETHEUS_ENABLE diff --git a/helm/coder/tests/testdata/prometheus_address_override_coder.golden b/helm/coder/tests/testdata/prometheus_address_override_coder.golden index 0c258d0a35..b42631df11 100644 --- a/helm/coder/tests/testdata/prometheus_address_override_coder.golden +++ b/helm/coder/tests/testdata/prometheus_address_override_coder.golden @@ -162,6 +162,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP - name: CODER_PROMETHEUS_ADDRESS value: 127.0.0.1:2112 - name: CODER_PROMETHEUS_ENABLE diff --git a/helm/coder/tests/testdata/prometheus_coder.golden b/helm/coder/tests/testdata/prometheus_coder.golden index 95f132f249..5ed1647842 100644 --- a/helm/coder/tests/testdata/prometheus_coder.golden +++ b/helm/coder/tests/testdata/prometheus_coder.golden @@ -163,6 +163,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP - name: CODER_PROMETHEUS_ENABLE value: "true" image: ghcr.io/coder/coder:latest diff --git a/helm/coder/tests/testdata/provisionerd_psk.golden b/helm/coder/tests/testdata/provisionerd_psk.golden index 27b66ad255..5ab5d8a075 100644 --- a/helm/coder/tests/testdata/provisionerd_psk.golden +++ b/helm/coder/tests/testdata/provisionerd_psk.golden @@ -169,6 +169,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/provisionerd_psk_coder.golden b/helm/coder/tests/testdata/provisionerd_psk_coder.golden index c6e1d4ded3..b6a35af757 100644 --- a/helm/coder/tests/testdata/provisionerd_psk_coder.golden +++ b/helm/coder/tests/testdata/provisionerd_psk_coder.golden @@ -169,6 +169,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/sa.golden b/helm/coder/tests/testdata/sa.golden index f81b0cc59a..9f0032dd7b 100644 --- a/helm/coder/tests/testdata/sa.golden +++ b/helm/coder/tests/testdata/sa.golden @@ -166,6 +166,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/sa_coder.golden b/helm/coder/tests/testdata/sa_coder.golden index 5cc6d2bf3f..a7922b0c7f 100644 --- a/helm/coder/tests/testdata/sa_coder.golden +++ b/helm/coder/tests/testdata/sa_coder.golden @@ -166,6 +166,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/sa_disabled.golden b/helm/coder/tests/testdata/sa_disabled.golden index 74a805f277..aacf2ea394 100644 --- a/helm/coder/tests/testdata/sa_disabled.golden +++ b/helm/coder/tests/testdata/sa_disabled.golden @@ -150,6 +150,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/sa_disabled_coder.golden b/helm/coder/tests/testdata/sa_disabled_coder.golden index 3c346af36a..6f84eac797 100644 --- a/helm/coder/tests/testdata/sa_disabled_coder.golden +++ b/helm/coder/tests/testdata/sa_disabled_coder.golden @@ -150,6 +150,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/sa_extra_rules.golden b/helm/coder/tests/testdata/sa_extra_rules.golden index f6fbfe8052..339c2d5170 100644 --- a/helm/coder/tests/testdata/sa_extra_rules.golden +++ b/helm/coder/tests/testdata/sa_extra_rules.golden @@ -177,6 +177,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/sa_extra_rules_coder.golden b/helm/coder/tests/testdata/sa_extra_rules_coder.golden index 559eabdfa9..8ccd61f997 100644 --- a/helm/coder/tests/testdata/sa_extra_rules_coder.golden +++ b/helm/coder/tests/testdata/sa_extra_rules_coder.golden @@ -177,6 +177,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/securitycontext.golden b/helm/coder/tests/testdata/securitycontext.golden index 7c2025da97..28426d277b 100644 --- a/helm/coder/tests/testdata/securitycontext.golden +++ b/helm/coder/tests/testdata/securitycontext.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/securitycontext_coder.golden b/helm/coder/tests/testdata/securitycontext_coder.golden index e204e30d74..366fcccbd1 100644 --- a/helm/coder/tests/testdata/securitycontext_coder.golden +++ b/helm/coder/tests/testdata/securitycontext_coder.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/svc_loadbalancer.golden b/helm/coder/tests/testdata/svc_loadbalancer.golden index fb786e4e15..c4bc6d000d 100644 --- a/helm/coder/tests/testdata/svc_loadbalancer.golden +++ b/helm/coder/tests/testdata/svc_loadbalancer.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/svc_loadbalancer_class.golden b/helm/coder/tests/testdata/svc_loadbalancer_class.golden index bf2080defe..13daff1635 100644 --- a/helm/coder/tests/testdata/svc_loadbalancer_class.golden +++ b/helm/coder/tests/testdata/svc_loadbalancer_class.golden @@ -165,6 +165,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/svc_loadbalancer_class_coder.golden b/helm/coder/tests/testdata/svc_loadbalancer_class_coder.golden index eb20497c8b..380f119969 100644 --- a/helm/coder/tests/testdata/svc_loadbalancer_class_coder.golden +++ b/helm/coder/tests/testdata/svc_loadbalancer_class_coder.golden @@ -165,6 +165,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/svc_loadbalancer_coder.golden b/helm/coder/tests/testdata/svc_loadbalancer_coder.golden index 625f64e6ab..17e419b6c7 100644 --- a/helm/coder/tests/testdata/svc_loadbalancer_coder.golden +++ b/helm/coder/tests/testdata/svc_loadbalancer_coder.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/svc_nodeport.golden b/helm/coder/tests/testdata/svc_nodeport.golden index 4fd5a6440c..e51b1d5d53 100644 --- a/helm/coder/tests/testdata/svc_nodeport.golden +++ b/helm/coder/tests/testdata/svc_nodeport.golden @@ -163,6 +163,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/svc_nodeport_coder.golden b/helm/coder/tests/testdata/svc_nodeport_coder.golden index 4b12a2f135..0c1738ccf2 100644 --- a/helm/coder/tests/testdata/svc_nodeport_coder.golden +++ b/helm/coder/tests/testdata/svc_nodeport_coder.golden @@ -163,6 +163,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/tls.golden b/helm/coder/tests/testdata/tls.golden index 68e9ee3be6..30d1b05d24 100644 --- a/helm/coder/tests/testdata/tls.golden +++ b/helm/coder/tests/testdata/tls.golden @@ -169,6 +169,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP - name: CODER_TLS_ENABLE value: "true" - name: CODER_TLS_ADDRESS diff --git a/helm/coder/tests/testdata/tls_coder.golden b/helm/coder/tests/testdata/tls_coder.golden index 3363f80695..f50ad616a0 100644 --- a/helm/coder/tests/testdata/tls_coder.golden +++ b/helm/coder/tests/testdata/tls_coder.golden @@ -169,6 +169,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP - name: CODER_TLS_ENABLE value: "true" - name: CODER_TLS_ADDRESS diff --git a/helm/coder/tests/testdata/topology.golden b/helm/coder/tests/testdata/topology.golden index 45f21d3828..803a11ed48 100644 --- a/helm/coder/tests/testdata/topology.golden +++ b/helm/coder/tests/testdata/topology.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/topology_coder.golden b/helm/coder/tests/testdata/topology_coder.golden index 4446d2b084..611d7ef904 100644 --- a/helm/coder/tests/testdata/topology_coder.golden +++ b/helm/coder/tests/testdata/topology_coder.golden @@ -164,6 +164,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} diff --git a/helm/coder/tests/testdata/workspace_proxy.golden b/helm/coder/tests/testdata/workspace_proxy.golden index 2b5de38f75..103d1cd720 100644 --- a/helm/coder/tests/testdata/workspace_proxy.golden +++ b/helm/coder/tests/testdata/workspace_proxy.golden @@ -165,6 +165,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP - name: CODER_PRIMARY_ACCESS_URL value: https://dev.coder.com - name: CODER_PROXY_SESSION_TOKEN diff --git a/helm/coder/tests/testdata/workspace_proxy_coder.golden b/helm/coder/tests/testdata/workspace_proxy_coder.golden index ba1a5ea0fe..fc4d6c6ec1 100644 --- a/helm/coder/tests/testdata/workspace_proxy_coder.golden +++ b/helm/coder/tests/testdata/workspace_proxy_coder.golden @@ -165,6 +165,10 @@ spec: fieldPath: status.podIP - name: CODER_DERP_SERVER_RELAY_URL value: http://$(KUBE_POD_IP):8080 + - name: CODER_CLUSTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP - name: CODER_PRIMARY_ACCESS_URL value: https://dev.coder.com - name: CODER_PROXY_SESSION_TOKEN diff --git a/helm/coder/values.yaml b/helm/coder/values.yaml index 10f5fb583f..366ec5dd38 100644 --- a/helm/coder/values.yaml +++ b/helm/coder/values.yaml @@ -12,6 +12,7 @@ coder: # - CODER_TLS_KEY_FILE: set if tls.secretName is not empty. # - KUBE_POD_IP # - CODER_DERP_SERVER_RELAY_URL + # - CODER_CLUSTER_HOST: set to the pod IP # # The following environment variables have defaults but CAN be overridden: # - CODER_PROMETHEUS_ADDRESS: defaults to 0.0.0.0:2112. Override to restrict