You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Route buckets per backend + verify multi-backend functional test end-to-end
The multi-backend functional test configured s3 + azureblob + filesystem but
only ever exercised one backend: the chart had no way to route a bucket to a
specific backend, so S3Proxy served every bucket from the first (default)
backend. The leg passed without touching azureblob or s3 — a false green.
Chart:
- Per-backend bucket-locator. Move s3proxy.bucket-locator.N out of the shared
config block (which copied one global list into every backend file, so
S3Proxy's first-file-wins de-dup meant only the first backend honored it) into
each backend's own properties, driven by config.backends.<name>.bucketLocators.
- Per-backend credentials. Replace the single shared secret.properties (which
emitted only the first-enabled backend's jclouds.credential and appended it to
every backend file) with secret-common.properties + per-backend
secret-<name>.properties; the merge initContainer appends common + the matching
backend secret, so each backend gets only its own credential. Also fixes a
latent GCS double-"jclouds.credential=" prefix.
- azureblob: emit the provider-agnostic jclouds.endpoint (was the
jclouds.azureblob.endpoint typo) and render the computed default endpoint when
only account is set.
Test:
- ci/functional/values/multi-backend.yaml routes smoke-s3-*/smoke-az-*/smoke-fs-*
to their backends; azureblob uses the azureblob-sdk provider, which signs
correctly against Azurite (the legacy azureblob provider mis-signs -> 403).
- ci/functional/assert-routing.sh writes one bucket per backend through s3proxy
and verifies each object physically lands on its intended backend (MinIO for
s3, Azurite for azureblob via az CLI, filesystem by elimination) and that no
bucket leaks into another backend.
- functional-test.yaml: multi-backend and azureblob legs are now hard gates
(all soft_fail removed).
No Chart.yaml version bump (handled separately), so verify-version fails by
design for now.
Verified on kind: multi-backend routing exclusive (s3->MinIO, az->Azurite,
fs->filesystem); azureblob-only, s3-only, filesystem-only all pass.
0 commit comments