11# s3proxy
22
3- ![ Version: 0.0.3 ] ( https://img.shields.io/badge/Version-0.0.3 -informational?style=flat-square ) ![ Type: application] ( https://img.shields.io/badge/Type-application-informational?style=flat-square ) ![ AppVersion: 2.7.0] ( https://img.shields.io/badge/AppVersion-2.7.0-informational?style=flat-square )
3+ ![ Version: 0.0.4 ] ( https://img.shields.io/badge/Version-0.0.4 -informational?style=flat-square ) ![ Type: application] ( https://img.shields.io/badge/Type-application-informational?style=flat-square ) ![ AppVersion: 2.7.0] ( https://img.shields.io/badge/AppVersion-2.7.0-informational?style=flat-square )
44
55A Helm chart for deploying S3Proxy - Access other storage backends via the S3 API
66
@@ -44,43 +44,64 @@ The following section lists the configurable parameters of the s3proxy chart and
4444| autoscaling.maxReplicas | int | ` 100 ` | Maximum number of replicas |
4545| autoscaling.minReplicas | int | ` 1 ` | Minimum number of replicas |
4646| autoscaling.targetCPUUtilizationPercentage | int | ` 80 ` | Target CPU utilization percentage |
47- | config.authorization | string | ` "aws-v4" ` | Authorization type (none, aws-v2, aws-v4, aws-v2-or-v4) |
48- | config.backend.awsS3.accessKeyId | string | ` "" ` | AWS Access Key ID for backend |
49- | config.backend.awsS3.endpoint | string | ` "" ` | S3 endpoint |
50- | config.backend.awsS3.region | string | ` "" ` | AWS region |
51- | config.backend.awsS3.secretAccessKey | string | ` "" ` | AWS Secret Access Key for backend |
52- | config.backend.azureblob.account | string | ` "" ` | Storage account name |
53- | config.backend.azureblob.endpoint | string | ` "" ` | Azure endpoint |
54- | config.backend.azureblob.key | string | ` "" ` | Storage account key |
55- | config.backend.azureblob.sasToken | string | ` "" ` | SAS token |
56- | config.backend.b2.account | string | ` "" ` | B2 account ID |
57- | config.backend.b2.applicationKey | string | ` "" ` | B2 application key |
58- | config.backend.filesystem.basedir | string | ` "/data/s3proxy" ` | Base directory for filesystem backend |
59- | config.backend.googleCloudStorage.clientEmail | string | ` "" ` | Service account email |
60- | config.backend.googleCloudStorage.clientId | string | ` "" ` | Client ID |
61- | config.backend.googleCloudStorage.privateKey | string | ` "" ` | Private key |
62- | config.backend.googleCloudStorage.privateKeyId | string | ` "" ` | Private key ID |
63- | config.backend.googleCloudStorage.projectId | string | ` "" ` | GCP project ID |
64- | config.backend.provider | string | ` "filesystem-nio2" ` | Backend provider type (filesystem, filesystem-nio2, transient, transient-nio2, aws-s3, s3, azureblob, azureblob-sdk, b2, google-cloud-storage, openstack-swift, rackspace-cloudfiles-uk, rackspace-cloudfiles-us) |
65- | config.backend.swift.authUrl | string | ` "" ` | Authentication URL |
66- | config.backend.swift.password | string | ` "" ` | Password |
67- | config.backend.swift.region | string | ` "" ` | Region |
68- | config.backend.swift.tenantName | string | ` "" ` | Tenant name |
69- | config.backend.swift.userName | string | ` "" ` | Username |
47+ | config.auth.identity | string | ` "" ` | S3 Access Key ID for client authentication |
48+ | config.auth.secret | string | ` "" ` | S3 Secret Access Key for client authentication |
49+ | config.auth.type | string | ` "aws-v4" ` | Authorization type (none, aws-v2, aws-v4, aws-v2-or-v4) |
50+ | config.backends.azureblob.account | string | ` "" ` | Storage account name |
51+ | config.backends.azureblob.enabled | bool | ` false ` | Enable Azure Blob Storage backend |
52+ | config.backends.azureblob.endpoint | string | ` "" ` | Azure endpoint |
53+ | config.backends.azureblob.key | string | ` "" ` | Storage account key |
54+ | config.backends.azureblob.provider | string | ` "azureblob" ` | Provider type (azureblob or azureblob-sdk) |
55+ | config.backends.azureblob.sasToken | string | ` "" ` | SAS token |
56+ | config.backends.b2.account | string | ` "" ` | B2 account ID |
57+ | config.backends.b2.applicationKey | string | ` "" ` | B2 application key |
58+ | config.backends.b2.enabled | bool | ` false ` | Enable Backblaze B2 backend |
59+ | config.backends.filesystem.basedir | string | ` "/data/s3proxy" ` | Base directory for filesystem backend |
60+ | config.backends.filesystem.enabled | bool | ` true ` | Enable filesystem backend |
61+ | config.backends.filesystem.nio2 | bool | ` true ` | Use NIO2 implementation (filesystem-nio2) instead of standard filesystem |
62+ | config.backends.googleCloudStorage.clientEmail | string | ` "" ` | Service account email or user email (used with both privateKey and jsonCredentials methods) |
63+ | config.backends.googleCloudStorage.enabled | bool | ` false ` | Enable Google Cloud Storage backend |
64+ | config.backends.googleCloudStorage.jsonCredentials | object | ` {"enabled":false,"existingSecret":"","jsonContent":"","secretKey":"credentials.json"} ` | JSON credentials configuration |
65+ | config.backends.googleCloudStorage.jsonCredentials.enabled | bool | ` false ` | Use JSON credentials file instead of privateKey |
66+ | config.backends.googleCloudStorage.jsonCredentials.existingSecret | string | ` "" ` | Name of existing secret containing GCP credentials JSON |
67+ | config.backends.googleCloudStorage.jsonCredentials.jsonContent | string | ` "" ` | JSON content for creating a new secret (takes precedence over existingSecret) |
68+ | config.backends.googleCloudStorage.jsonCredentials.secretKey | string | ` "credentials.json" ` | Key in the secret containing the JSON credentials (default: credentials.json) |
69+ | config.backends.googleCloudStorage.privateKey | string | ` "" ` | Private key (only used when jsonCredentials.enabled is false) |
70+ | config.backends.googleCloudStorage.projectId | string | ` "" ` | GCP project ID |
71+ | config.backends.openstackSwift.authUrl | string | ` "" ` | Authentication URL |
72+ | config.backends.openstackSwift.enabled | bool | ` false ` | Enable OpenStack Swift backend |
73+ | config.backends.openstackSwift.password | string | ` "" ` | Password |
74+ | config.backends.openstackSwift.region | string | ` "" ` | Region |
75+ | config.backends.openstackSwift.tenantName | string | ` "" ` | Tenant name |
76+ | config.backends.openstackSwift.userName | string | ` "" ` | Username |
77+ | config.backends.rackspaceCloudfiles.apiKey | string | ` "" ` | API key |
78+ | config.backends.rackspaceCloudfiles.enabled | bool | ` false ` | Enable Rackspace Cloud Files backend |
79+ | config.backends.rackspaceCloudfiles.region | string | ` "us" ` | Region (uk or us) |
80+ | config.backends.rackspaceCloudfiles.userName | string | ` "" ` | Username |
81+ | config.backends.s3.accessKeyId | string | ` "" ` | S3 Access Key ID for backend |
82+ | config.backends.s3.aws | bool | ` true ` | Use AWS-specific S3 provider (aws-s3) instead of generic S3 provider |
83+ | config.backends.s3.enabled | bool | ` false ` | Enable S3 backend |
84+ | config.backends.s3.endpoint | string | ` "" ` | S3 endpoint |
85+ | config.backends.s3.region | string | ` "" ` | AWS region |
86+ | config.backends.s3.secretAccessKey | string | ` "" ` | S3 Secret Access Key for backend |
87+ | config.backends.transient.enabled | bool | ` false ` | Enable transient (in-memory) backend |
88+ | config.backends.transient.nio2 | bool | ` true ` | Use NIO2 implementation (transient-nio2) instead of standard transient |
7089| config.buckets.alias | object | ` {} ` | Map virtual bucket names to actual backend buckets |
7190| config.buckets.locator | list | ` [] ` | Assign specific buckets to different backends (glob patterns supported) |
7291| config.cors.allowCredential | bool | ` false ` | Allow credentials |
7392| config.cors.allowHeaders | list | ` ["Accept","Content-Type"] ` | Allowed headers |
7493| config.cors.allowMethods | list | ` ["GET","PUT","POST","HEAD","DELETE"] ` | Allowed methods |
7594| config.cors.allowOrigins | list | ` [] ` | Allowed origins (e.g., [ "https://example.com ", "https://.+\\ .example\\ .com"] ) |
7695| config.cors.enabled | bool | ` false ` | Enable CORS support |
77- | config.credential | string | ` "" ` | S3 Secret Access Key for client authentication |
78- | config.identity | string | ` "" ` | S3 Access Key ID for client authentication |
96+ | config.logLevel | string | ` "INFO" ` | Log level for S3Proxy (DEBUG, INFO, WARN, ERROR) |
7997| config.middlewares.eventualConsistency | bool | ` false ` | Enable eventual consistency modeling |
8098| config.middlewares.largeObjectMocking | bool | ` false ` | Enable large object mocking |
8199| config.middlewares.readOnly | bool | ` false ` | Make backend read-only |
82100| config.middlewares.shardedBackend | bool | ` false ` | Enable sharded backend containers |
83101| config.virtualHost | string | ` "" ` | Virtual Host configuration |
102+ | configMergeImage.pullPolicy | string | ` "IfNotPresent" ` | Config merge container image pull policy |
103+ | configMergeImage.repository | string | ` "busybox" ` | Config merge container image repository |
104+ | configMergeImage.tag | string | ` "1.36" ` | Config merge container image tag |
84105| extraEnvVars | list | ` [] ` | Additional environment variables |
85106| extraVolumeMounts | list | ` [] ` | Additional volume mounts |
86107| extraVolumes | list | ` [] ` | Additional volumes |
@@ -108,8 +129,8 @@ The following section lists the configurable parameters of the s3proxy chart and
108129| resources | object | ` {} ` | Resource limits and requests |
109130| securityContext | object | ` {} ` | Container security context |
110131| service.annotations | object | ` {} ` | Service annotations |
111- | service.port | int | ` 8080 ` | Service port |
112- | service.targetPort | int | ` 8080 ` | Target port (controls both the container port and S3Proxy bind port) |
132+ | service.port | int | ` 9000 ` | Service port |
133+ | service.targetPort | int | ` 9000 ` | Target port (controls both the container port and S3Proxy bind port) |
113134| service.type | string | ` "ClusterIP" ` | Kubernetes service type |
114135| serviceAccount.annotations | object | ` {} ` | Annotations to add to the service account |
115136| serviceAccount.create | bool | ` false ` | Specifies whether a service account should be created |
@@ -123,11 +144,14 @@ The following section lists the configurable parameters of the s3proxy chart and
123144``` yaml
124145# values-filesystem.yaml
125146config :
126- authorization : " aws-v4"
127- identity : " myaccesskey"
128- credential : " mysecretkey"
129- backend :
130- provider : " filesystem-nio2"
147+ auth :
148+ type : " aws-v4"
149+ identity : " myaccesskey"
150+ secret : " mysecretkey"
151+ backends :
152+ filesystem :
153+ enabled : true
154+ nio2 : true
131155 filesystem :
132156 basedir : " /data/s3proxy"
133157
@@ -146,9 +170,10 @@ helm install s3proxy-fs ./s3proxy -f values-filesystem.yaml
146170``` yaml
147171# values-aws-s3.yaml
148172config :
149- authorization : " aws-v4"
150- identity : " proxy-access-key" # For clients connecting to s3proxy
151- credential : " proxy-secret-key"
173+ auth :
174+ type : " aws-v4"
175+ identity : " proxy-access-key" # For clients connecting to s3proxy
176+ secret : " proxy-secret-key"
152177 backend :
153178 provider : " aws-s3"
154179 awsS3 :
@@ -170,9 +195,10 @@ helm install s3proxy-s3 ./s3proxy -f values-aws-s3.yaml
170195``` yaml
171196# values-azure.yaml
172197config :
173- authorization : " aws-v4"
174- identity : " myaccesskey"
175- credential : " mysecretkey"
198+ auth :
199+ type : " aws-v4"
200+ identity : " myaccesskey"
201+ secret : " mysecretkey"
176202 backend :
177203 provider : " azureblob"
178204 azureblob :
@@ -193,9 +219,10 @@ helm install s3proxy-azure ./s3proxy -f values-azure.yaml
193219``` yaml
194220# values-gcs.yaml
195221config :
196- authorization : " aws-v4"
197- identity : " myaccesskey"
198- credential : " mysecretkey"
222+ auth :
223+ type : " aws-v4"
224+ identity : " myaccesskey"
225+ secret : " mysecretkey"
199226 backend :
200227 provider : " google-cloud-storage"
201228 googleCloudStorage :
@@ -215,9 +242,12 @@ persistence:
215242` ` ` yaml
216243# values-anonymous.yaml
217244config :
218- authorization : " none"
219- backend :
220- provider : " transient-nio2" # In-memory storage
245+ auth :
246+ type : " none"
247+ backends :
248+ transient :
249+ enabled : true
250+ nio2 : true # In-memory storage
221251
222252persistence :
223253 enabled : false
@@ -333,7 +363,7 @@ This will remove all resources created by the chart. If using persistence, the P
333363
334364### Common Issues
335365
336- 1 . ** Authentication failures** : Ensure ` config.identity ` and ` config.credential ` are set correctly for client authentication.
366+ 1 . ** Authentication failures** : Ensure ` config.auth. identity ` and ` config.auth.secret ` are set correctly for client authentication.
337367
3383682 . ** Backend connection issues** : Verify backend credentials are correctly configured in the appropriate section (e.g., ` config.backend.awsS3.* ` ).
339369
0 commit comments