diff --git a/docs/install/kubernetes.md b/docs/install/kubernetes.md index a7144f3599..6c8fd253df 100644 --- a/docs/install/kubernetes.md +++ b/docs/install/kubernetes.md @@ -258,15 +258,6 @@ reference, and not all security requirements may apply to your business. - Both the control plane and workspaces set resource request/limits by default. -7. **All Kubernetes objects must define liveness and readiness probes** - - - Control plane - The control plane Deployment has liveness and readiness - probes - [configured by default here](https://github.com/coder/coder/blob/f57ce97b5aadd825ddb9a9a129bb823a3725252b/helm/coder/templates/_coder.tpl#L98-L107). - - Workspaces - the Kubernetes Deployment template does not configure - liveness/readiness probes for the workspace, but this can be added to the - Terraform template, and is supported. - ## Load balancing considerations ### AWS diff --git a/helm/coder/templates/_coder.tpl b/helm/coder/templates/_coder.tpl index 5de2ffbda2..b1f9605ece 100644 --- a/helm/coder/templates/_coder.tpl +++ b/helm/coder/templates/_coder.tpl @@ -108,16 +108,44 @@ ports: {{- end }} {{- end }} {{- end }} +{{- if .Values.coder.readinessProbe.enabled }} readinessProbe: httpGet: path: /healthz port: "http" scheme: "HTTP" initialDelaySeconds: {{ .Values.coder.readinessProbe.initialDelaySeconds }} + {{- if hasKey .Values.coder.readinessProbe "periodSeconds" }} + periodSeconds: {{ .Values.coder.readinessProbe.periodSeconds }} + {{- end }} + {{- if hasKey .Values.coder.readinessProbe "timeoutSeconds" }} + timeoutSeconds: {{ .Values.coder.readinessProbe.timeoutSeconds }} + {{- end }} + {{- if hasKey .Values.coder.readinessProbe "successThreshold" }} + successThreshold: {{ .Values.coder.readinessProbe.successThreshold }} + {{- end }} + {{- if hasKey .Values.coder.readinessProbe "failureThreshold" }} + failureThreshold: {{ .Values.coder.readinessProbe.failureThreshold }} + {{- end }} +{{- end }} +{{- if .Values.coder.livenessProbe.enabled }} livenessProbe: httpGet: path: /healthz port: "http" scheme: "HTTP" initialDelaySeconds: {{ .Values.coder.livenessProbe.initialDelaySeconds }} + {{- if hasKey .Values.coder.livenessProbe "periodSeconds" }} + periodSeconds: {{ .Values.coder.livenessProbe.periodSeconds }} + {{- end }} + {{- if hasKey .Values.coder.livenessProbe "timeoutSeconds" }} + timeoutSeconds: {{ .Values.coder.livenessProbe.timeoutSeconds }} + {{- end }} + {{- if hasKey .Values.coder.livenessProbe "successThreshold" }} + successThreshold: {{ .Values.coder.livenessProbe.successThreshold }} + {{- end }} + {{- if hasKey .Values.coder.livenessProbe "failureThreshold" }} + failureThreshold: {{ .Values.coder.livenessProbe.failureThreshold }} + {{- end }} +{{- end }} {{- end }} diff --git a/helm/coder/tests/chart_test.go b/helm/coder/tests/chart_test.go index d175bab802..ea1b91ff98 100644 --- a/helm/coder/tests/chart_test.go +++ b/helm/coder/tests/chart_test.go @@ -137,6 +137,14 @@ var testCases = []testCase{ name: "priority_class_name", expectedError: "", }, + { + name: "probes_custom", + expectedError: "", + }, + { + name: "probes_disabled", + expectedError: "", + }, } type testCase struct { diff --git a/helm/coder/tests/testdata/auto_access_url_1.golden b/helm/coder/tests/testdata/auto_access_url_1.golden index fd7f9035ef..a6a064e535 100644 --- a/helm/coder/tests/testdata/auto_access_url_1.golden +++ b/helm/coder/tests/testdata/auto_access_url_1.golden @@ -169,12 +169,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 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 7ba2721e88..be09066fb1 100644 --- a/helm/coder/tests/testdata/auto_access_url_1_coder.golden +++ b/helm/coder/tests/testdata/auto_access_url_1_coder.golden @@ -169,12 +169,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/auto_access_url_2.golden b/helm/coder/tests/testdata/auto_access_url_2.golden index be28d0059d..ae96db6fce 100644 --- a/helm/coder/tests/testdata/auto_access_url_2.golden +++ b/helm/coder/tests/testdata/auto_access_url_2.golden @@ -169,12 +169,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 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 65c28104d8..c9da24feeb 100644 --- a/helm/coder/tests/testdata/auto_access_url_2_coder.golden +++ b/helm/coder/tests/testdata/auto_access_url_2_coder.golden @@ -169,12 +169,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/auto_access_url_3.golden b/helm/coder/tests/testdata/auto_access_url_3.golden index 1dbe499421..a0fc740b18 100644 --- a/helm/coder/tests/testdata/auto_access_url_3.golden +++ b/helm/coder/tests/testdata/auto_access_url_3.golden @@ -167,12 +167,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 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 37fe357684..00f8bb0029 100644 --- a/helm/coder/tests/testdata/auto_access_url_3_coder.golden +++ b/helm/coder/tests/testdata/auto_access_url_3_coder.golden @@ -167,12 +167,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/command.golden b/helm/coder/tests/testdata/command.golden index a812cea6f4..f6e9eb63c8 100644 --- a/helm/coder/tests/testdata/command.golden +++ b/helm/coder/tests/testdata/command.golden @@ -167,12 +167,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/command_args.golden b/helm/coder/tests/testdata/command_args.golden index b6666a1c98..e42faf81b1 100644 --- a/helm/coder/tests/testdata/command_args.golden +++ b/helm/coder/tests/testdata/command_args.golden @@ -168,12 +168,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/command_args_coder.golden b/helm/coder/tests/testdata/command_args_coder.golden index 60d8fc08a5..e1763bad38 100644 --- a/helm/coder/tests/testdata/command_args_coder.golden +++ b/helm/coder/tests/testdata/command_args_coder.golden @@ -168,12 +168,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/command_coder.golden b/helm/coder/tests/testdata/command_coder.golden index c0c5cd5794..23fc7b94c5 100644 --- a/helm/coder/tests/testdata/command_coder.golden +++ b/helm/coder/tests/testdata/command_coder.golden @@ -167,12 +167,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/custom_resources.golden b/helm/coder/tests/testdata/custom_resources.golden index bbb145ddc6..97b5410a8f 100644 --- a/helm/coder/tests/testdata/custom_resources.golden +++ b/helm/coder/tests/testdata/custom_resources.golden @@ -167,12 +167,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/custom_resources_coder.golden b/helm/coder/tests/testdata/custom_resources_coder.golden index d575968f5f..eab1973a47 100644 --- a/helm/coder/tests/testdata/custom_resources_coder.golden +++ b/helm/coder/tests/testdata/custom_resources_coder.golden @@ -167,12 +167,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/default_values.golden b/helm/coder/tests/testdata/default_values.golden index 31229eab9c..8c8576c659 100644 --- a/helm/coder/tests/testdata/default_values.golden +++ b/helm/coder/tests/testdata/default_values.golden @@ -167,12 +167,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/default_values_coder.golden b/helm/coder/tests/testdata/default_values_coder.golden index 862726d3cd..130172a653 100644 --- a/helm/coder/tests/testdata/default_values_coder.golden +++ b/helm/coder/tests/testdata/default_values_coder.golden @@ -167,12 +167,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/env_from.golden b/helm/coder/tests/testdata/env_from.golden index f5ef33ce58..ba03d2ad1a 100644 --- a/helm/coder/tests/testdata/env_from.golden +++ b/helm/coder/tests/testdata/env_from.golden @@ -179,12 +179,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/env_from_coder.golden b/helm/coder/tests/testdata/env_from_coder.golden index 0f1a093743..43c3c3b41f 100644 --- a/helm/coder/tests/testdata/env_from_coder.golden +++ b/helm/coder/tests/testdata/env_from_coder.golden @@ -179,12 +179,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/extra_templates.golden b/helm/coder/tests/testdata/extra_templates.golden index b2580ca010..35ede023c6 100644 --- a/helm/coder/tests/testdata/extra_templates.golden +++ b/helm/coder/tests/testdata/extra_templates.golden @@ -176,12 +176,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/extra_templates_coder.golden b/helm/coder/tests/testdata/extra_templates_coder.golden index 621aceb88e..38eddb2aa2 100644 --- a/helm/coder/tests/testdata/extra_templates_coder.golden +++ b/helm/coder/tests/testdata/extra_templates_coder.golden @@ -176,12 +176,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/labels_annotations.golden b/helm/coder/tests/testdata/labels_annotations.golden index 415f139bf3..cd601d77e9 100644 --- a/helm/coder/tests/testdata/labels_annotations.golden +++ b/helm/coder/tests/testdata/labels_annotations.golden @@ -175,12 +175,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/labels_annotations_coder.golden b/helm/coder/tests/testdata/labels_annotations_coder.golden index 9c2d6bc3c8..38190f0b30 100644 --- a/helm/coder/tests/testdata/labels_annotations_coder.golden +++ b/helm/coder/tests/testdata/labels_annotations_coder.golden @@ -175,12 +175,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/namespace_rbac.golden b/helm/coder/tests/testdata/namespace_rbac.golden index eaaa95dfe6..0cbfce4d98 100644 --- a/helm/coder/tests/testdata/namespace_rbac.golden +++ b/helm/coder/tests/testdata/namespace_rbac.golden @@ -357,12 +357,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/namespace_rbac_coder.golden b/helm/coder/tests/testdata/namespace_rbac_coder.golden index b1f0d3d529..56ce5c9e9d 100644 --- a/helm/coder/tests/testdata/namespace_rbac_coder.golden +++ b/helm/coder/tests/testdata/namespace_rbac_coder.golden @@ -357,12 +357,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/partial_resources.golden b/helm/coder/tests/testdata/partial_resources.golden index 31d3dd194b..aa66c2e523 100644 --- a/helm/coder/tests/testdata/partial_resources.golden +++ b/helm/coder/tests/testdata/partial_resources.golden @@ -167,12 +167,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/partial_resources_coder.golden b/helm/coder/tests/testdata/partial_resources_coder.golden index 756524c940..baae3bd305 100644 --- a/helm/coder/tests/testdata/partial_resources_coder.golden +++ b/helm/coder/tests/testdata/partial_resources_coder.golden @@ -167,12 +167,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/pod_securitycontext.golden b/helm/coder/tests/testdata/pod_securitycontext.golden index 7f14b9c284..56660bcb8a 100644 --- a/helm/coder/tests/testdata/pod_securitycontext.golden +++ b/helm/coder/tests/testdata/pod_securitycontext.golden @@ -167,12 +167,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/pod_securitycontext_coder.golden b/helm/coder/tests/testdata/pod_securitycontext_coder.golden index 95734e9411..91ab6d32ae 100644 --- a/helm/coder/tests/testdata/pod_securitycontext_coder.golden +++ b/helm/coder/tests/testdata/pod_securitycontext_coder.golden @@ -167,12 +167,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/priority_class_name.golden b/helm/coder/tests/testdata/priority_class_name.golden index d90cead54a..841cd8afee 100644 --- a/helm/coder/tests/testdata/priority_class_name.golden +++ b/helm/coder/tests/testdata/priority_class_name.golden @@ -167,12 +167,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/priority_class_name_coder.golden b/helm/coder/tests/testdata/priority_class_name_coder.golden index 7292006aa6..c1bf856d8f 100644 --- a/helm/coder/tests/testdata/priority_class_name_coder.golden +++ b/helm/coder/tests/testdata/priority_class_name_coder.golden @@ -167,12 +167,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/probes_custom.golden b/helm/coder/tests/testdata/probes_custom.golden new file mode 100644 index 0000000000..559ee18357 --- /dev/null +++ b/helm/coder/tests/testdata/probes_custom.golden @@ -0,0 +1,214 @@ +--- +# Source: coder/templates/coder.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + annotations: {} + labels: + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: coder + app.kubernetes.io/part-of: coder + app.kubernetes.io/version: 0.1.0 + helm.sh/chart: coder-0.1.0 + name: coder + namespace: default +--- +# Source: coder/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: coder-workspace-perms + namespace: default +rules: + - apiGroups: [""] + resources: ["pods"] + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch + - apiGroups: + - apps + resources: + - deployments + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch +--- +# Source: coder/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: "coder" + namespace: default +subjects: + - kind: ServiceAccount + name: "coder" +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: coder-workspace-perms +--- +# Source: coder/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: coder + namespace: default + labels: + helm.sh/chart: coder-0.1.0 + app.kubernetes.io/name: coder + app.kubernetes.io/instance: release-name + app.kubernetes.io/part-of: coder + app.kubernetes.io/version: "0.1.0" + app.kubernetes.io/managed-by: Helm + annotations: + {} +spec: + type: LoadBalancer + sessionAffinity: None + ports: + - name: "http" + port: 80 + targetPort: "http" + protocol: TCP + nodePort: + externalTrafficPolicy: "Cluster" + selector: + app.kubernetes.io/name: coder + app.kubernetes.io/instance: release-name +--- +# Source: coder/templates/coder.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: {} + labels: + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: coder + app.kubernetes.io/part-of: coder + app.kubernetes.io/version: 0.1.0 + helm.sh/chart: coder-0.1.0 + name: coder + namespace: default +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/instance: release-name + app.kubernetes.io/name: coder + template: + metadata: + annotations: + app.kubernetes.io/component: coderd + labels: + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: coder + app.kubernetes.io/part-of: coder + app.kubernetes.io/version: 0.1.0 + helm.sh/chart: coder-0.1.0 + spec: + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchExpressions: + - key: app.kubernetes.io/instance + operator: In + values: + - coder + topologyKey: kubernetes.io/hostname + weight: 1 + containers: + - args: + - server + command: + - /opt/coder + env: + - name: CODER_HTTP_ADDRESS + value: 0.0.0.0:8080 + - name: CODER_PROMETHEUS_ADDRESS + value: 0.0.0.0:2112 + - name: CODER_PPROF_ADDRESS + value: 0.0.0.0:6060 + - name: CODER_ACCESS_URL + value: http://coder.default.svc.cluster.local + - name: KUBE_POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: CODER_DERP_SERVER_RELAY_URL + value: http://$(KUBE_POD_IP):8080 + image: ghcr.io/coder/coder:latest + imagePullPolicy: IfNotPresent + lifecycle: {} + livenessProbe: + failureThreshold: 3 + httpGet: + path: /healthz + port: http + scheme: HTTP + initialDelaySeconds: 30 + periodSeconds: 20 + successThreshold: 1 + timeoutSeconds: 10 + name: coder + ports: + - containerPort: 8080 + name: http + protocol: TCP + readinessProbe: + failureThreshold: 6 + httpGet: + path: /healthz + port: http + scheme: HTTP + initialDelaySeconds: 10 + periodSeconds: 15 + successThreshold: 2 + timeoutSeconds: 5 + resources: + limits: + cpu: 2000m + memory: 4096Mi + requests: + cpu: 2000m + memory: 4096Mi + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: null + runAsGroup: 1000 + runAsNonRoot: true + runAsUser: 1000 + seccompProfile: + type: RuntimeDefault + volumeMounts: [] + restartPolicy: Always + serviceAccountName: coder + terminationGracePeriodSeconds: 60 + volumes: [] diff --git a/helm/coder/tests/testdata/probes_custom.yaml b/helm/coder/tests/testdata/probes_custom.yaml new file mode 100644 index 0000000000..32cfb8be62 --- /dev/null +++ b/helm/coder/tests/testdata/probes_custom.yaml @@ -0,0 +1,17 @@ +coder: + image: + tag: latest + readinessProbe: + enabled: true + initialDelaySeconds: 10 + periodSeconds: 15 + timeoutSeconds: 5 + successThreshold: 2 + failureThreshold: 6 + livenessProbe: + enabled: true + initialDelaySeconds: 30 + periodSeconds: 20 + timeoutSeconds: 10 + successThreshold: 1 + failureThreshold: 3 diff --git a/helm/coder/tests/testdata/probes_custom_coder.golden b/helm/coder/tests/testdata/probes_custom_coder.golden new file mode 100644 index 0000000000..3c60278d8d --- /dev/null +++ b/helm/coder/tests/testdata/probes_custom_coder.golden @@ -0,0 +1,214 @@ +--- +# Source: coder/templates/coder.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + annotations: {} + labels: + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: coder + app.kubernetes.io/part-of: coder + app.kubernetes.io/version: 0.1.0 + helm.sh/chart: coder-0.1.0 + name: coder + namespace: coder +--- +# Source: coder/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: coder-workspace-perms + namespace: coder +rules: + - apiGroups: [""] + resources: ["pods"] + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch + - apiGroups: + - apps + resources: + - deployments + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch +--- +# Source: coder/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: "coder" + namespace: coder +subjects: + - kind: ServiceAccount + name: "coder" +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: coder-workspace-perms +--- +# Source: coder/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: coder + namespace: coder + labels: + helm.sh/chart: coder-0.1.0 + app.kubernetes.io/name: coder + app.kubernetes.io/instance: release-name + app.kubernetes.io/part-of: coder + app.kubernetes.io/version: "0.1.0" + app.kubernetes.io/managed-by: Helm + annotations: + {} +spec: + type: LoadBalancer + sessionAffinity: None + ports: + - name: "http" + port: 80 + targetPort: "http" + protocol: TCP + nodePort: + externalTrafficPolicy: "Cluster" + selector: + app.kubernetes.io/name: coder + app.kubernetes.io/instance: release-name +--- +# Source: coder/templates/coder.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: {} + labels: + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: coder + app.kubernetes.io/part-of: coder + app.kubernetes.io/version: 0.1.0 + helm.sh/chart: coder-0.1.0 + name: coder + namespace: coder +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/instance: release-name + app.kubernetes.io/name: coder + template: + metadata: + annotations: + app.kubernetes.io/component: coderd + labels: + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: coder + app.kubernetes.io/part-of: coder + app.kubernetes.io/version: 0.1.0 + helm.sh/chart: coder-0.1.0 + spec: + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchExpressions: + - key: app.kubernetes.io/instance + operator: In + values: + - coder + topologyKey: kubernetes.io/hostname + weight: 1 + containers: + - args: + - server + command: + - /opt/coder + env: + - name: CODER_HTTP_ADDRESS + value: 0.0.0.0:8080 + - name: CODER_PROMETHEUS_ADDRESS + value: 0.0.0.0:2112 + - name: CODER_PPROF_ADDRESS + value: 0.0.0.0:6060 + - name: CODER_ACCESS_URL + value: http://coder.coder.svc.cluster.local + - name: KUBE_POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: CODER_DERP_SERVER_RELAY_URL + value: http://$(KUBE_POD_IP):8080 + image: ghcr.io/coder/coder:latest + imagePullPolicy: IfNotPresent + lifecycle: {} + livenessProbe: + failureThreshold: 3 + httpGet: + path: /healthz + port: http + scheme: HTTP + initialDelaySeconds: 30 + periodSeconds: 20 + successThreshold: 1 + timeoutSeconds: 10 + name: coder + ports: + - containerPort: 8080 + name: http + protocol: TCP + readinessProbe: + failureThreshold: 6 + httpGet: + path: /healthz + port: http + scheme: HTTP + initialDelaySeconds: 10 + periodSeconds: 15 + successThreshold: 2 + timeoutSeconds: 5 + resources: + limits: + cpu: 2000m + memory: 4096Mi + requests: + cpu: 2000m + memory: 4096Mi + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: null + runAsGroup: 1000 + runAsNonRoot: true + runAsUser: 1000 + seccompProfile: + type: RuntimeDefault + volumeMounts: [] + restartPolicy: Always + serviceAccountName: coder + terminationGracePeriodSeconds: 60 + volumes: [] diff --git a/helm/coder/tests/testdata/probes_disabled.golden b/helm/coder/tests/testdata/probes_disabled.golden new file mode 100644 index 0000000000..a6cc68568c --- /dev/null +++ b/helm/coder/tests/testdata/probes_disabled.golden @@ -0,0 +1,194 @@ +--- +# Source: coder/templates/coder.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + annotations: {} + labels: + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: coder + app.kubernetes.io/part-of: coder + app.kubernetes.io/version: 0.1.0 + helm.sh/chart: coder-0.1.0 + name: coder + namespace: default +--- +# Source: coder/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: coder-workspace-perms + namespace: default +rules: + - apiGroups: [""] + resources: ["pods"] + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch + - apiGroups: + - apps + resources: + - deployments + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch +--- +# Source: coder/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: "coder" + namespace: default +subjects: + - kind: ServiceAccount + name: "coder" +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: coder-workspace-perms +--- +# Source: coder/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: coder + namespace: default + labels: + helm.sh/chart: coder-0.1.0 + app.kubernetes.io/name: coder + app.kubernetes.io/instance: release-name + app.kubernetes.io/part-of: coder + app.kubernetes.io/version: "0.1.0" + app.kubernetes.io/managed-by: Helm + annotations: + {} +spec: + type: LoadBalancer + sessionAffinity: None + ports: + - name: "http" + port: 80 + targetPort: "http" + protocol: TCP + nodePort: + externalTrafficPolicy: "Cluster" + selector: + app.kubernetes.io/name: coder + app.kubernetes.io/instance: release-name +--- +# Source: coder/templates/coder.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: {} + labels: + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: coder + app.kubernetes.io/part-of: coder + app.kubernetes.io/version: 0.1.0 + helm.sh/chart: coder-0.1.0 + name: coder + namespace: default +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/instance: release-name + app.kubernetes.io/name: coder + template: + metadata: + annotations: + app.kubernetes.io/component: coderd + labels: + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: coder + app.kubernetes.io/part-of: coder + app.kubernetes.io/version: 0.1.0 + helm.sh/chart: coder-0.1.0 + spec: + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchExpressions: + - key: app.kubernetes.io/instance + operator: In + values: + - coder + topologyKey: kubernetes.io/hostname + weight: 1 + containers: + - args: + - server + command: + - /opt/coder + env: + - name: CODER_HTTP_ADDRESS + value: 0.0.0.0:8080 + - name: CODER_PROMETHEUS_ADDRESS + value: 0.0.0.0:2112 + - name: CODER_PPROF_ADDRESS + value: 0.0.0.0:6060 + - name: CODER_ACCESS_URL + value: http://coder.default.svc.cluster.local + - name: KUBE_POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: CODER_DERP_SERVER_RELAY_URL + value: http://$(KUBE_POD_IP):8080 + image: ghcr.io/coder/coder:latest + imagePullPolicy: IfNotPresent + lifecycle: {} + name: coder + ports: + - containerPort: 8080 + name: http + protocol: TCP + resources: + limits: + cpu: 2000m + memory: 4096Mi + requests: + cpu: 2000m + memory: 4096Mi + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: null + runAsGroup: 1000 + runAsNonRoot: true + runAsUser: 1000 + seccompProfile: + type: RuntimeDefault + volumeMounts: [] + restartPolicy: Always + serviceAccountName: coder + terminationGracePeriodSeconds: 60 + volumes: [] diff --git a/helm/coder/tests/testdata/probes_disabled.yaml b/helm/coder/tests/testdata/probes_disabled.yaml new file mode 100644 index 0000000000..86b30b4978 --- /dev/null +++ b/helm/coder/tests/testdata/probes_disabled.yaml @@ -0,0 +1,7 @@ +coder: + image: + tag: latest + readinessProbe: + enabled: false + livenessProbe: + enabled: false diff --git a/helm/coder/tests/testdata/probes_disabled_coder.golden b/helm/coder/tests/testdata/probes_disabled_coder.golden new file mode 100644 index 0000000000..714c166e86 --- /dev/null +++ b/helm/coder/tests/testdata/probes_disabled_coder.golden @@ -0,0 +1,194 @@ +--- +# Source: coder/templates/coder.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + annotations: {} + labels: + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: coder + app.kubernetes.io/part-of: coder + app.kubernetes.io/version: 0.1.0 + helm.sh/chart: coder-0.1.0 + name: coder + namespace: coder +--- +# Source: coder/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: coder-workspace-perms + namespace: coder +rules: + - apiGroups: [""] + resources: ["pods"] + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch + - apiGroups: + - apps + resources: + - deployments + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch +--- +# Source: coder/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: "coder" + namespace: coder +subjects: + - kind: ServiceAccount + name: "coder" +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: coder-workspace-perms +--- +# Source: coder/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: coder + namespace: coder + labels: + helm.sh/chart: coder-0.1.0 + app.kubernetes.io/name: coder + app.kubernetes.io/instance: release-name + app.kubernetes.io/part-of: coder + app.kubernetes.io/version: "0.1.0" + app.kubernetes.io/managed-by: Helm + annotations: + {} +spec: + type: LoadBalancer + sessionAffinity: None + ports: + - name: "http" + port: 80 + targetPort: "http" + protocol: TCP + nodePort: + externalTrafficPolicy: "Cluster" + selector: + app.kubernetes.io/name: coder + app.kubernetes.io/instance: release-name +--- +# Source: coder/templates/coder.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: {} + labels: + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: coder + app.kubernetes.io/part-of: coder + app.kubernetes.io/version: 0.1.0 + helm.sh/chart: coder-0.1.0 + name: coder + namespace: coder +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/instance: release-name + app.kubernetes.io/name: coder + template: + metadata: + annotations: + app.kubernetes.io/component: coderd + labels: + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: coder + app.kubernetes.io/part-of: coder + app.kubernetes.io/version: 0.1.0 + helm.sh/chart: coder-0.1.0 + spec: + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchExpressions: + - key: app.kubernetes.io/instance + operator: In + values: + - coder + topologyKey: kubernetes.io/hostname + weight: 1 + containers: + - args: + - server + command: + - /opt/coder + env: + - name: CODER_HTTP_ADDRESS + value: 0.0.0.0:8080 + - name: CODER_PROMETHEUS_ADDRESS + value: 0.0.0.0:2112 + - name: CODER_PPROF_ADDRESS + value: 0.0.0.0:6060 + - name: CODER_ACCESS_URL + value: http://coder.coder.svc.cluster.local + - name: KUBE_POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: CODER_DERP_SERVER_RELAY_URL + value: http://$(KUBE_POD_IP):8080 + image: ghcr.io/coder/coder:latest + imagePullPolicy: IfNotPresent + lifecycle: {} + name: coder + ports: + - containerPort: 8080 + name: http + protocol: TCP + resources: + limits: + cpu: 2000m + memory: 4096Mi + requests: + cpu: 2000m + memory: 4096Mi + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: null + runAsGroup: 1000 + runAsNonRoot: true + runAsUser: 1000 + seccompProfile: + type: RuntimeDefault + volumeMounts: [] + restartPolicy: Always + serviceAccountName: coder + terminationGracePeriodSeconds: 60 + volumes: [] diff --git a/helm/coder/tests/testdata/prometheus.golden b/helm/coder/tests/testdata/prometheus.golden index 67fb063d7a..1bf94c5a10 100644 --- a/helm/coder/tests/testdata/prometheus.golden +++ b/helm/coder/tests/testdata/prometheus.golden @@ -168,12 +168,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/prometheus_coder.golden b/helm/coder/tests/testdata/prometheus_coder.golden index 6b4f0766fa..95f132f249 100644 --- a/helm/coder/tests/testdata/prometheus_coder.golden +++ b/helm/coder/tests/testdata/prometheus_coder.golden @@ -168,12 +168,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/provisionerd_psk.golden b/helm/coder/tests/testdata/provisionerd_psk.golden index 0878d98028..27b66ad255 100644 --- a/helm/coder/tests/testdata/provisionerd_psk.golden +++ b/helm/coder/tests/testdata/provisionerd_psk.golden @@ -172,12 +172,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/provisionerd_psk_coder.golden b/helm/coder/tests/testdata/provisionerd_psk_coder.golden index a014b8278e..c6e1d4ded3 100644 --- a/helm/coder/tests/testdata/provisionerd_psk_coder.golden +++ b/helm/coder/tests/testdata/provisionerd_psk_coder.golden @@ -172,12 +172,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/sa.golden b/helm/coder/tests/testdata/sa.golden index 436575f1a9..f81b0cc59a 100644 --- a/helm/coder/tests/testdata/sa.golden +++ b/helm/coder/tests/testdata/sa.golden @@ -169,12 +169,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/sa_coder.golden b/helm/coder/tests/testdata/sa_coder.golden index 574e3c61b0..5cc6d2bf3f 100644 --- a/helm/coder/tests/testdata/sa_coder.golden +++ b/helm/coder/tests/testdata/sa_coder.golden @@ -169,12 +169,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/sa_disabled.golden b/helm/coder/tests/testdata/sa_disabled.golden index d1b964e48a..74a805f277 100644 --- a/helm/coder/tests/testdata/sa_disabled.golden +++ b/helm/coder/tests/testdata/sa_disabled.golden @@ -153,12 +153,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/sa_disabled_coder.golden b/helm/coder/tests/testdata/sa_disabled_coder.golden index 47c164a24f..3c346af36a 100644 --- a/helm/coder/tests/testdata/sa_disabled_coder.golden +++ b/helm/coder/tests/testdata/sa_disabled_coder.golden @@ -153,12 +153,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/sa_extra_rules.golden b/helm/coder/tests/testdata/sa_extra_rules.golden index 877487915a..f6fbfe8052 100644 --- a/helm/coder/tests/testdata/sa_extra_rules.golden +++ b/helm/coder/tests/testdata/sa_extra_rules.golden @@ -180,12 +180,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/sa_extra_rules_coder.golden b/helm/coder/tests/testdata/sa_extra_rules_coder.golden index 13a9bbf94e..559eabdfa9 100644 --- a/helm/coder/tests/testdata/sa_extra_rules_coder.golden +++ b/helm/coder/tests/testdata/sa_extra_rules_coder.golden @@ -180,12 +180,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/securitycontext.golden b/helm/coder/tests/testdata/securitycontext.golden index f75fe8fd47..7c2025da97 100644 --- a/helm/coder/tests/testdata/securitycontext.golden +++ b/helm/coder/tests/testdata/securitycontext.golden @@ -167,12 +167,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/securitycontext_coder.golden b/helm/coder/tests/testdata/securitycontext_coder.golden index c65c330c92..e204e30d74 100644 --- a/helm/coder/tests/testdata/securitycontext_coder.golden +++ b/helm/coder/tests/testdata/securitycontext_coder.golden @@ -167,12 +167,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/svc_loadbalancer.golden b/helm/coder/tests/testdata/svc_loadbalancer.golden index 76e3810f43..fb786e4e15 100644 --- a/helm/coder/tests/testdata/svc_loadbalancer.golden +++ b/helm/coder/tests/testdata/svc_loadbalancer.golden @@ -167,12 +167,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/svc_loadbalancer_class.golden b/helm/coder/tests/testdata/svc_loadbalancer_class.golden index f34f326283..bf2080defe 100644 --- a/helm/coder/tests/testdata/svc_loadbalancer_class.golden +++ b/helm/coder/tests/testdata/svc_loadbalancer_class.golden @@ -168,12 +168,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/svc_loadbalancer_class_coder.golden b/helm/coder/tests/testdata/svc_loadbalancer_class_coder.golden index be5780cdce..eb20497c8b 100644 --- a/helm/coder/tests/testdata/svc_loadbalancer_class_coder.golden +++ b/helm/coder/tests/testdata/svc_loadbalancer_class_coder.golden @@ -168,12 +168,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/svc_loadbalancer_coder.golden b/helm/coder/tests/testdata/svc_loadbalancer_coder.golden index acbc75a8ea..625f64e6ab 100644 --- a/helm/coder/tests/testdata/svc_loadbalancer_coder.golden +++ b/helm/coder/tests/testdata/svc_loadbalancer_coder.golden @@ -167,12 +167,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/svc_nodeport.golden b/helm/coder/tests/testdata/svc_nodeport.golden index 3fed4f9808..4fd5a6440c 100644 --- a/helm/coder/tests/testdata/svc_nodeport.golden +++ b/helm/coder/tests/testdata/svc_nodeport.golden @@ -166,12 +166,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/svc_nodeport_coder.golden b/helm/coder/tests/testdata/svc_nodeport_coder.golden index 152df1e0c7..4b12a2f135 100644 --- a/helm/coder/tests/testdata/svc_nodeport_coder.golden +++ b/helm/coder/tests/testdata/svc_nodeport_coder.golden @@ -166,12 +166,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/tls.golden b/helm/coder/tests/testdata/tls.golden index 8015741a03..68e9ee3be6 100644 --- a/helm/coder/tests/testdata/tls.golden +++ b/helm/coder/tests/testdata/tls.golden @@ -180,12 +180,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/tls_coder.golden b/helm/coder/tests/testdata/tls_coder.golden index 2d1bd1c285..3363f80695 100644 --- a/helm/coder/tests/testdata/tls_coder.golden +++ b/helm/coder/tests/testdata/tls_coder.golden @@ -180,12 +180,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/topology.golden b/helm/coder/tests/testdata/topology.golden index ff751a702f..45f21d3828 100644 --- a/helm/coder/tests/testdata/topology.golden +++ b/helm/coder/tests/testdata/topology.golden @@ -167,12 +167,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/topology_coder.golden b/helm/coder/tests/testdata/topology_coder.golden index f5614b0259..4446d2b084 100644 --- a/helm/coder/tests/testdata/topology_coder.golden +++ b/helm/coder/tests/testdata/topology_coder.golden @@ -167,12 +167,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/workspace_proxy.golden b/helm/coder/tests/testdata/workspace_proxy.golden index e34ec16ab9..2b5de38f75 100644 --- a/helm/coder/tests/testdata/workspace_proxy.golden +++ b/helm/coder/tests/testdata/workspace_proxy.golden @@ -175,12 +175,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/tests/testdata/workspace_proxy_coder.golden b/helm/coder/tests/testdata/workspace_proxy_coder.golden index 44703fd553..ba1a5ea0fe 100644 --- a/helm/coder/tests/testdata/workspace_proxy_coder.golden +++ b/helm/coder/tests/testdata/workspace_proxy_coder.golden @@ -175,12 +175,6 @@ spec: image: ghcr.io/coder/coder:latest imagePullPolicy: IfNotPresent lifecycle: {} - livenessProbe: - httpGet: - path: /healthz - port: http - scheme: HTTP - initialDelaySeconds: 0 name: coder ports: - containerPort: 8080 diff --git a/helm/coder/values.yaml b/helm/coder/values.yaml index 54b88be12c..a9ce08c69b 100644 --- a/helm/coder/values.yaml +++ b/helm/coder/values.yaml @@ -266,16 +266,44 @@ coder: # memory: 4096Mi # coder.readinessProbe -- Readiness probe configuration for the Coder container. + # See https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#Probe + # for default values. readinessProbe: + # coder.readinessProbe.enabled -- Whether to enable the readiness probe. + enabled: true # coder.readinessProbe.initialDelaySeconds -- Number of seconds after the container # has started before readiness probes are initiated. initialDelaySeconds: 0 + # coder.readinessProbe.periodSeconds -- How often (in seconds) to perform the probe. + # periodSeconds: 10 + # coder.readinessProbe.timeoutSeconds -- Number of seconds after which the probe times out. + # timeoutSeconds: 1 + # coder.readinessProbe.successThreshold -- Minimum consecutive successes for the probe + # to be considered successful after having failed. + # successThreshold: 1 + # coder.readinessProbe.failureThreshold -- Minimum consecutive failures for the probe + # to be considered failed after having succeeded. + # failureThreshold: 3 # coder.livenessProbe -- Liveness probe configuration for the Coder container. + # See https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#Probe + # for default values. livenessProbe: + # coder.livenessProbe.enabled -- Whether to enable the liveness probe. + enabled: false # coder.livenessProbe.initialDelaySeconds -- Number of seconds after the container # has started before liveness probes are initiated. initialDelaySeconds: 0 + # coder.livenessProbe.periodSeconds -- How often (in seconds) to perform the probe. + # periodSeconds: 10 + # coder.livenessProbe.timeoutSeconds -- Number of seconds after which the probe times out. + # timeoutSeconds: 1 + # coder.livenessProbe.successThreshold -- Minimum consecutive successes for the probe + # to be considered successful after having failed. + # successThreshold: 1 + # coder.livenessProbe.failureThreshold -- Minimum consecutive failures for the probe + # to be considered failed after having succeeded. + # failureThreshold: 3 # coder.certs -- CA bundles to mount inside the Coder pod. certs: