Skip to content

Commit c0099b3

Browse files
Merge pull request #23 from ls1intum/add-dependency-cache
first implementation of reposilite
2 parents c0887e0 + 0ee5876 commit c0099b3

File tree

6 files changed

+115
-1
lines changed

6 files changed

+115
-1
lines changed

chart/Chart.lock

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
dependencies:
2+
- name: reposilite
3+
repository: https://helm.reposilite.com/
4+
version: 1.3.25
5+
digest: sha256:00aabce842d13a82c895572481eb7f4155503c975a481e8dd6a6937aedf4068e
6+
generated: "2026-02-08T22:06:27.167542+01:00"

chart/Chart.yaml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,13 @@ description: A Gradle Build Cache server with MinIO backend for Theia IDE deploy
55
type: application
66

77
# Chart version - bump for breaking changes
8-
version: 0.2.2
8+
version: 0.2.3
99

1010
# Application version - matches the cache server version
1111
appVersion: "0.1.0"
12+
13+
dependencies:
14+
- name: reposilite
15+
version: "1.3.25"
16+
repository: "https://helm.reposilite.com/"
17+
condition: reposilite.enabled

chart/charts/reposilite-1.3.25.tgz

4.93 KB
Binary file not shown.

chart/templates/NOTES.txt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,27 @@ Gradle Build Cache has been deployed!
4040
Gradle Build Cache is disabled (enabled: false).
4141
No resources have been deployed.
4242
{{- end }}
43+
44+
{{- if .Values.reposilite.enabled }}
45+
46+
6. Reposilite (Maven/Gradle Dependency Proxy):
47+
48+
Internal URL: http://{{ .Release.Name }}-reposilite:8080
49+
50+
Port-forward to access the Reposilite dashboard:
51+
52+
kubectl --namespace {{ .Release.Namespace }} port-forward svc/{{ .Release.Name }}-reposilite 8081:8080
53+
54+
Then open http://localhost:8081
55+
Token: admin:changeme
56+
57+
Maven repository URL (for Gradle):
58+
http://{{ .Release.Name }}-reposilite:8080/releases
59+
60+
7. Theia Pod Configuration:
61+
62+
Set these environment variables in your Theia pods:
63+
64+
GRADLE_CACHE_URL=http://{{ .Release.Name }}-cache:8080/cache/
65+
GRADLE_REPO_URL=http://{{ .Release.Name }}-reposilite:8080/releases
66+
{{- end }}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
{{- if .Values.reposilite.enabled }}
2+
apiVersion: v1
3+
kind: ConfigMap
4+
metadata:
5+
name: reposilite-shared-config
6+
labels:
7+
app: {{ .Release.Name }}
8+
component: reposilite
9+
data:
10+
configuration.shared.json: |
11+
{
12+
"maven": {
13+
"repositories": {
14+
"releases": {
15+
"visibility": "PUBLIC",
16+
"redeployment": false,
17+
"preserved": true,
18+
"storageProvider": {
19+
"type": "fs",
20+
"quota": "100%",
21+
"mount": ""
22+
},
23+
"proxied": [
24+
{
25+
"link": "https://repo1.maven.org/maven2",
26+
"store": true,
27+
"allowedGroups": [],
28+
"allowedExtensions": [".jar", ".war", ".xml", ".pom", ".module", ".asc", ".md5", ".sha1", ".sha256", ".sha512"]
29+
},
30+
{
31+
"link": "https://plugins.gradle.org/m2",
32+
"store": true,
33+
"allowedGroups": [],
34+
"allowedExtensions": [".jar", ".war", ".xml", ".pom", ".module", ".asc", ".md5", ".sha1", ".sha256", ".sha512"]
35+
}
36+
]
37+
}
38+
}
39+
}
40+
}
41+
{{- end }}

chart/values.yaml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,40 @@ tls:
4646
enabled: false
4747
# TLS secret name (if TLS is enabled)
4848
secretName: ""
49+
50+
# Reposilite - Maven/Gradle dependency proxy
51+
reposilite:
52+
enabled: true
53+
54+
# Persistence for cached artifacts (stored on Ceph)
55+
persistence:
56+
enabled: true
57+
size: 20Gi
58+
storageClass: "csi-rbd-sc"
59+
60+
# Resource limits (Reposilite is lightweight - ~20-30MB RAM)
61+
resources:
62+
requests:
63+
memory: "128Mi"
64+
cpu: "100m"
65+
limits:
66+
memory: "256Mi"
67+
cpu: "500m"
68+
69+
# JVM and Reposilite startup settings
70+
env:
71+
- name: JAVA_OPTS
72+
value: "-Xmx128M"
73+
- name: REPOSILITE_OPTS
74+
value: "--token admin:changeme --shared-configuration=/app/data/configuration.shared.json"
75+
76+
# Mount shared configuration into Reposilite pod
77+
deployment:
78+
additionalVolumes:
79+
- name: shared-config
80+
configMap:
81+
name: reposilite-shared-config
82+
additionalVolumeMounts:
83+
- name: shared-config
84+
mountPath: /app/data/configuration.shared.json
85+
subPath: configuration.shared.json

0 commit comments

Comments
 (0)