Skip to content

Commit 6a03d03

Browse files
authored
Merge pull request #5442 from EclipseFdn/main
Release v0.28.0
2 parents 18e5c8e + a84587e commit 6a03d03

22 files changed

+538
-246
lines changed

.github/workflows/claim-namespace.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
name: Claim Namespace
22
on:
3-
issues:
4-
types: [opened, edited, labeled]
3+
# alibi value to not show the workflow as broken
4+
workflow_dispatch:
5+
# issues:
6+
# types: [opened, edited, labeled]
57
concurrency:
68
group: ${{ github.workflow }}-${{ github.event.issue.number }}
79
cancel-in-progress: true
@@ -119,4 +121,4 @@ jobs:
119121
GH_REPO: ${{ github.repository }}
120122
NUMBER: ${{ github.event.issue.number }}
121123
LABELS: granted
122-
ASSIGNEE: tfroment
124+
ASSIGNEE: tfroment

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@
33
/generated-staging/
44
/jsonnet-generated-production/
55
/jsonnet-generated-staging/
6+
/charts/openvsx/charts

Dockerfile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
ARG SERVER_VERSION=v0.27.0
1+
ARG SERVER_VERSION=v0.28.0
22

33
# Builder image to compile the website
44
FROM ubuntu AS builder
@@ -33,7 +33,6 @@ ARG SERVER_VERSION
3333
COPY --from=builder --chown=openvsx:openvsx /workdir/website/static/ BOOT-INF/classes/static/
3434
COPY --from=builder --chown=openvsx:openvsx /workdir/configuration/application.yml config/
3535
COPY --from=builder --chown=openvsx:openvsx /workdir/configuration/logback-spring.xml BOOT-INF/classes/
36-
COPY --from=builder --chown=openvsx:openvsx /workdir/configuration/ehcache.xml BOOT-INF/classes/
3736

3837
# Replace version placeholder with arg value
3938
RUN sed -i "s/<SERVER_VERSION>/$SERVER_VERSION/g" config/application.yml

charts/openvsx/Chart.lock

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
dependencies:
2+
- name: alloy
3+
repository: https://grafana.github.io/helm-charts
4+
version: 1.1.2
5+
digest: sha256:66403884b7f293e86e2a61d0d822fd0878a6b4a64e5e88f181b93022bc4f9bcd
6+
generated: "2025-08-20T12:51:18.346537659+03:00"

charts/openvsx/Chart.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,9 @@ apiVersion: v2
22
name: openvsx
33
description: A Helm chart for Kubernetes
44
type: application
5-
version: 0.1.0
5+
version: 0.2.0
66
appVersion: "1.16.0"
7+
dependencies:
8+
- name: alloy
9+
version: 1.1.2
10+
repository: https://grafana.github.io/helm-charts
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
apiVersion: apiextensions.k8s.io/v1
2+
kind: CustomResourceDefinition
3+
metadata:
4+
name: redisclusters.open-vsx.org
5+
spec:
6+
scope: Namespaced
7+
group: open-vsx.org
8+
names:
9+
kind: RedisCluster
10+
plural: redisclusters
11+
singular: rediscluster
12+
shortNames:
13+
- rcl
14+
versions:
15+
- name: v1
16+
served: true
17+
storage: true
18+
schema:
19+
openAPIV3Schema:
20+
type: object
21+
properties:
22+
spec:
23+
type: object
24+
properties:
25+
replicas:
26+
type: integer
27+
minimum: 6
28+
maxmemory:
29+
type: string
30+
image:
31+
type: string
32+
imagePullPolicy:
33+
type: string
34+
resources:
35+
type: object
36+
properties:
37+
requests:
38+
type: object
39+
properties:
40+
memory:
41+
type: string
42+
cpu:
43+
type: string
44+
limits:
45+
type: object
46+
properties:
47+
memory:
48+
type: string
49+
cpu:
50+
type: string
51+
persistence:
52+
type: object
53+
properties:
54+
storageGi:
55+
type: number
56+
format: int32
57+
storageClass:
58+
type: string
59+
status:
60+
type: object
61+
x-kubernetes-preserve-unknown-fields: true

charts/openvsx/templates/configmap.yaml

Lines changed: 0 additions & 65 deletions
This file was deleted.

charts/openvsx/templates/deployment.yaml

Lines changed: 2 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -77,29 +77,7 @@ spec:
7777
path: /actuator/health/readiness
7878
port: http-management
7979
periodSeconds: 10
80-
- name: grafana-agent
81-
image: docker.io/grafana/agent:v0.39.1
82-
command:
83-
- /bin/grafana-agent
84-
args:
85-
- --config.file=$(CONFIG_FILE_PATH)
86-
- --metrics.wal-directory=$(DATA_FILE_PATH)
87-
- --config.expand-env=true
88-
env:
89-
- name: CONFIG_FILE_PATH
90-
value: /etc/grafana-agent/agent.yml
91-
- name: DATA_FILE_PATH
92-
value: /etc/grafana-agent/data
93-
- name: ENVNAME
94-
value: {{ .Values.environment }}
95-
envFrom:
96-
- secretRef:
97-
name: grafana-cloud-secret-{{ .Values.environment }}
98-
volumeMounts:
99-
- name: grafana-agent-config-volume
100-
mountPath: /etc/grafana-agent
101-
- name: grafana-agent-data-volume
102-
mountPath: /etc/grafana-agent/data
80+
initialDelaySeconds: 30
10381
initContainers:
10482
- command:
10583
- sh
@@ -117,7 +95,7 @@ spec:
11795
matchLabels:
11896
app: open-vsx-org
11997
environment: {{ .Values.environment }}
120-
maxSkew: 1
98+
maxSkew: 2
12199
topologyKey: kubernetes.io/hostname
122100
whenUnsatisfiable: DoNotSchedule
123101
volumes:
@@ -131,15 +109,6 @@ spec:
131109
defaultMode: 420
132110
optional: false
133111
secretName: elasticsearch-{{ .Values.environment }}-es-http-certs-internal
134-
- name: grafana-agent-config-volume
135-
configMap:
136-
name: grafana-agent-configmap-{{ .Values.environment }}
137-
items:
138-
- key: agent.yml
139-
path: agent.yml
140-
- name: grafana-agent-data-volume
141-
emptyDir:
142-
medium: Memory
143112
- name: truststore-with-elasticsearch-certs
144113
emptyDir:
145114
medium: Memory
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
apiVersion: v1
2+
kind: ConfigMap
3+
metadata:
4+
labels:
5+
app: {{ .Values.name }}
6+
environment: {{ .Values.environment }}
7+
name: {{ .Values.alloy.alloy.configMap.name }}
8+
namespace: {{ .Values.namespace }}
9+
data:
10+
{{ .Values.alloy.alloy.configMap.key }}: |
11+
logging {
12+
level = "info"
13+
format = "logfmt"
14+
}
15+
16+
prometheus.operator.servicemonitors "spring_boot" {
17+
namespaces = ["{{ .Values.namespace }}"]
18+
selector {
19+
match_labels = {
20+
app = "{{ .Values.name }}",
21+
environment = "{{ .Values.environment }}",
22+
}
23+
}
24+
25+
forward_to = [prometheus.relabel.spring_boot_relabel.receiver]
26+
}
27+
28+
prometheus.relabel "spring_boot_relabel" {
29+
rule {
30+
source_labels = ["exported_instance"]
31+
target_label = "instance"
32+
action = "replace"
33+
}
34+
35+
rule {
36+
regex = "^(exported_instance|deployment_environment|service_instance_id|service_name)$"
37+
action = "labeldrop"
38+
}
39+
40+
forward_to = [prometheus.remote_write.default.receiver]
41+
}
42+
{{- $name := .Values.redis.name }}
43+
{{- $environment := .Values.environment }}
44+
{{- range $index := until (int .Values.redis.replicas) }}
45+
46+
prometheus.exporter.redis "redis_metrics_{{ $index }}" {
47+
redis_addr = "{{ $name }}-{{ $environment }}-{{ $index }}.{{ $name }}-{{ $environment }}-service:6379"
48+
redis_user = sys.env("REDIS_METRICS_USERNAME")
49+
redis_password = sys.env("REDIS_METRICS_PASSWORD")
50+
}
51+
52+
prometheus.scrape "redis_scrape_{{ $index }}" {
53+
targets = prometheus.exporter.redis.redis_metrics_{{ $index }}.targets
54+
scrape_interval = "600s"
55+
forward_to = [prometheus.remote_write.default.receiver]
56+
}
57+
58+
{{- end }}
59+
prometheus.remote_write "default" {
60+
endpoint {
61+
name = "hosted-prometheus"
62+
url = sys.env("PROMETHEUS_URL")
63+
64+
basic_auth {
65+
username = sys.env("PROMETHEUS_USERNAME")
66+
password = sys.env("PROMETHEUS_PASSWORD")
67+
}
68+
}
69+
}
70+
71+
otelcol.receiver.zipkin "default" {
72+
endpoint = "0.0.0.0:9411"
73+
output {
74+
traces = [otelcol.processor.memory_limiter.default.input]
75+
}
76+
}
77+
78+
otelcol.processor.memory_limiter "default" {
79+
check_interval = "1s"
80+
limit = "400MiB"
81+
spike_limit = "80MiB"
82+
output {
83+
traces = [otelcol.processor.batch.default.input]
84+
}
85+
}
86+
87+
otelcol.processor.batch "default" {
88+
output {
89+
traces = [otelcol.exporter.otlp.tempo.input]
90+
}
91+
}
92+
93+
otelcol.auth.basic "tempo_auth" {
94+
username = sys.env("TEMPO_USERNAME")
95+
password = sys.env("TEMPO_PASSWORD")
96+
}
97+
98+
otelcol.exporter.otlp "tempo" {
99+
client {
100+
endpoint = sys.env("TEMPO_URL")
101+
auth = otelcol.auth.basic.tempo_auth.handler
102+
}
103+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
labels:
5+
app: {{ .Values.name }}
6+
environment: {{ .Values.environment }}
7+
name: redis-cluster-operator-{{ .Values.environment }}
8+
namespace: {{ .Values.namespace }}
9+
spec:
10+
selector:
11+
matchLabels:
12+
app: {{ .Values.name }}
13+
environment: {{ .Values.environment }}
14+
component: redis-cluster-operator
15+
template:
16+
metadata:
17+
labels:
18+
app: {{ .Values.name }}
19+
environment: {{ .Values.environment }}
20+
component: redis-cluster-operator
21+
spec:
22+
serviceAccountName: {{ .Values.redis.serviceAccountName }}
23+
containers:
24+
- name: redis-cluster-operator
25+
image: "ghcr.io/eclipsefdn/redis-cluster-operator"
26+
imagePullPolicy: Always
27+
env:
28+
- name: NAMESPACE
29+
value: {{ .Values.namespace }}
30+
- name: REDIS_USERNAME
31+
valueFrom:
32+
secretKeyRef:
33+
name: redis-secret-{{ .Values.environment }}
34+
key: REDIS_CLI_USERNAME
35+
- name: REDISCLI_AUTH
36+
valueFrom:
37+
secretKeyRef:
38+
name: redis-secret-{{ .Values.environment }}
39+
key: REDIS_CLI_PASSWORD

0 commit comments

Comments
 (0)