Skip to content

feat(azureblob): support Azure Managed/Workload Identity - #36

Merged
CRThaze merged 1 commit into
mainfrom
CRThaze/s3proxy-azureblob-managed-identity
Sep 3, 2026
Merged

feat(azureblob): support Azure Managed/Workload Identity#36
CRThaze merged 1 commit into
mainfrom
CRThaze/s3proxy-azureblob-managed-identity

Conversation

@CRThaze

@CRThaze CRThaze commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Problem

S3Proxy's azureblob-sdk backend uses Azure's DefaultAzureCredential (AKS
Workload Identity) only when both jclouds.identity and jclouds.credential
render as empty strings. The chart could not express that state, so managed
identity was impossible — you could only use a static account key or a SAS token.

Root cause

In configmap.yaml, jclouds.identity was emitted only when account was set,
and always as the account name. So:

  • with account set → identity = account (a non-empty identity disables managed identity);
  • with account empty → the identity line was absent, not an empty string.

Either way, empty/empty identity+credential was unreachable.

Change

  • New config.backends.azureblob.managedIdentity (default false). When true, the
    chart renders jclouds.identity= and jclouds.credential= empty and keeps the
    storage account name in the endpoint (never in the identity).
  • Render-time guard rejects auth-breaking misconfigs: a non-azureblob-sdk provider,
    a static key/SAS token set alongside managed identity, or no endpoint.
  • New test-values/azureblob-managed-identity.yaml render scenario (also covers the
    workload-identity SA annotation + pod label), wired into the lint-render matrix.
  • Doc: compat note + "Example 3b" usage example in charts/s3proxy/README.md.gotmpl
    (root README.md is regenerated from the template by CI, not hand-edited here).
  • Chart version bump 0.4.20.4.3.

No image/appVersion bump — andrewgaul/s3proxy:3.3.0 already supports this.

Backward compatibility

Static-key (inline + existingSecret) and SAS-token paths are unchanged — verified by
re-rendering the existing azureblob.yaml and azureblob-existing-secret.yaml
scenarios (identical jclouds.identity/credential output).

How to configure (AKS Workload Identity)

config:
  backends:
    filesystem: { enabled: false }
    azureblob:
      enabled: true
      provider: azureblob-sdk
      managedIdentity: true
      account: mystorageaccount   # used for the endpoint, not the identity
serviceAccount:
  create: true
  annotations:
    azure.workload.identity/client-id: "<managed-identity-client-id>"
podLabels:
  azure.workload.identity/use: "true"

Test evidence

helm template renders jclouds.provider=azureblob-sdk, the endpoint, and empty
jclouds.identity= / jclouds.credential=; no secret-azureblob.properties is
created. helm lint passes. All three guard misconfigs fail at render time.

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

Add config.backends.azureblob.managedIdentity. When true the chart renders
jclouds.identity and jclouds.credential as empty strings, which is the only
state that makes the azureblob-sdk provider use Azure's DefaultAzureCredential
(the AKS workload-identity-injected AZURE_CLIENT_ID/TENANT_ID/FEDERATED_TOKEN_FILE).

Before this, jclouds.identity was emitted only when 'account' was set, and always
as the account name, so an empty/empty identity+credential was unexpressible: with
account set identity was the account (a static identity disables managed identity),
and with account empty the identity line was absent, not an empty string.

The account name now goes in the endpoint (unchanged default), never in identity.
A render-time guard rejects the auth-breaking misconfigs (non-sdk provider, a
static key/SAS alongside managed identity, or no endpoint). Static-key and SAS
paths are untouched. No image bump (andrewgaul/s3proxy:3.3.0 already supports it).
@CRThaze
CRThaze force-pushed the CRThaze/s3proxy-azureblob-managed-identity branch from dd20b23 to 02601b1 Compare September 3, 2026 11:05
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

📝 README.md Preview

The following changes to README.md will be applied when this PR is merged:

Click to expand diff
diff --git a/README.md b/README.md
index eead0ce..6a66033 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 # s3proxy
 
-![Version: 0.4.2](https://img.shields.io/badge/Version-0.4.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 3.3.0](https://img.shields.io/badge/AppVersion-3.3.0-informational?style=flat-square)
+![Version: 0.4.3](https://img.shields.io/badge/Version-0.4.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 3.3.0](https://img.shields.io/badge/AppVersion-3.3.0-informational?style=flat-square)
 
 A Helm chart for deploying S3Proxy - Access other storage backends via the S3 API
 
@@ -23,7 +23,7 @@ The chart tracks S3Proxy (`andrewgaul/s3proxy`) through `appVersion` (currently
 S3Proxy `3.0.0` deprecated the Apache jclouds storage backends (`s3`, `aws-s3`, `azureblob`, `filesystem`, `transient`) in favor of SDK / NIO2 providers. Upstream has announced that `3.3.0` is the last release to bundle jclouds and that future releases "will lack its Atmos and B2 storage backends" (no jclouds-free release has shipped yet; `3.3.0` remains the latest). The jclouds providers still work on 3.x, but are deprecated:
 
 - `filesystem` / `transient`: already default to the non-deprecated `*-nio2` variants (`nio2: true`).
-- `azureblob`: **defaults to `provider: azureblob-sdk`** (the Azure SDK provider, which signs correctly against custom endpoints such as Azurite). The legacy jclouds `azureblob` provider is deprecated and mis-signs against custom endpoints; set `provider: azureblob` only if you specifically need it. On real Azure, `azureblob-sdk` may require `config.backends.azureblob.regions` for bucket creation.
+- `azureblob`: **defaults to `provider: azureblob-sdk`** (the Azure SDK provider, which signs correctly against custom endpoints such as Azurite). The legacy jclouds `azureblob` provider is deprecated and mis-signs against custom endpoints; set `provider: azureblob` only if you specifically need it. On real Azure, `azureblob-sdk` may require `config.backends.azureblob.regions` for bucket creation. For AKS Managed/Workload Identity (no static key), set `config.backends.azureblob.managedIdentity: true` — see "Example 3b" below.
 - `s3`, `googleCloudStorage`, `openstackSwift`: SDK providers exist upstream (`aws-s3-sdk`, `google-cloud-storage-sdk`, `openstack-swift-sdk`). `rackspaceCloudfiles` is OpenStack-Swift-compatible and may be served by `openstack-swift-sdk`. Migrating the chart defaults to the SDK providers is tracked separately.
 - `b2` (and Atmos, if ever added) are jclouds-only with **no SDK successor**. These are the backends upstream has said future releases will drop.
 
@@ -157,6 +157,12 @@ The following section lists the configurable parameters of the s3proxy chart and
 			<td><code>string</code></td>
 			<td><code>""</code></td>
 		</tr>
+		<tr>
+			<td><code>config.backends.azureblob.managedIdentity</code></td>
+			<td>Use Azure Managed/Workload Identity instead of a static account key or SAS token. Requires <code>provider: azureblob-sdk</code>; mutually exclusive with <code>key.<i></code> and <code>sasToken.</i></code>. When true the chart renders both <code>jclouds.identity</code> and <code>jclouds.credential</code> empty, which makes azureblob-sdk fall back to Azure's <code>DefaultAzureCredential</code> (consuming the AKS workload-identity env <code>AZURE_CLIENT_ID</code>/<code>AZURE_TENANT_ID</code>/<code>AZURE_FEDERATED_TOKEN_FILE</code>). Set <code>account</code> (or <code>endpoint</code>) for the storage endpoint, annotate the ServiceAccount with <code>azure.workload.identity/client-id</code> (<code>serviceAccount.annotations</code>) and label the pod <code>azure.workload.identity/use: "true"</code> (<code>podLabels</code>).</td>
+			<td><code>bool</code></td>
+			<td><code>false</code></td>
+		</tr>
 		<tr>
 			<td><code>config.backends.azureblob.provider</code></td>
 			<td>Provider type. Defaults to <code>azureblob-sdk</code> (Azure SDK): it signs correctly against custom endpoints (Azurite, Azure Gov/China, private endpoints) and is the non-deprecated provider on S3Proxy 3.x. The legacy jclouds <code>azureblob</code> provider is deprecated upstream and mis-signs against custom endpoints; on real Azure <code>azureblob-sdk</code> may require <code>regions</code> to be set for bucket creation.</td>
@@ -945,6 +951,40 @@ Install:
 helm install s3proxy-azure ./s3proxy -f values-azure.yaml
 ```
 
+### Example 3b: Azure Blob with Managed / Workload Identity (no static key)
+
+On AKS with Workload Identity, set `managedIdentity: true` instead of an account
+key or SAS token. The chart then renders both `jclouds.identity` and
+`jclouds.credential` empty, which makes the `azureblob-sdk` provider fall back to
+Azure's `DefaultAzureCredential` — it reads the federated token AKS injects
+(`AZURE_CLIENT_ID` / `AZURE_TENANT_ID` / `AZURE_FEDERATED_TOKEN_FILE`). The storage
+account name goes in the endpoint, never in the identity.
+
+```yaml
+# values-azure-mi.yaml
+config:
+  backends:
+    filesystem:
+      enabled: false
+    azureblob:
+      enabled: true
+      provider: "azureblob-sdk"   # required: the legacy jclouds provider can't do token auth
+      managedIdentity: true
+      account: "mystorageaccount" # used for the endpoint; NOT emitted as jclouds.identity
+      # endpoint: "https://mystorageaccount.blob.core.windows.net"  # or set explicitly
+
+# Bind the pod to the AKS user-assigned identity:
+serviceAccount:
+  create: true
+  annotations:
+    azure.workload.identity/client-id: "<managed-identity-client-id>"
+podLabels:
+  azure.workload.identity/use: "true"
+
+persistence:
+  enabled: false
+```
+
 ### Example 4: Google Cloud Storage Backend
 
 ```yaml

Note: This is an automated preview generated by helm-docs. The changes will be automatically applied upon merge.

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

📊 Helm Render Diff Summary

Chart charts/s3proxy rendered with Kubernetes 1.29.0. Informational only — this check never fails the PR.

Values File Chart Path Changes Status
test-values/autoscaling.yaml charts/s3proxy +8 -8 🔄 Changes Detected (summary)
test-values/azureblob-existing-secret.yaml charts/s3proxy +7 -7 🔄 Changes Detected (summary)
test-values/azureblob-managed-identity.yaml charts/s3proxy +292 -0 🔄 Changes Detected (summary)
test-values/azureblob.yaml charts/s3proxy +7 -7 🔄 Changes Detected (summary)
test-values/b2.yaml charts/s3proxy +7 -7 🔄 Changes Detected (summary)
test-values/filesystem.yaml charts/s3proxy +8 -8 🔄 Changes Detected (summary)
test-values/gcs.yaml charts/s3proxy +7 -7 🔄 Changes Detected (summary)
test-values/ingress.yaml charts/s3proxy +10 -10 🔄 Changes Detected (summary)
test-values/multi-backend.yaml charts/s3proxy +7 -7 🔄 Changes Detected (summary)
test-values/openstack-swift.yaml charts/s3proxy +7 -7 🔄 Changes Detected (summary)
test-values/rackspace.yaml charts/s3proxy +7 -7 🔄 Changes Detected (summary)
test-values/s3.yaml charts/s3proxy +7 -7 🔄 Changes Detected (summary)
test-values/tls-existing-secret.yaml charts/s3proxy +8 -8 🔄 Changes Detected (summary)
test-values/tls.yaml charts/s3proxy +8 -8 🔄 Changes Detected (summary)
test-values/transient.yaml charts/s3proxy +7 -7 🔄 Changes Detected (summary)

🔍 Detailed Changes

📝 Changes in charts/s3proxy with test-values/autoscaling.yaml

🔍 Click to view complete diff
--- /tmp/before-autoscaling.yaml	2026-09-03 11:06:03.914222998 +0000
+++ /tmp/after-autoscaling.yaml	2026-09-03 11:06:03.872222322 +0000
@@ -6,7 +6,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -31,7 +31,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -58,7 +58,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -80,7 +80,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -92,8 +92,8 @@
   template:
     metadata:
       annotations:
-        checksum/config: 9c48ea4bdc2b5f5dc8c3c2dea100343164fff98e4c5e6d059e1877a2b9e5e545
-        checksum/secret: 11983a9b179c4038377f6e6d674d209f68d9af1f7a6ef899d33888a646fbaa29
+        checksum/config: 18334b9addc12f94e27fd5aa70d26252d553d54e7203d97936f07fb12a60241e
+        checksum/secret: 7e17ba8667f0253a142cfce2a75cecf6d9e0579dad46e33024d607f5f13fd380
       labels:
         app.kubernetes.io/name: s3proxy
         app.kubernetes.io/instance: release
@@ -261,7 +261,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -293,7 +293,7 @@
   name: "release-s3proxy-test-connection"
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"

📝 Changes in charts/s3proxy with test-values/azureblob-existing-secret.yaml

🔍 Click to view complete diff
--- /tmp/before-azureblob-existing-secret.yaml	2026-09-03 11:06:04.014224607 +0000
+++ /tmp/after-azureblob-existing-secret.yaml	2026-09-03 11:06:03.972223931 +0000
@@ -6,7 +6,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -31,7 +31,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -55,7 +55,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -77,7 +77,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -90,8 +90,8 @@
   template:
     metadata:
       annotations:
-        checksum/config: ec2174236edd949a3c25dd9f9cac411b9ac9671651c2569c3f0275dbce067038
-        checksum/secret: 11983a9b179c4038377f6e6d674d209f68d9af1f7a6ef899d33888a646fbaa29
+        checksum/config: 76dd8de2159b2be44eceb418fa68a6a9f8658d173df8228b043ca3a0d476640b
+        checksum/secret: 7e17ba8667f0253a142cfce2a75cecf6d9e0579dad46e33024d607f5f13fd380
       labels:
         app.kubernetes.io/name: s3proxy
         app.kubernetes.io/instance: release
@@ -267,7 +267,7 @@
   name: "release-s3proxy-test-connection"
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"

📝 Changes in charts/s3proxy with test-values/azureblob-managed-identity.yaml

🔍 Click to view complete diff
--- /tmp/before-azureblob-managed-identity.yaml	2026-09-03 11:06:04.065225428 +0000
+++ /tmp/after-azureblob-managed-identity.yaml	2026-09-03 11:06:04.064225412 +0000
@@ -0,0 +1,292 @@
+---
+# Source: s3proxy/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: release-s3proxy
+  labels:
+    app.kubernetes.io/name: s3proxy
+    helm.sh/chart: s3proxy-0.4.3
+    app.kubernetes.io/instance: release
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/version: "3.3.0"
+  annotations:
+    azure.workload.identity/client-id: 00000000-0000-0000-0000-000000000000
+---
+# Source: s3proxy/templates/secret.yaml
+apiVersion: v1
+kind: Secret
+metadata:
+  name: release-s3proxy
+  labels:
+    app.kubernetes.io/name: s3proxy
+    helm.sh/chart: s3proxy-0.4.3
+    app.kubernetes.io/instance: release
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/version: "3.3.0"
+type: Opaque
+stringData:
+  # Sensitive properties merged into the backend properties files by the
+  # merge-configs initContainer:
+  #   * secret-common.properties  -> appended to EVERY backend file (client auth).
+  #   * secret-<backend>.properties -> appended ONLY to that backend's file, so
+  #     each backend gets its own jclouds.credential and never another backend's.
+  # Local backends (filesystem/transient) need no secret file; their placeholder
+  # jclouds.identity/credential come from the ConfigMap.
+  secret-common.properties: |
+    # S3Proxy client authentication credentials (shared by all backends)
+    s3proxy.identity=test-access-key
+    s3proxy.credential=test-secret-key
+---
+# Source: s3proxy/templates/configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: release-s3proxy
+  labels:
+    app.kubernetes.io/name: s3proxy
+    helm.sh/chart: s3proxy-0.4.3
+    app.kubernetes.io/instance: release
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/version: "3.3.0"
+data:
+  backend-azureblob.properties: |-
+    # S3Proxy configuration
+    s3proxy.endpoint=http://0.0.0.0:9000
+    s3proxy.authorization=aws-v4
+    # Authentication credentials will be merged from the secret properties file
+    # s3proxy.identity and s3proxy.credential will be provided by the secret
+
+    # Azure Blob backend configuration
+    jclouds.provider=azureblob-sdk
+    jclouds.endpoint=https://teststorageaccount.blob.core.windows.net
+    # Managed/Workload Identity: azureblob-sdk falls back to Azure's
+    # DefaultAzureCredential (reads the AKS-injected AZURE_CLIENT_ID/TENANT_ID/
+    # FEDERATED_TOKEN_FILE) only when BOTH identity and credential are empty. The
+    # account name lives in jclouds.endpoint above, never in the identity.
+    jclouds.identity=
+    jclouds.credential=
+---
+# Source: s3proxy/templates/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: release-s3proxy
+  labels:
+    app.kubernetes.io/name: s3proxy
+    helm.sh/chart: s3proxy-0.4.3
+    app.kubernetes.io/instance: release
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/version: "3.3.0"
+spec:
+  type: ClusterIP
+  ports:
+    - port: 9000
+      targetPort: 9000
+      protocol: TCP
+      name: http
+  selector:
+    app.kubernetes.io/name: s3proxy
+    app.kubernetes.io/instance: release
+---
+# Source: s3proxy/templates/deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: release-s3proxy
+  labels:
+    app.kubernetes.io/name: s3proxy
+    helm.sh/chart: s3proxy-0.4.3
+    app.kubernetes.io/instance: release
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/version: "3.3.0"
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app.kubernetes.io/name: s3proxy
+      app.kubernetes.io/instance: release
+  template:
+    metadata:
+      annotations:
+        checksum/config: f915ed4a98d90b5196abc22a6345a14d411b653dd7f7f1d44c23e623660aa4a8
+        checksum/secret: 7e17ba8667f0253a142cfce2a75cecf6d9e0579dad46e33024d607f5f13fd380
+      labels:
+        app.kubernetes.io/name: s3proxy
+        app.kubernetes.io/instance: release
+        azure.workload.identity/use: "true"
+    spec:
+      serviceAccountName: release-s3proxy
+      terminationGracePeriodSeconds: 40
+      securityContext:
+        {}
+      initContainers:
+        - name: merge-configs
+          securityContext:
+            {}
+          image: "busybox:1.36"
+          imagePullPolicy: IfNotPresent
+          command: ["sh", "-c"]
+          args:
+            - |
+              set -e
+              echo "Merging configuration files..."
+
+              # secret-common.properties holds the client-facing auth and is
+              # appended to every backend file. Each backend additionally gets
+              # its own secret-<backend>.properties (its jclouds.credential), so
+              # one backend's credential never leaks into another's file.
+              COMMON_SECRET="/secret/secret-common.properties"
+
+              # Loop through all properties files in the config directory
+              for config_file in /config/*.properties
+              do
+                if [ -f "$config_file" ]
+                then
+                  # Get the filename, e.g. backend-s3.properties
+                  filename=$(basename "$config_file")
+                  output_file="/merged-config/$filename"
+
+                  echo "Processing $filename..."
+
+                  # Copy base config file to output
+                  cp "$config_file" "$output_file"
+
+                  # Append the shared client-auth secret, if present
+                  if [ -f "$COMMON_SECRET" ]
+                  then
+                    echo "" >> "$output_file"  # Add newline separator
+                    cat "$COMMON_SECRET" >> "$output_file"
+                  fi
+
+                  # Append this backend's own secret: backend-<name>.properties
+                  # pairs with secret-<name>.properties
+                  backend="${filename#backend-}"
+                  backend="${backend%.properties}"
+                  backend_secret="/secret/secret-${backend}.properties"
+                  if [ -f "$backend_secret" ]
+                  then
+                    echo "" >> "$output_file"  # Add newline separator
+                    cat "$backend_secret" >> "$output_file"
+                  fi
+
+                  # Backend credentials from an existingSecret: each file under
+                  # /backend-secret/<backend>/ is named for the jclouds property it holds.
+                  backend_secret_dir="/backend-secret/${backend}"
+                  if [ -d "$backend_secret_dir" ]
+                  then
+                    for prop_file in "$backend_secret_dir"/*
+                    do
+                      [ -f "$prop_file" ] || continue
+                      echo "" >> "$output_file"  # Add newline separator
+                      printf '%s=%s\n' "$(basename "$prop_file")" "$(cat "$prop_file")" >> "$output_file"
+                    done
+                  fi
+
+                  # TLS keystore password from an existing Secret (kept out of the
+                  # ConfigMap). Mounted only when config.tls.keystorePassword.existingSecret
+                  # is set; an inline password arrives via secret-common.properties instead.
+                  if [ -f "/tls-password/keystore-password" ]
+                  then
+                    echo "" >> "$output_file"  # Add newline separator
+                    echo "s3proxy.keystore-password=$(cat /tls-password/keystore-password)" >> "$output_file"
+                  fi
+                fi
+              done
+
+              echo "Configuration files merged successfully."
+          volumeMounts:
+            - name: config
+              mountPath: /config
+              readOnly: true
+            - name: secret-config
+              mountPath: /secret
+              readOnly: true
+            - name: merged-config
+              mountPath: /merged-config
+      containers:
+        - name: s3proxy
+          securityContext:
+            {}
+          image: "andrewgaul/s3proxy:3.3.0"
+          imagePullPolicy: IfNotPresent
+          command:
+            - java
+          args:
+            - -DLOG_LEVEL=INFO
+            - -jar
+            - /opt/s3proxy/s3proxy
+            - "--properties"
+            - "/merged-config/backend-azureblob.properties"
+          ports:
+            - name: http
+              containerPort: 9000
+              protocol: TCP
+          # /healthz responds without authentication (S3Proxy >= 3.2.0),
+          # distinguishing a serving proxy from one that merely accepts TCP.
+          # The kubelet does not verify certificates for HTTPS probes, so a
+          # self-signed keystore works when native TLS is enabled.  S3Proxy
+          # releases after 3.3.0 fail readiness while draining in-flight
+          # requests on shutdown, removing terminating pods from Service
+          # endpoints.
+          livenessProbe:
+            httpGet:
+              path: /healthz
+              port: http
+            initialDelaySeconds: 30
+            periodSeconds: 10
+            timeoutSeconds: 5
+            successThreshold: 1
+            failureThreshold: 3
+          readinessProbe:
+            httpGet:
+              path: /healthz
+              port: http
+            initialDelaySeconds: 10
+            periodSeconds: 5
+            timeoutSeconds: 3
+            successThreshold: 1
+            failureThreshold: 3
+          lifecycle:
+            # Endpoint removal propagates asynchronously; keep serving
+            # briefly so late-routed connections do not land on a pod that
+            # has already begun shutting down.
+            preStop:
+              exec:
+                command: ["sleep", "5"]
+          resources:
+            {}
+          volumeMounts:
+            - name: merged-config
+              mountPath: /merged-config
+              readOnly: true
+      volumes:
+        - name: config
+          configMap:
+            name: release-s3proxy
+        - name: secret-config
+          secret:
+            secretName: release-s3proxy
+        - name: merged-config
+          emptyDir: {}
+---
+# Source: s3proxy/templates/tests/test-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+  name: "release-s3proxy-test-connection"
+  labels:
+    app.kubernetes.io/name: s3proxy
+    helm.sh/chart: s3proxy-0.4.3
+    app.kubernetes.io/instance: release
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/version: "3.3.0"
+  annotations:
+    "helm.sh/hook": test
+spec:
+  containers:
+    - name: wget
+      image: busybox
+      command: ['wget']
+      args: ['release-s3proxy:9000']
+  restartPolicy: Never

📝 Changes in charts/s3proxy with test-values/azureblob.yaml

🔍 Click to view complete diff
--- /tmp/before-azureblob.yaml	2026-09-03 11:06:04.182227310 +0000
+++ /tmp/after-azureblob.yaml	2026-09-03 11:06:04.129226457 +0000
@@ -6,7 +6,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -34,7 +34,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -58,7 +58,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -80,7 +80,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -93,8 +93,8 @@
   template:
     metadata:
       annotations:
-        checksum/config: f42bc5ae87f97216f48025b9d5876984feea9866f13f5417198050640f62d94c
-        checksum/secret: facbe8b3bed3948eeffae4e93d63ebf75c250127bb3e28944fdabf38389fd30d
+        checksum/config: ffec5217d5a9a959709cfafed08e40a06462856358edd6ce49922085aaf7b001
+        checksum/secret: f354f9d955619ee4b15d6eaf4d295b9c2651f601ce47667545fb37da4bb40d09
       labels:
         app.kubernetes.io/name: s3proxy
         app.kubernetes.io/instance: release
@@ -260,7 +260,7 @@
   name: "release-s3proxy-test-connection"
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"

📝 Changes in charts/s3proxy with test-values/b2.yaml

🔍 Click to view complete diff
--- /tmp/before-b2.yaml	2026-09-03 11:06:04.278228855 +0000
+++ /tmp/after-b2.yaml	2026-09-03 11:06:04.234228147 +0000
@@ -6,7 +6,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -34,7 +34,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -58,7 +58,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -80,7 +80,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -93,8 +93,8 @@
   template:
     metadata:
       annotations:
-        checksum/config: 94c65e4273d8c24b0900babf8db26dd08856577f04807ed1945c46a298418529
-        checksum/secret: a8209718a7ee6d0faa38adac0b2698e26acd8148da9941125f78ea3d0942c130
+        checksum/config: 8f9e702d509ada38fec930a3d2fae97cb5c233f8efc1a023885c3f678b37776f
+        checksum/secret: c592aaccb32f3097e9a49059ad15266be0fe962b75be024b3ab48650ddebbb42
       labels:
         app.kubernetes.io/name: s3proxy
         app.kubernetes.io/instance: release
@@ -260,7 +260,7 @@
   name: "release-s3proxy-test-connection"
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"

📝 Changes in charts/s3proxy with test-values/filesystem.yaml

🔍 Click to view complete diff
--- /tmp/before-filesystem.yaml	2026-09-03 11:06:04.370230335 +0000
+++ /tmp/after-filesystem.yaml	2026-09-03 11:06:04.326229627 +0000
@@ -6,7 +6,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -31,7 +31,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -58,7 +58,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -76,7 +76,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -98,7 +98,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -111,8 +111,8 @@
   template:
     metadata:
       annotations:
-        checksum/config: 9c48ea4bdc2b5f5dc8c3c2dea100343164fff98e4c5e6d059e1877a2b9e5e545
-        checksum/secret: 11983a9b179c4038377f6e6d674d209f68d9af1f7a6ef899d33888a646fbaa29
+        checksum/config: 18334b9addc12f94e27fd5aa70d26252d553d54e7203d97936f07fb12a60241e
+        checksum/secret: 7e17ba8667f0253a142cfce2a75cecf6d9e0579dad46e33024d607f5f13fd380
       labels:
         app.kubernetes.io/name: s3proxy
         app.kubernetes.io/instance: release
@@ -283,7 +283,7 @@
   name: "release-s3proxy-test-connection"
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"

📝 Changes in charts/s3proxy with test-values/gcs.yaml

🔍 Click to view complete diff
--- /tmp/before-gcs.yaml	2026-09-03 11:06:04.461231800 +0000
+++ /tmp/after-gcs.yaml	2026-09-03 11:06:04.420231140 +0000
@@ -6,7 +6,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -31,7 +31,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -57,7 +57,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -79,7 +79,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -92,8 +92,8 @@
   template:
     metadata:
       annotations:
-        checksum/config: 1cdc538f993e50a96d0c2ac46a7bb0c846b5609e15097ee94825e6aa2b821a73
-        checksum/secret: 11983a9b179c4038377f6e6d674d209f68d9af1f7a6ef899d33888a646fbaa29
+        checksum/config: cdcacc618246f6b1eee4676881bce6deac1ceb2d6779cd24d7b27d396cebb15e
+        checksum/secret: 7e17ba8667f0253a142cfce2a75cecf6d9e0579dad46e33024d607f5f13fd380
       labels:
         app.kubernetes.io/name: s3proxy
         app.kubernetes.io/instance: release
@@ -269,7 +269,7 @@
   name: "release-s3proxy-test-connection"
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"

📝 Changes in charts/s3proxy with test-values/ingress.yaml

🔍 Click to view complete diff
--- /tmp/before-ingress.yaml	2026-09-03 11:06:04.553233280 +0000
+++ /tmp/after-ingress.yaml	2026-09-03 11:06:04.511232604 +0000
@@ -6,7 +6,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -18,7 +18,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -43,7 +43,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -75,7 +75,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -93,7 +93,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -115,7 +115,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -128,8 +128,8 @@
   template:
     metadata:
       annotations:
-        checksum/config: a9971762af86c4668af353c0b93b91a2ea8af9b1aa15aa5dcf6b88ec47fab2a6
-        checksum/secret: 11983a9b179c4038377f6e6d674d209f68d9af1f7a6ef899d33888a646fbaa29
+        checksum/config: 20054bf54ee9621acca32d25487c2d354d4dc24163c3b33a1744ef028b576c5f
+        checksum/secret: 7e17ba8667f0253a142cfce2a75cecf6d9e0579dad46e33024d607f5f13fd380
         prometheus.io/scrape: "true"
       labels:
         app.kubernetes.io/name: s3proxy
@@ -311,7 +311,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -342,7 +342,7 @@
   name: "release-s3proxy-test-connection"
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"

📝 Changes in charts/s3proxy with test-values/multi-backend.yaml

🔍 Click to view complete diff
--- /tmp/before-multi-backend.yaml	2026-09-03 11:06:04.643234728 +0000
+++ /tmp/after-multi-backend.yaml	2026-09-03 11:06:04.602234069 +0000
@@ -6,7 +6,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -37,7 +37,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -74,7 +74,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -96,7 +96,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -109,8 +109,8 @@
   template:
     metadata:
       annotations:
-        checksum/config: 8a37a05071e4f5884b906ef57020bffb97d37628dd4adcfede644c4d6fb4ae80
-        checksum/secret: 6192dc949b646a43f063f6a4bc088153abc3aabe8bd08d27f61cd0ca1a144ccc
+        checksum/config: 71d6f9ea078573f79262187193fddff14e292c230b5871349f15eb45e63b1c72
+        checksum/secret: 44d7347618dc73875f730b94c124cb74d063a09592c4d4e3a8d7acfc516b7539
       labels:
         app.kubernetes.io/name: s3proxy
         app.kubernetes.io/instance: release
@@ -278,7 +278,7 @@
   name: "release-s3proxy-test-connection"
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"

📝 Changes in charts/s3proxy with test-values/openstack-swift.yaml

🔍 Click to view complete diff
--- /tmp/before-openstack-swift.yaml	2026-09-03 11:06:04.734236193 +0000
+++ /tmp/after-openstack-swift.yaml	2026-09-03 11:06:04.690235485 +0000
@@ -6,7 +6,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -34,7 +34,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -60,7 +60,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -82,7 +82,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -95,8 +95,8 @@
   template:
     metadata:
       annotations:
-        checksum/config: a00537fea00520cc22b2354647ff3efce69268565c1100ec70acfac7aa7b6596
-        checksum/secret: d40aececd2e388685a2ba721a0843b1f66951acc8cc63af4bca1e15854c872af
+        checksum/config: 1bdb02adfb32e09e3f837e7edfd5aa240fd576e29087e73144d21e1651d1591b
+        checksum/secret: 08ce020f544086ca7776197438c02d1c2d914c6f2f8365fb1e361c5a629bfd8c
       labels:
         app.kubernetes.io/name: s3proxy
         app.kubernetes.io/instance: release
@@ -262,7 +262,7 @@
   name: "release-s3proxy-test-connection"
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"

📝 Changes in charts/s3proxy with test-values/rackspace.yaml

🔍 Click to view complete diff
--- /tmp/before-rackspace.yaml	2026-09-03 11:06:04.833237786 +0000
+++ /tmp/after-rackspace.yaml	2026-09-03 11:06:04.783236981 +0000
@@ -6,7 +6,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -34,7 +34,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -58,7 +58,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -80,7 +80,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -93,8 +93,8 @@
   template:
     metadata:
       annotations:
-        checksum/config: f28081494e0b604a0656588f003ed70455dd1e5b8b9d5fdeb979771e79d747b8
-        checksum/secret: cd8ec7b7a39d8b707c277b03a510f19eee5684196f2819ed152f355235f0c290
+        checksum/config: 1d3d999985ced9512c41eaa6c8d27f567485afd7c1e87d87f1fef3547abbdb63
+        checksum/secret: a5e397ae70211f35fa277ec770031fbd40521ca9e49c190494735003e73f492f
       labels:
         app.kubernetes.io/name: s3proxy
         app.kubernetes.io/instance: release
@@ -260,7 +260,7 @@
   name: "release-s3proxy-test-connection"
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"

📝 Changes in charts/s3proxy with test-values/s3.yaml

🔍 Click to view complete diff
--- /tmp/before-s3.yaml	2026-09-03 11:06:04.940239508 +0000
+++ /tmp/after-s3.yaml	2026-09-03 11:06:04.898238832 +0000
@@ -6,7 +6,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -34,7 +34,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -60,7 +60,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -82,7 +82,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -95,8 +95,8 @@
   template:
     metadata:
       annotations:
-        checksum/config: 07ea99773048abba1123408771014c09ec5a788817e875a6043928f9855fe195
-        checksum/secret: bfbbe9f275c16c18d8479bd263202e22deb249b4858c72b0539b9bb3068b5b78
+        checksum/config: 506eea12c2aa15a9a9e2d5997b13e9f78f6e274970b60ac7d0f546bd71327623
+        checksum/secret: 1393c01bee746fc815941885e8b8d33d8e3b1a6d392f234cca2e6de8d4517e6f
       labels:
         app.kubernetes.io/name: s3proxy
         app.kubernetes.io/instance: release
@@ -262,7 +262,7 @@
   name: "release-s3proxy-test-connection"
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"

📝 Changes in charts/s3proxy with test-values/tls-existing-secret.yaml

🔍 Click to view complete diff
--- /tmp/before-tls-existing-secret.yaml	2026-09-03 11:06:05.032240988 +0000
+++ /tmp/after-tls-existing-secret.yaml	2026-09-03 11:06:04.989240296 +0000
@@ -6,7 +6,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -31,7 +31,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -62,7 +62,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -80,7 +80,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -102,7 +102,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -115,8 +115,8 @@
   template:
     metadata:
       annotations:
-        checksum/config: f45a69bf771b98364f06d977c9fa79a7b4ee8908028a8dbc5fff1c7042f35e7d
-        checksum/secret: 714034408ef3909705470f5f3ea809311dbc113ca65c35ac4206bc5a0c3d7749
+        checksum/config: a61363ba7074aaa861e5b02429b298da3b67ada3cb7eaa2085e4517294914950
+        checksum/secret: a08cb2c664249f5c9bc81abc43fe9701f7e88ec0e576a48a21b74b9cc803c9c2
       labels:
         app.kubernetes.io/name: s3proxy
         app.kubernetes.io/instance: release
@@ -307,7 +307,7 @@
   name: "release-s3proxy-test-connection"
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"

📝 Changes in charts/s3proxy with test-values/tls.yaml

🔍 Click to view complete diff
--- /tmp/before-tls.yaml	2026-09-03 11:06:05.125242485 +0000
+++ /tmp/after-tls.yaml	2026-09-03 11:06:05.082241793 +0000
@@ -6,7 +6,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -38,7 +38,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -69,7 +69,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -87,7 +87,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -109,7 +109,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -122,8 +122,8 @@
   template:
     metadata:
       annotations:
-        checksum/config: f45a69bf771b98364f06d977c9fa79a7b4ee8908028a8dbc5fff1c7042f35e7d
-        checksum/secret: f0cc8fc8ab1523cc0b7636d3619c62b9e1f7a9520bf4134abc2a345c1a119d81
+        checksum/config: a61363ba7074aaa861e5b02429b298da3b67ada3cb7eaa2085e4517294914950
+        checksum/secret: a23df6b87afb143127f2d2db9a7252701eaf49d0b20cf87aea1d1bad7bfad87d
       labels:
         app.kubernetes.io/name: s3proxy
         app.kubernetes.io/instance: release
@@ -305,7 +305,7 @@
   name: "release-s3proxy-test-connection"
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"

📝 Changes in charts/s3proxy with test-values/transient.yaml

🔍 Click to view complete diff
--- /tmp/before-transient.yaml	2026-09-03 11:06:05.217243965 +0000
+++ /tmp/after-transient.yaml	2026-09-03 11:06:05.175243289 +0000
@@ -6,7 +6,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -31,7 +31,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -57,7 +57,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -79,7 +79,7 @@
   name: release-s3proxy
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"
@@ -92,8 +92,8 @@
   template:
     metadata:
       annotations:
-        checksum/config: f6ce0433827d541ec2be46f9dc4043dff96e806f14aafb90b7235df8fd394f4a
-        checksum/secret: 11983a9b179c4038377f6e6d674d209f68d9af1f7a6ef899d33888a646fbaa29
+        checksum/config: 042538f5636a7f3163fdf001de8aa86a84798b9e4cff6a5ffee68a47735d51de
+        checksum/secret: 7e17ba8667f0253a142cfce2a75cecf6d9e0579dad46e33024d607f5f13fd380
       labels:
         app.kubernetes.io/name: s3proxy
         app.kubernetes.io/instance: release
@@ -259,7 +259,7 @@
   name: "release-s3proxy-test-connection"
   labels:
     app.kubernetes.io/name: s3proxy
-    helm.sh/chart: s3proxy-0.4.2
+    helm.sh/chart: s3proxy-0.4.3
     app.kubernetes.io/instance: release
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/version: "3.3.0"

@CRThaze
CRThaze merged commit 005acc7 into main Sep 3, 2026
31 of 32 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant