Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
9e3e204
updated application.yml and jenkins file to test feature branch deplo…
manpreetkaur-arch Jan 21, 2026
365d436
Merge pull request #7549 from manpreetkaur-arch/feature/test-aws-depl…
pstankie Jan 23, 2026
12d397e
Removed elastic search temporarily for aws deployment and update base…
manpreetkaur-arch Jan 26, 2026
fd4924a
Merge pull request #7676 from manpreetkaur-arch/feature/test-aws-depl…
pstankie Jan 26, 2026
9558482
disabled redis to make app run without pvc
manpreetkaur-arch Jan 28, 2026
db5abbf
disabled redis to make app run without pvc (#7726)
manpreetkaur-arch Jan 29, 2026
46214a8
disable bucket4j to avoid dependency on redis
manpreetkaur-arch Jan 29, 2026
6aaf69d
Feature/test aws deployment v1 (#7748)
manpreetkaur-arch Jan 29, 2026
ce38073
added changes required for openvsx app to run in mirror mode
manpreetkaur-arch Feb 3, 2026
27e4d5f
added changes required for openvsx app to run in mirror mode
manpreetkaur-arch Feb 3, 2026
72ed1f7
removed nginx-controller
manpreetkaur-arch Feb 4, 2026
a2b6a50
added bitnami charts install in helm deployment script
manpreetkaur-arch Feb 5, 2026
79db9fc
updated hostname for aws staging
manpreetkaur-arch Feb 5, 2026
1911e23
make dependencies conditional and added charts for alb
manpreetkaur-arch Feb 5, 2026
34b9de4
make dependencies conditional and added charts for alb
manpreetkaur-arch Feb 7, 2026
d0cb47f
Updated values yaml to include external dns deployment
manpreetkaur-arch Feb 9, 2026
2e185ce
Updated values yaml to include external dns deployment
manpreetkaur-arch Feb 10, 2026
0a6c908
disabled eks for okd prod values.yaml
manpreetkaur-arch Feb 10, 2026
50056be
added certs details for ALB
manpreetkaur-arch Feb 11, 2026
b8cbd27
renamed host for aws staging
manpreetkaur-arch Feb 16, 2026
104c380
Merge pull request #7877 from manpreetkaur-arch/feature/test-aws-depl…
pstankie Feb 24, 2026
b70facf
removed oauth config to disable publish button
manpreetkaur-arch Feb 24, 2026
ffe0233
Merge branch 'main' into feature/test-aws-mirror-deployment
manpreetkaur-arch Feb 24, 2026
30bd16f
fixed merge conflicts
manpreetkaur-arch Feb 24, 2026
72c643d
added rate limiting related configs
manpreetkaur-arch Feb 24, 2026
8d22d27
synched values yaml and fixed deployment spec for yara security context
manpreetkaur-arch Feb 24, 2026
8c9c922
updated application.yml for mirror mode
manpreetkaur-arch Feb 24, 2026
e500a58
updated application.yml for mirror mode
manpreetkaur-arch Feb 24, 2026
6df7d75
removed separate profile for mirror mode'
manpreetkaur-arch Feb 24, 2026
ba111dc
disabled yara and clamav for mirror mode deployment
manpreetkaur-arch Feb 24, 2026
4c0de70
disabled security scans
manpreetkaur-arch Feb 24, 2026
2f567f6
removed node selector for alloy
manpreetkaur-arch Feb 24, 2026
e7bf6ec
disable rate limiting for aws staging deployment
manpreetkaur-arch Feb 25, 2026
26744f2
change mirror job schedule to run every hour
manpreetkaur-arch Feb 25, 2026
fa2bdde
enabled elastic search for eks deployment
manpreetkaur-arch Feb 27, 2026
0fb0224
enabled horizontal scaling in aws based deployments
manpreetkaur-arch Mar 3, 2026
1dff73f
Removed external dns since its no longer needed for EKS ALB
manpreetkaur-arch Mar 3, 2026
7fa44a8
Removed duplicate block from ingress template
manpreetkaur-arch Mar 3, 2026
8ba9f81
Removed force conflicts flag
manpreetkaur-arch Mar 3, 2026
f030800
Updated igress to allow traffic from cloudfront only
manpreetkaur-arch Mar 4, 2026
40ea328
Updated cloudfront policy to handle cors headers for options
manpreetkaur-arch Mar 5, 2026
5b3f06e
Matched specs with prod deployment for performance testing
manpreetkaur-arch Mar 6, 2026
e3826e9
Preparing for creating a new namespace and a new aws test environment
manpreetkaur-arch Mar 6, 2026
35fd40c
Preparing for creating a new namespace and a new aws test environment
manpreetkaur-arch Mar 10, 2026
fbd6e55
Added HA for postgreql db
manpreetkaur-arch Mar 10, 2026
7732007
fine tuned db settings
manpreetkaur-arch Mar 12, 2026
003fbf6
Merge branch 'main' into feature/test-aws-mirror-deployment
manpreetkaur-arch Mar 12, 2026
2b2a9d8
fixing db crashloopbackoff
manpreetkaur-arch Mar 15, 2026
8a06f6f
fixing db crashloopbackoff
manpreetkaur-arch Mar 15, 2026
d2803ad
fixing db crashloopbackoff
manpreetkaur-arch Mar 15, 2026
6bf8809
fixing db crashloopbackoff
manpreetkaur-arch Mar 15, 2026
9c806dd
fixing db crashloopbackoff
manpreetkaur-arch Mar 15, 2026
4a3cd86
Merge branch 'main' into feature/test-aws-mirror-deployment
manpreetkaur-arch Mar 16, 2026
189da79
using postgresql directly instead of using pgpool
manpreetkaur-arch Mar 16, 2026
0488b48
Added external dns back to support the move to fastly
manpreetkaur-arch Mar 16, 2026
6dda6e8
added service monitors for postgres, kube-state and node-exporter
manpreetkaur-arch Mar 17, 2026
50f023b
Added oauth block to enable publish button
manpreetkaur-arch Mar 17, 2026
206455f
removed external dns service and added service monitors
manpreetkaur-arch Mar 21, 2026
5ce772c
Added hostname to ingress for routing
manpreetkaur-arch Mar 24, 2026
57068c7
test hpa configs
manpreetkaur-arch Mar 30, 2026
408d0cf
bumping up jetty and hikari pool configs
manpreetkaur-arch Mar 30, 2026
846fa32
bumping up jetty and hikari pool configs
manpreetkaur-arch Mar 30, 2026
f1b5c8c
bumping up jetty and hikari pool configs
manpreetkaur-arch Mar 30, 2026
c3fc6d7
identical settings to prod
manpreetkaur-arch Mar 31, 2026
cea4d04
identical settings to prod
manpreetkaur-arch Mar 31, 2026
ff55573
identical settings to prod
manpreetkaur-arch Mar 31, 2026
fd81f0b
identical settings to prod
manpreetkaur-arch Mar 31, 2026
3c150cc
identical settings to prod
manpreetkaur-arch Mar 31, 2026
2e38098
enabled non mirror mode
manpreetkaur-arch Apr 28, 2026
3489b77
Merge branch 'main' into feature/test-aws-mirror-deployment
manpreetkaur-arch Apr 28, 2026
62369bf
enabled non mirror mode
manpreetkaur-arch Apr 28, 2026
d1c7c37
enabled non mirror mode
manpreetkaur-arch Apr 28, 2026
baaa2fa
enabled non mirror mode
manpreetkaur-arch Apr 28, 2026
feb3157
enabled non mirror mode
manpreetkaur-arch Apr 28, 2026
54b1704
enabled non mirror mode
manpreetkaur-arch Apr 28, 2026
3fe657f
updated cdn to prod to fix test 404s
manpreetkaur-arch May 5, 2026
eb0c21b
updated cdn back to staging to fix test 404s
manpreetkaur-arch May 5, 2026
360af52
updated cdn to prod to fix test 404s
manpreetkaur-arch May 6, 2026
3cc96ba
updated jetty config to fix write exceptions
manpreetkaur-arch May 7, 2026
1b54b84
added hpa based on keda
manpreetkaur-arch May 8, 2026
df018ee
chore: bump to v0.34.5 and align configuration on current on-prem sta…
netomi May 12, 2026
00f5eca
fix prek warnings
netomi May 12, 2026
c27f1d5
Merge pull request #10289 from EclipseFdn/update-app
manpreetkaur-arch May 12, 2026
a835d12
updated yara and clamav pvc access modes
manpreetkaur-arch May 12, 2026
6c2e372
updated helm deploy script to fix error related to force conflicts
manpreetkaur-arch May 12, 2026
9837c89
updated alloy clustering
manpreetkaur-arch May 12, 2026
5b6edcc
updated alloy clustering
manpreetkaur-arch May 12, 2026
f8cad95
fixed prek analyse failures due to whitespace
manpreetkaur-arch May 12, 2026
d0d9a25
updated clamav deployment to have more than 1 replicas
manpreetkaur-arch May 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
ARG SERVER_VERSION=v0.34.2
ARG SERVER_VERSION_STRING=v0.34.2
ARG SERVER_VERSION=v0.34.5
ARG SERVER_VERSION_STRING=v0.34.5

# Builder image to compile the website
FROM ubuntu:24.04 AS builder
Expand Down
31 changes: 31 additions & 0 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,19 @@ pipeline {
- mountPath: "/home/default/.kube"
name: "dot-kube"
readOnly: false
- name: eks
image: eclipsefdn/aws:alpine-latest
command:
- cat
tty: true
resources:
limits:
cpu: 1
memory: 1Gi
volumeMounts:
- mountPath: "/home/default/.kube"
name: "dot-kube"
readOnly: false
- name: jnlp
resources:
limits:
Expand Down Expand Up @@ -79,6 +92,24 @@ pipeline {
}
}

stage('Deploy to EKS staging environment') {
when {
anyOf {
expression { return env.BRANCH_NAME.startsWith('feature') }
branch 'eks-main'
}
}
steps {
container('eks') {
withKubeConfig([credentialsId: 'ci-bot-eks-staging-token', serverUrl: 'https://5CF0970816FA7A7C340E6BEF8575A8D4.gr7.eu-central-1.eks.amazonaws.com']) {
sh '''
./kubernetes/helm-deploy.sh aws-staging "${IMAGE_TAG}"
'''
}
}
}
}

stage('Deploy test') {
when {
branch 'test'
Expand Down
10 changes: 8 additions & 2 deletions charts/openvsx/Chart.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,11 @@ dependencies:
- name: alloy
repository: https://grafana.github.io/helm-charts
version: 1.1.2
digest: sha256:66403884b7f293e86e2a61d0d822fd0878a6b4a64e5e88f181b93022bc4f9bcd
generated: "2025-08-20T12:51:18.346537659+03:00"
- name: postgresql-ha
repository: https://charts.bitnami.com/bitnami
version: 16.3.2
- name: aws-load-balancer-controller
repository: https://aws.github.io/eks-charts
version: 1.14.0
digest: sha256:e2c6dcf71280bba07adec1bf48d16ede03c8e30b5075a1899e460a6c393eaf16
generated: "2026-03-21T12:01:49.110601-04:00"
8 changes: 8 additions & 0 deletions charts/openvsx/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,11 @@ dependencies:
- name: alloy
version: 1.1.2
repository: https://grafana.github.io/helm-charts
- name: postgresql-ha
version: 16.3.2
repository: https://charts.bitnami.com/bitnami
condition: eks.enabled
- name: aws-load-balancer-controller
version: 1.14.0
repository: https://aws.github.io/eks-charts
condition: eks.enabled
1,412 changes: 1,412 additions & 0 deletions charts/openvsx/crds/service-monitor.yaml

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
{{- if .Values.clamav.enabled }}
apiVersion: apps/v1
kind: Deployment
kind: StatefulSet
metadata:
name: {{ .Values.clamav.name }}-{{ .Values.environment }}
namespace: {{ .Values.namespace }}
labels:
app: {{ .Values.name }}
environment: {{ .Values.environment }}
spec:
serviceName: {{ .Values.clamav.name }}-{{ .Values.environment }}
revisionHistoryLimit: 1
replicas: {{ .Values.clamav.replicas }}
selector:
matchLabels:
app: {{ .Values.name }}
environment: {{ .Values.environment }}
component: {{ .Values.clamav.name }}-{{ .Values.environment }}
strategy:
type: Recreate
template:
metadata:
labels:
app: {{ .Values.name }}
environment: {{ .Values.environment }}
component: {{ .Values.clamav.name }}-{{ .Values.environment }}
spec:
terminationGracePeriodSeconds: 10
containers:
- name: {{ .Values.clamav.name }}-{{ .Values.environment }}
image: "{{ .Values.clamav.image.repository }}:{{ .Values.clamav.image.tag }}"
Expand Down Expand Up @@ -70,9 +70,15 @@ spec:
volumes:
- name: run-dir
emptyDir: {}
- name: clamav-db
persistentVolumeClaim:
claimName: clamav-db
- name: tmp-scans
emptyDir: {}
volumeClaimTemplates:
- metadata:
name: clamav-db
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: {{ .Values.clamav.persistence.storageClass | quote }}
resources:
requests:
storage: {{ .Values.clamav.persistence.size | default "5Gi" }}
{{- end }}
2 changes: 2 additions & 0 deletions charts/openvsx/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ metadata:
spec:
progressDeadlineSeconds: 3600
revisionHistoryLimit: 1
{{- if not .Values.autoscaling.enabled }}
replicas: {{ .Values.replicaCount }}
{{- end }}
selector:
matchLabels:
app: {{ .Values.name }}
Expand Down
4 changes: 4 additions & 0 deletions charts/openvsx/templates/grafana-alloy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,10 @@ data:

{{- end }}
prometheus.remote_write "default" {
external_labels = {
cluster = sys.env("CLUSTER_NAME"),
__replica__ = sys.env("POD_NAME"),
}
endpoint {
name = "hosted-prometheus"
url = sys.env("PROMETHEUS_URL")
Expand Down
25 changes: 25 additions & 0 deletions charts/openvsx/templates/hpa-postgresql.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{{- if .Values.autoscaling.enabled }}
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: postgresql-{{ .Values.environment }}-hpa
namespace: {{ .Release.Namespace | quote }}
labels:
app.kubernetes.io/name: postgresql-ha
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: StatefulSet
# Matches your 'staging-postgresql-ha-postgresql' naming logic
name: {{ .Values.environment }}-postgresql-ha-postgresql
minReplicas: 3
maxReplicas: 9
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 60
{{- end }}
43 changes: 43 additions & 0 deletions charts/openvsx/templates/ingress.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
{{- if .Values.eks.enabled }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
labels:
app: {{ .Values.name }}
environment: {{ .Values.environment }}
name: {{ .Values.name }}-{{ .Values.environment }}
namespace: {{ .Values.namespace }}
annotations:
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/ssl-policy: ELBSecurityPolicy-TLS13-1-2-2021-06
alb.ingress.kubernetes.io/target-type: ip
alb.ingress.kubernetes.io/load-balancer-attributes: idle_timeout.timeout_seconds=60
alb.ingress.kubernetes.io/certificate-arn: {{ .Values.ingress.certArn }}
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP":80},{"HTTPS":443}]'
alb.ingress.kubernetes.io/ssl-redirect: "443"
alb.ingress.kubernetes.io/actions.forward-cors: >
{"type":"fixed-response","fixedResponseConfig":{"contentType":"text/plain","statusCode":"204"}}
alb.ingress.kubernetes.io/conditions.forward-cors: >
[{"field":"http-request-method","httpRequestMethodConfig":{"values":["OPTIONS"]}}]
alb.ingress.kubernetes.io/load-balancer-attributes: idle_timeout.timeout_seconds=60,client_keep_alive.seconds=60
spec:
ingressClassName: alb
rules:
- host: {{ .Values.host }}
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: forward-cors
port:
name: use-annotation
- path: /
pathType: Prefix
backend:
service:
name: {{ .Values.name }}-{{ .Values.environment }}
port:
number: {{ .Values.service.port }}
{{- end }}
51 changes: 51 additions & 0 deletions charts/openvsx/templates/keda-openvsx-app.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{{- if .Values.autoscaling.enabled }}
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: {{ .Values.name }}-{{ .Values.environment }}-keda
namespace: {{ .Values.namespace }}
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ .Values.name }}-{{ .Values.environment }}
minReplicaCount: {{ .Values.autoscaling.minReplicas }}
maxReplicaCount: {{ .Values.autoscaling.maxReplicas }}
pollingInterval: {{ .Values.autoscaling.pollingInterval }} # query every 30s, not 15s — reduces noise
cooldownPeriod: {{ .Values.autoscaling.cooldownPeriod }} # wait 10 mins before scaling down — let I/O settle
advanced:
horizontalPodAutoscalerConfig:
behavior:
scaleUp:
stabilizationWindowSeconds: {{ .Values.autoscaling.scaleUp.stabilizationWindowSeconds }} # sustained pressure for 3 mins before scaling up
policies:
- type: Pods
value: {{ .Values.autoscaling.scaleUp.pods }} # add max 2 pods at a time
periodSeconds: {{ .Values.autoscaling.scaleUp.periodSeconds }} # add max 2 pods every 2 mins — gradual
scaleDown:
stabilizationWindowSeconds: {{ .Values.autoscaling.scaleDown.stabilizationWindowSeconds }} # hold for 10 mins before scaling down
policies:
- type: Pods
value: {{ .Values.autoscaling.scaleDown.pods }}
periodSeconds: {{ .Values.autoscaling.scaleDown.periodSeconds }} # remove only 1 pod every 3 mins — conservative
triggers:
- type: prometheus
authenticationRef:
name: keda-prometheus-trigger-auth
metadata:
serverAddress: {{ .Values.autoscaling.prometheusUrl }} # ← add this line
authModes: "basic"
metricName: jetty_queue_utilization_sustained
query: |
avg(
avg_over_time(
(
executor_queued_tasks{environment="{{ .Values.environment }}"}
/
(executor_queued_tasks{environment="{{ .Values.environment }}"} + executor_queue_remaining_tasks{environment="{{ .Values.environment }}"})
* 100
)[5m:15s]
)
)
threshold: "70"
{{- end }}
21 changes: 21 additions & 0 deletions charts/openvsx/templates/kube-state-metrics-monitor.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{{- if .Values.eks.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: kube-state-metrics-monitor
namespace: open-vsx-org-staging
labels:
app: open-vsx-org
environment: staging
spec:
namespaceSelector:
matchNames:
- kube-state-metrics
selector:
matchLabels:
app.kubernetes.io/name: kube-state-metrics
endpoints:
- path: /metrics
interval: 60s
targetPort: 8080
{{- end }}
21 changes: 21 additions & 0 deletions charts/openvsx/templates/node-exporter-service-monitor.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{{- if .Values.eks.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: node-exporter-monitor
namespace: open-vsx-org-staging
labels:
app: open-vsx-org
environment: staging
spec:
namespaceSelector:
matchNames:
- prometheus-node-exporter
selector:
matchLabels:
app.kubernetes.io/name: prometheus-node-exporter
endpoints:
- path: /metrics
interval: 60s
targetPort: 9100
{{- end }}
2 changes: 2 additions & 0 deletions charts/openvsx/templates/route.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{{- if not .Values.eks.enabled }}
apiVersion: route.openshift.io/v1
kind: Route
metadata:
Expand Down Expand Up @@ -47,3 +48,4 @@ spec:
name: {{ .Values.name }}-{{ .Values.environment }}
weight: 100
{{- end }}
{{- end }}
15 changes: 15 additions & 0 deletions charts/openvsx/templates/trigger-auth.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{{- if .Values.autoscaling.enabled }}
apiVersion: keda.sh/v1alpha1
kind: TriggerAuthentication
metadata:
name: keda-prometheus-trigger-auth
namespace: {{ .Values.namespace }}
spec:
secretTargetRef:
- parameter: username
name: grafana-cloud-secret-{{ .Values.environment }}
key: PROMETHEUS_USERNAME
- parameter: password
name: grafana-cloud-secret-{{ .Values.environment }}
key: PROMETHEUS_PASSWORD
{{- end }}
15 changes: 8 additions & 7 deletions charts/openvsx/templates/yara-rest/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,18 @@ spec:
environment: {{ .Values.environment }}
component: {{ .Values.yara.name }}-{{ .Values.environment }}
spec:
terminationGracePeriodSeconds: 10
containers:
- name: {{ .Values.yara.name }}-{{ .Values.environment }}
image: "{{ .Values.yara.image.repository }}:{{ .Values.yara.image.tag }}"
imagePullPolicy: {{ .Values.yara.image.pullPolicy }}
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
runAsNonRoot: true
capabilities:
drop:
- ALL
ports:
- name: http
containerPort: {{ .Values.yara.service.port }}
Expand Down Expand Up @@ -71,11 +79,4 @@ spec:
claimName: yara-rules
- name: tmp-scans
emptyDir: {}
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
runAsNonRoot: true
capabilities:
drop:
- ALL
{{- end }}
Loading