DependencyTrack / DependencyTrack/helm-charts

Provide more Options for S3, e.g. inscure, path style, etc ...

Open
#397 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go Template
Stars
78
Forks
55
Avg merge
1h 57m
Merged PRs (30d)
14

Description

For file storage I use this in my local home lab cluster with the recent release of depdency track 2.0.0:

```
fileStorage:
provider: s3
s3:
endpoint: "rook-ceph-rgw-ceph-objectstore.rook-ceph.svc.cluster.local:80"
region: default
bucket: dtrack
```

That does not work and runs into a timeout exception , like this one:

```
2026-08-02T22:15:13+02:00 at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
2026-08-02T22:15:13+02:00 at org.eclipse.jetty.server.Handler$Abstract.doStart(Handler.java:545)
2026-08-02T22:15:13+02:00 at org.eclipse.jetty.server.Server.doStart(Server.java:630)
2026-08-02T22:15:13+02:00 at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:92)
2026-08-02T22:15:13+02:00 at org.dependencytrack.Application.main(Application.java:277)
2026-08-02T22:15:13+02:00 Caused by: java.lang.IllegalStateException: java.net.SocketTimeoutException: Connect timed out
2026-08-02T22:15:13+02:00 at io.minio.MinioAsyncClient.throwMinioException(MinioAsyncClient.java:3700)
2026-08-02T22:15:13+02:00 at io.minio.MinioClient.bucketExists(MinioClient.java:691)
2026-08-02T22:15:13+02:00 at org.dependencytrack.filestorage.s3.S3FileStorageProvider.requireBucketExists(S3FileStorageProvider.java:96)
2026-08-02T22:15:13+02:00 ... 22 common frames omitted
2026-08-02T22:15:13+02:00 Caused by: java.net.SocketTimeoutException: Connect timed out
2026-08-02T22:15:13+02:00 at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(Unknown Source)
2026-08-02T22:15:13+02:00 at java.base/sun.nio.ch.NioSocketImpl.connect(Unknown Source)
2026-08-02T22:15:13+02:00 at java.base/java.net.SocksSocketImpl.connect(Unknown Source)
2026-08-02T22:15:13+02:00 at java.base/java.net.Socket.connect(Unknown Source)
2026-08-02T22:15:13+02:00 at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:149)
2026-08-02T22:15:13+02:00 at okhttp3.internal.connection.ConnectPlan.connectSocket(ConnectPlan.kt:276)
2026-08-02T22:15:13+02:00 at okhttp3.internal.connection.ConnectPlan.connectTcp(ConnectPlan.kt:135)
2026-08-02T22:15:13+02:00 at okhttp3.internal.connection.FastFallbackExchangeFinder$launchTcpConnect$1.runOnce(FastFallbackExchangeFinder.kt:144)
2026-08-02T22:15:13+02:00 at okhttp3.internal.concurrent.TaskRunner$runnable$1.run(TaskRunner.kt:81)
2026-08-02T22:15:13+02:00 at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
2026-08-02T22:15:13+02:00 at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
2026-08-02T22:15:13+02:00 at java.base/java.lang.Thread.run(Unknown Source)
2026-08-02T22:15:13+02:00 2026-08-02 20:15:13,241 WARN [ContainerLifeCycle] Unable to destroy
2026-08-02T22:15:13+02:00 java.lang.IllegalStateException: STARTED
2026-08-02T22:15:13+02:00 at org.eclipse.jetty.server.Handler$Abstract.destroy(Handler.java:560)
2026-08-02T22:15:13+02:00 at org.eclipse.jetty.util.component.ContainerLifeCycle.destroy(ContainerLifeCycle.java:229)
2026-08-02T22:15:13+02:00 at org.eclipse.jetty.server.Handler$Abstract.destroy(Handler.java:561)
2026-08-02T22:15:13+02:00 at org.eclipse.jetty.server.handler.ContextHandler.lambda$destroy$0(ContextHandler.java:1207)
2026-08-02T22:15:13+02:00 at org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.run(ContextHandler.java:1726)
2026-08-02T22:15:13+02:00 at org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.run(ContextHandler.java:1713)
2026-08-02T22:15:13+02:00 at org.eclipse.jetty.server.handler.ContextHandler.destroy(ContextHandler.java:1207)
2026-08-02T22:15:13+02:00 at org.eclipse.jetty.util.component.ContainerLifeCycle.destroy(ContainerLifeCycle.java:229)
2026-08-02T22:15:13+02:00 at org.eclipse.jetty.server.Handler$Abstract.destroy(Handler.java:561)
2026-08-02T22:15:13+02:00 at org.eclipse.jetty.util.component.ContainerLifeCycle.destroy(ContainerLifeCycle.java:229)
2026-08-02T22:15:13+02:00 at org.eclipse.jetty.server.Handler$Abstract.destroy(Handler.java:561)
2026-08-02T22:15:13+02:00 at org.eclipse.jetty.util.thread.ShutdownThread.run(ShutdownThread.java:146)
```

I also have Grafana Loki installed, works without any problem with the following settings here:

```
s3:
endpoint: rook-ceph-rgw-ceph-objectstore.rook-ceph.svc.cluster.local
region: default
s3ForcePathStyle: true
insecure: true
```

So, I'd be happy to see similar options in this helm chart. There are IMHO valid scenarios to be able to disabel https or do other settings, like s3ForcePathStyle.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the Helm chart's fileStorage.s3 configuration and the S3FileStorageProvider.java call shown in the stack trace. Compare the requested s3ForcePathStyle and insecure settings with the existing chart values and templates; done means both options can be configured and the supplied Ceph endpoint works without a timeout.

Written by the indexing model from the issue text.

Assessment

Tech stack
helm, kubernetes
Domain
cloud, devops
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.