Skip to content

Commit 4d5b39e

Browse files
Add Helm chart for CDash (#2700)
Co-authored-by: William Allen <william.allen@kitware.com>
1 parent f96dfcc commit 4d5b39e

15 files changed

Lines changed: 393 additions & 0 deletions

Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,8 @@ USER 0
235235
RUN if [ "$DEVELOPMENT_BUILD" = '1' ]; then \
236236
echo "alias cdash_copy_source='rsync -r -l --exclude-from /cdash_src/.rsyncignore /cdash_src/ /cdash'" >> /etc/bash.bashrc; \
237237
echo "alias cdash_install='cdash_copy_source && bash /cdash/install.sh'" >> /etc/bash.bashrc; \
238+
# install helm
239+
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash; \
238240
else \
239241
echo "alias cdash_install='bash /cdash/install.sh'" >> /etc/bash.bashrc; \
240242
fi

helm/cdash/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
charts

helm/cdash/.helmignore

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Patterns to ignore when building packages.
2+
# This supports shell glob matching, relative path matching, and
3+
# negation (prefixed with !). Only one pattern per line.
4+
.DS_Store
5+
# Common VCS dirs
6+
.git/
7+
.gitignore
8+
.bzr/
9+
.bzrignore
10+
.hg/
11+
.hgignore
12+
.svn/
13+
# Common backup files
14+
*.swp
15+
*.bak
16+
*.tmp
17+
*.orig
18+
*~
19+
# Various IDEs
20+
.project
21+
.idea/
22+
*.tmproj
23+
.vscode/

helm/cdash/Chart.lock

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
dependencies:
2+
- name: postgresql
3+
repository: oci://registry-1.docker.io/bitnamicharts
4+
version: 16.3.5
5+
- name: minio
6+
repository: oci://registry-1.docker.io/bitnamicharts
7+
version: 14.10.3
8+
digest: sha256:be728b0964ac67526f4235f00d5548b7799ee86bc373ffaf6a57f5d7e2c0d2c5
9+
generated: "2025-01-07T12:52:24.034965764-05:00"

helm/cdash/Chart.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
apiVersion: v2
2+
name: cdash
3+
description: CDash aggregates, analyzes and displays the results of software testing processes
4+
type: application
5+
version: "0.1.0"
6+
appVersion: "3.9.0"
7+
dependencies:
8+
- name: postgresql
9+
version: "16.3.5"
10+
repository: "oci://registry-1.docker.io/bitnamicharts"
11+
condition: postgresql.enabled
12+
- name: minio
13+
version: "14.10.3"
14+
repository: "oci://registry-1.docker.io/bitnamicharts"
15+
condition: minio.enabled

helm/cdash/templates/NOTES.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
Thank you for installing CDash!
2+
3+
Your release is named: {{ .Release.Name }}.
4+
Chart version: {{ .Chart.Version }}
5+
App version: {{ .Chart.AppVersion }}.
6+
7+
Please see our values.yaml file for configuration options.
8+
9+
If you are not using an external authentication provider, please see
10+
the following documentation on how to create an initial admin user:
11+
12+
https://github.com/Kitware/CDash/blob/master/docs/docker.md#manually-adding-users

helm/cdash/templates/_helpers.tpl

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
{{/*
2+
Returns the CDash URL, ex: `http://cdash-example.local`
3+
Use https if `cdash.https` is true, otherwise use http.
4+
*/}}
5+
{{- define "cdash.url" -}}
6+
{{- if .Values.cdash.https -}}
7+
{{- printf "https://%s" $.Values.cdash.host -}}
8+
{{- else -}}
9+
{{- printf "http://%s" $.Values.cdash.host -}}
10+
{{- end -}}
11+
{{- end -}}
12+
13+
{{- define "cdash.environment" }}
14+
- name: "APP_KEY"
15+
valueFrom:
16+
secretKeyRef:
17+
name: "{{ .Release.Name }}-website"
18+
key: "APP_KEY"
19+
- name: "AWS_ACCESS_KEY_ID"
20+
valueFrom:
21+
secretKeyRef:
22+
name: "{{ .Release.Name }}-s3"
23+
key: "accesskey"
24+
- name: "AWS_BUCKET"
25+
valueFrom:
26+
secretKeyRef:
27+
name: "{{ .Release.Name }}-s3"
28+
key: "bucket"
29+
- name: "AWS_REGION"
30+
valueFrom:
31+
secretKeyRef:
32+
name: "{{ .Release.Name }}-s3"
33+
key: "region"
34+
- name: "AWS_SECRET_ACCESS_KEY"
35+
valueFrom:
36+
secretKeyRef:
37+
name: "{{ .Release.Name }}-s3"
38+
key: "secretkey"
39+
- name: "DB_CONNECTION"
40+
value: "pgsql"
41+
- name: "DB_DATABASE"
42+
valueFrom:
43+
secretKeyRef:
44+
name: "{{ .Release.Name }}-db"
45+
key: "database"
46+
- name: "DB_HOST"
47+
valueFrom:
48+
secretKeyRef:
49+
name: "{{ .Release.Name }}-db"
50+
key: "host"
51+
- name: "DB_PORT"
52+
valueFrom:
53+
secretKeyRef:
54+
name: "{{ .Release.Name }}-db"
55+
key: "port"
56+
- name: "DB_USERNAME"
57+
valueFrom:
58+
secretKeyRef:
59+
name: "{{ .Release.Name }}-db"
60+
key: "username"
61+
- name: "DB_PASSWORD"
62+
valueFrom:
63+
secretKeyRef:
64+
name: "{{ .Release.Name }}-db"
65+
key: "password"
66+
envFrom:
67+
- configMapRef:
68+
name: "{{ .Release.Name }}-website"
69+
{{- if .Values.cdash.externalSecret }}
70+
- secretRef:
71+
name: "{{ .Values.cdash.externalSecret -}}"
72+
{{ end }}
73+
{{- end }}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
kind: ConfigMap
2+
apiVersion: v1
3+
metadata:
4+
name: "{{ .Release.Name }}-website"
5+
data:
6+
FILESYSTEM_DRIVER: "s3"
7+
LOG_CHANNEL: "stderr"
8+
QUEUE_CONNECTION: "database"
9+
{{ if .Values.minio.enabled }}
10+
AWS_URL: "http://{{ .Release.Name }}-minio:9000/{{ .Release.Name }}/"
11+
AWS_ENDPOINT: "http://{{ .Release.Name }}-minio:9000"
12+
AWS_USE_PATH_STYLE_ENDPOINT: "true"
13+
{{ end }}
14+
{{- .Values.cdash.env | nindent 2 }}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
kind: Deployment
2+
apiVersion: apps/v1
3+
metadata:
4+
name: "{{ .Release.Name }}-website"
5+
labels:
6+
app: "{{ .Release.Name }}-website"
7+
spec:
8+
replicas: 1
9+
strategy:
10+
type: Recreate
11+
selector:
12+
matchLabels:
13+
app: "{{ .Release.Name }}-website"
14+
template:
15+
metadata:
16+
labels:
17+
app: "{{ .Release.Name }}-website"
18+
spec:
19+
serviceAccountName: {{ .Values.cdash.serviceAccountName | quote }}
20+
containers:
21+
- name: "{{ .Release.Name }}-website"
22+
image: {{ .Values.cdash.image | quote }}
23+
resources:
24+
{{ toYaml .Values.cdash.website.resources | nindent 12 }}
25+
command: [ "/bin/bash", "/cdash/docker/docker-entrypoint.sh" ]
26+
args: [ "start-website" ]
27+
env:
28+
- name: "APP_URL"
29+
value: {{ template "cdash.url" . }}
30+
{{ template "cdash.environment" . }}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
kind: Ingress
2+
apiVersion: networking.k8s.io/v1
3+
metadata:
4+
name: {{ .Release.Name }}-website
5+
labels:
6+
app: {{ .Release.Name }}-website
7+
spec:
8+
ingressClassName: nginx
9+
{{ if .Values.cdash.https }}
10+
tls:
11+
- secretName: "{{ .Release.Name }}-tls"
12+
{{ end }}
13+
rules:
14+
- host: {{ .Values.cdash.host }}
15+
http:
16+
paths:
17+
- backend:
18+
service:
19+
name: {{ .Release.Name }}-website
20+
port:
21+
number: 8080
22+
path: /
23+
pathType: ImplementationSpecific

0 commit comments

Comments
 (0)