Skip to content

Commit 4536707

Browse files
chart: Allow webhook server env to be set individually (actions#2377)
Co-authored-by: Yusuke Kuoka <[email protected]>
1 parent 13802c5 commit 4536707

File tree

4 files changed

+47
-3
lines changed

4 files changed

+47
-3
lines changed

acceptance/deploy.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,10 @@ if [ "${tool}" == "helm" ]; then
8383
flags+=( --set actionsMetricsServer.secret.create=true)
8484
flags+=( --set actionsMetricsServer.secret.github_token=${WEBHOOK_GITHUB_TOKEN})
8585
fi
86+
if [ -n "${GITHUB_WEBHOOK_SERVER_ENV_NAME}" ] && [ -n "${GITHUB_WEBHOOK_SERVER_ENV_VALUE}" ]; then
87+
flags+=( --set githubWebhookServer.env[0].name=${GITHUB_WEBHOOK_SERVER_ENV_NAME})
88+
flags+=( --set githubWebhookServer.env[0].value=${GITHUB_WEBHOOK_SERVER_ENV_VALUE})
89+
fi
8690

8791
set -vx
8892

charts/actions-runner-controller/templates/githubwebhook.deployment.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,14 @@ spec:
117117
name: {{ include "actions-runner-controller.secretName" . }}
118118
optional: true
119119
{{- end }}
120+
{{- if kindIs "slice" .Values.githubWebhookServer.env }}
121+
{{- toYaml .Values.githubWebhookServer.env | nindent 8 }}
122+
{{- else }}
120123
{{- range $key, $val := .Values.githubWebhookServer.env }}
121124
- name: {{ $key }}
122125
value: {{ $val | quote }}
123126
{{- end }}
127+
{{- end }}
124128
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default (cat "v" .Chart.AppVersion | replace " " "") }}"
125129
name: github-webhook-server
126130
imagePullPolicy: {{ .Values.image.pullPolicy }}

charts/actions-runner-controller/values.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,19 @@ githubWebhookServer:
279279
# queueLimit: 100
280280
terminationGracePeriodSeconds: 10
281281
lifecycle: {}
282+
# specify additional environment variables for the webhook server pod.
283+
# It's possible to specify either key vale pairs e.g.:
284+
# my_env_var: "some value"
285+
# my_other_env_var: "other value"
286+
287+
# or a list of complete environment variable definitions e.g.:
288+
# - name: GITHUB_WEBHOOK_SECRET_TOKEN
289+
# valueFrom:
290+
# secretKeyRef:
291+
# key: GITHUB_WEBHOOK_SECRET_TOKEN
292+
# name: prod-gha-controller-webhook-token
293+
# optional: true
294+
env: {}
282295

283296
actionsMetrics:
284297
serviceAnnotations: {}

test/e2e/e2e_test.go

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ func TestE2E(t *testing.T) {
101101
label string
102102
controller, controllerVer string
103103
chart, chartVer string
104+
opt []InstallARCOption
104105
}{
105106
{
106107
label: "stable",
@@ -117,6 +118,12 @@ func TestE2E(t *testing.T) {
117118
controllerVer: vars.controllerImageTag,
118119
chart: "",
119120
chartVer: "",
121+
opt: []InstallARCOption{
122+
func(ia *InstallARCConfig) {
123+
ia.GithubWebhookServerEnvName = "FOO"
124+
ia.GithubWebhookServerEnvValue = "foo"
125+
},
126+
},
120127
},
121128
}
122129

@@ -186,7 +193,7 @@ func TestE2E(t *testing.T) {
186193
for i, v := range testedVersions {
187194
t.Run("install actions-runner-controller "+v.label, func(t *testing.T) {
188195
t.Logf("Using controller %s:%s and chart %s:%s", v.controller, v.controllerVer, v.chart, v.chartVer)
189-
env.installActionsRunnerController(t, v.controller, v.controllerVer, testID, v.chart, v.chartVer)
196+
env.installActionsRunnerController(t, v.controller, v.controllerVer, testID, v.chart, v.chartVer, v.opt...)
190197
})
191198

192199
if t.Failed() {
@@ -300,7 +307,7 @@ func TestE2E(t *testing.T) {
300307
for i, v := range testedVersions {
301308
t.Run("install actions-runner-controller "+v.label, func(t *testing.T) {
302309
t.Logf("Using controller %s:%s and chart %s:%s", v.controller, v.controllerVer, v.chart, v.chartVer)
303-
env.installActionsRunnerController(t, v.controller, v.controllerVer, testID, v.chart, v.chartVer)
310+
env.installActionsRunnerController(t, v.controller, v.controllerVer, testID, v.chart, v.chartVer, v.opt...)
304311
})
305312

306313
if t.Failed() {
@@ -711,9 +718,20 @@ func (e *env) installCertManager(t *testing.T) {
711718
e.KubectlWaitUntilDeployAvailable(t, "cert-manager", waitCfg.WithTimeout(60*time.Second))
712719
}
713720

714-
func (e *env) installActionsRunnerController(t *testing.T, repo, tag, testID, chart, chartVer string) {
721+
type InstallARCConfig struct {
722+
GithubWebhookServerEnvName, GithubWebhookServerEnvValue string
723+
}
724+
725+
type InstallARCOption func(*InstallARCConfig)
726+
727+
func (e *env) installActionsRunnerController(t *testing.T, repo, tag, testID, chart, chartVer string, opts ...InstallARCOption) {
715728
t.Helper()
716729

730+
var c InstallARCConfig
731+
for _, opt := range opts {
732+
opt(&c)
733+
}
734+
717735
e.createControllerNamespaceAndServiceAccount(t)
718736

719737
scriptEnv := []string{
@@ -755,6 +773,11 @@ func (e *env) installActionsRunnerController(t *testing.T, repo, tag, testID, ch
755773
)
756774
}
757775

776+
varEnv = append(varEnv,
777+
"GITHUB_WEBHOOK_SERVER_ENV_NAME="+c.GithubWebhookServerEnvName,
778+
"GITHUB_WEBHOOK_SERVER_ENV_VALUE="+c.GithubWebhookServerEnvValue,
779+
)
780+
758781
scriptEnv = append(scriptEnv, varEnv...)
759782
scriptEnv = append(scriptEnv, e.vars.commonScriptEnv...)
760783

0 commit comments

Comments
 (0)