Skip to content

Commit 0fe05d1

Browse files
authored
feat: add default image refs if none set (#195)
Normally, the official Helm chart packaging will set the image references used or Coder components. This change applies a default if the image reference is not set, useful for tests or when installing from the source repository.
1 parent 8241160 commit 0fe05d1

File tree

7 files changed

+27
-27
lines changed

7 files changed

+27
-27
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -105,13 +105,7 @@ jobs:
105105
--namespace=coder-test \
106106
--wait \
107107
--debug \
108-
--values=examples/kind/kind.values.yaml \
109-
--values=examples/images.yaml \
110-
--set=coderd.image=docker.io/coderenvs/coder-service:1.24.0 \
111-
--set=coderd.serviceSpec.type=ClusterIP \
112-
--set=coderd.serviceSpec.externalTrafficPolicy="" \
113-
--set=postgres.default.image=docker.io/coderenvs/timescale:1.24.0 \
114-
--set=envbox.image=docker.io/coderenvs/envbox:1.24.0
108+
--values=examples/kind/kind.values.yaml
115109
116110
- name: Get running info
117111
if: always()

Chart.yaml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
# See release.mk - build/helm target.
44
apiVersion: v2
55
name: coder
6-
description: Coder moves developer workspaces to your cloud and centralizes their creation and management.
7-
appVersion: master
8-
version: 1.19.0
6+
description: >
7+
Coder moves developer workspaces to your cloud and centralizes their
8+
creation and management.
9+
appVersion: 1.25.0
10+
version: 1.25.0
911
# Coder follows the Kubernetes upstream version support policy, and the
1012
# latest stable release version of Coder supports the previous two minor
1113
# releases as well as the current release of Kubernetes at time of

examples/images.yaml

Lines changed: 0 additions & 10 deletions
This file was deleted.

scripts/test_helm.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ for example in "${EXAMPLES[@]}"; do
2626
--create-namespace \
2727
--namespace=coder-test \
2828
--release-name \
29-
--values="$PROJECT_ROOT/examples/images.yaml" \
3029
--values="$PROJECT_ROOT/examples/$example/$example.values.yaml" \
3130
--output-dir="$BUILD"
3231
done

templates/coderd.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ spec:
4848
{{- if not .Values.coderd.satellite.enable }}
4949
initContainers:
5050
- name: migrations
51-
image: {{ .Values.coderd.image | quote }}
51+
image: {{ .Values.coderd.image | default (printf "docker.io/coderenvs/coder-service:%s" (.Chart.AppVersion)) | quote }}
5252
imagePullPolicy: Always
5353
env:
5454
- name: HUMAN_LOG
@@ -88,7 +88,7 @@ spec:
8888
{{- end }}
8989
containers:
9090
- name: {{ include "coder.serviceName" . }}
91-
image: {{ .Values.coderd.image | quote }}
91+
image: {{ .Values.coderd.image | default (printf "docker.io/coderenvs/coder-service:%s" (.Chart.AppVersion)) | quote }}
9292
imagePullPolicy: Always
9393
ports:
9494
- name: tcp-{{ include "coder.serviceName" . }}
@@ -112,7 +112,7 @@ spec:
112112
# additional features to users for running applications
113113
# such as dockerd and kubernetes.
114114
- name: ENVBOX_IMAGE
115-
value: {{ .Values.envbox.image | quote }}
115+
value: {{ .Values.envbox.image | default (printf "docker.io/coderenvs/envbox:%s" (.Chart.AppVersion)) | quote }}
116116
- name: CLUSTER_ADDRESS
117117
value: {{ include "coder.cluster.accessURL" . | quote }}
118118
- name: NAMESPACE

templates/timescale.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ spec:
5454
{{- include "coder.serviceTolerations" . | indent 6 }}
5555
containers:
5656
- name: timescale
57-
image: {{ .Values.postgres.default.image | quote }}
57+
image: {{ .Values.postgres.default.image | default (printf "docker.io/coderenvs/timescale:%s" (.Chart.AppVersion)) | quote }}
5858
imagePullPolicy: Always
5959
readinessProbe:
6060
exec:

tests/defaults_test.go

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55

66
"github.com/stretchr/testify/require"
77
"k8s.io/apimachinery/pkg/api/meta"
8+
"k8s.io/utils/pointer"
89
)
910

1011
// TestDefault loads the chart and checks metadata.
@@ -18,8 +19,22 @@ func TestDefault(t *testing.T) {
1819
require.Equal(t, "coder", metadata.Name, "unexpected chart name")
1920
require.False(t, metadata.Deprecated, "chart should not be deprecated")
2021

21-
coderd := chart.OriginalValues.Coderd
22-
require.Equal(t, 1, *coderd.Replicas, "expected 1 replica by default")
22+
objs := chart.MustRender(t, nil)
23+
deployment := MustFindDeployment(t, objs, "coderd")
24+
25+
require.Equal(t, pointer.Int32(1), deployment.Spec.Replicas, "expected 1 replica by default")
26+
podSpec := deployment.Spec.Template.Spec
27+
require.Len(t, podSpec.Containers, 1, "pod spec should have 1 container")
28+
require.Equal(t, "docker.io/coderenvs/coder-service:1.25.0", podSpec.Containers[0].Image,
29+
"expected default image name")
30+
vars := EnvVarsAsMap(podSpec.Containers[0].Env)
31+
t.Logf("vars: %v", vars)
32+
require.Equal(t, "docker.io/coderenvs/envbox:1.25.0", vars["ENVBOX_IMAGE"],
33+
"expected default envbox image name")
34+
35+
require.Len(t, podSpec.InitContainers, 1, "pod spec should have 1 init container")
36+
require.Equal(t, "docker.io/coderenvs/coder-service:1.25.0", podSpec.InitContainers[0].Image,
37+
"expected default image name")
2338
}
2439

2540
// TestNamespace checks that all objects are created in the specified

0 commit comments

Comments
 (0)