Skip to content

Commit 18d4518

Browse files
committed
DND-1442: emit jclouds.identity/credential for filesystem & transient backends
S3Proxy requires jclouds.identity and jclouds.credential in every backend properties file, even for local backends where the values are unused. The chart emitted neither for filesystem/transient, so s3proxy crash-looped ("Properties file must contain: jclouds.identity and jclouds.credential") and the chart was undeployable with its shipped default filesystem backend. Emit both keys in configmap.yaml for filesystem and transient, defaulting to a "local" placeholder via `| default "local"` (so an empty override can't reintroduce the crash). For local backends the credential is a fixed dummy, not a secret, so it lives in the ConfigMap rather than the Secret — this also avoids entangling secret.yaml's if/else-if credential chain. - configmap.yaml: jclouds.identity/credential for filesystem + transient - values.yaml: new identity/credential keys (default "local") + helm-docs docs - Chart.yaml: 0.0.8 -> 0.0.9 (verify-chart-version gate) - functional-test.yaml: filesystem/transient legs soft_fail -> hard gate Verified on kind: install --wait reaches Ready for filesystem, transient, and the out-of-box default (all previously crash-looped); full S3 round-trip passes against the filesystem backend.
1 parent 7397c12 commit 18d4518

4 files changed

Lines changed: 21 additions & 8 deletions

File tree

.github/workflows/functional-test.yaml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@ name: Functional Test (kind)
77
#
88
# Backend coverage:
99
# s3 -> MinIO mock, HARD GATE (full S3 round-trip).
10-
# filesystem / transient -> NON-BLOCKING (soft_fail): the chart does not emit
11-
# jclouds.identity/jclouds.credential for local
12-
# backends, so s3proxy refuses to start
13-
# ("Properties file must contain: jclouds.identity
14-
# and jclouds.credential"). Tracked in DND-1442.
10+
# filesystem / transient -> HARD GATE (install + round-trip). The chart now
11+
# emits placeholder jclouds.identity/jclouds.credential
12+
# for local backends (DND-1442), so s3proxy starts and
13+
# serves. These legs guard that fix against regression.
1514
# azureblob -> Azurite mock, NON-BLOCKING (soft_fail) until DND-1416
1615
# fixes the endpoint property (jclouds.azureblob.endpoint
1716
# -> jclouds.endpoint); the failing round-trip is the
@@ -59,10 +58,8 @@ jobs:
5958
mock: ci/functional/mocks/minio.yaml
6059
- backend: filesystem
6160
values: ci/functional/values/filesystem.yaml
62-
soft_fail: true
6361
- backend: transient
6462
values: ci/functional/values/transient.yaml
65-
soft_fail: true
6663
- backend: azureblob
6764
values: ci/functional/values/azureblob.yaml
6865
mock: ci/functional/mocks/azurite.yaml

charts/s3proxy/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ type: application
1515
# This is the chart version. This version number should be incremented each time you make changes
1616
# to the chart and its templates, including the app version.
1717
# Versions are expected to follow Semantic Versioning (https://semver.org/)
18-
version: 0.0.8
18+
version: 0.0.9
1919

2020
# This is the version number of the application being deployed. This version number should be
2121
# incremented each time you make changes to the application. Versions are not expected to

charts/s3proxy/templates/configmap.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,10 @@ data:
7979
jclouds.provider=filesystem
8080
{{- end }}
8181
jclouds.filesystem.basedir={{ .Values.config.backends.filesystem.basedir }}
82+
# S3Proxy requires jclouds.identity and jclouds.credential in every backend
83+
# properties file, even for local backends where the values are unused.
84+
jclouds.identity={{ .Values.config.backends.filesystem.identity | default "local" }}
85+
jclouds.credential={{ .Values.config.backends.filesystem.credential | default "local" }}
8286
{{- end }}
8387

8488
{{- if .Values.config.backends.transient.enabled }}
@@ -91,6 +95,10 @@ data:
9195
{{- else }}
9296
jclouds.provider=transient
9397
{{- end }}
98+
# S3Proxy requires jclouds.identity and jclouds.credential in every backend
99+
# properties file, even for local backends where the values are unused.
100+
jclouds.identity={{ .Values.config.backends.transient.identity | default "local" }}
101+
jclouds.credential={{ .Values.config.backends.transient.credential | default "local" }}
94102
{{- end }}
95103

96104
{{- if .Values.config.backends.s3.enabled }}

charts/s3proxy/values.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,12 +168,20 @@ config:
168168
nio2: true
169169
# -- Base directory for filesystem backend
170170
basedir: "/data/s3proxy"
171+
# -- jclouds identity. S3Proxy requires jclouds.identity in every backend properties file; the filesystem backend ignores the value, so the "local" placeholder is fine. An empty value falls back to "local".
172+
identity: "local"
173+
# -- jclouds credential. S3Proxy requires jclouds.credential in every backend properties file; the filesystem backend ignores the value. An empty value falls back to "local".
174+
credential: "local"
171175

172176
transient:
173177
# -- Enable transient (in-memory) backend
174178
enabled: false
175179
# -- Use NIO2 implementation (transient-nio2) instead of standard transient
176180
nio2: true
181+
# -- jclouds identity. S3Proxy requires jclouds.identity in every backend properties file; the transient backend ignores the value, so the "local" placeholder is fine. An empty value falls back to "local".
182+
identity: "local"
183+
# -- jclouds credential. S3Proxy requires jclouds.credential in every backend properties file; the transient backend ignores the value. An empty value falls back to "local".
184+
credential: "local"
177185

178186
s3:
179187
# -- Enable S3 backend

0 commit comments

Comments
 (0)