Skip to content

Commit 30cbb0f

Browse files
authored
Create Helm chart for Keeptrack (#50)
* Update cow-demo * Add keeptrack chart * Validate chart * Update todoblazor app * Use secrets for firebase config * Add missing element in values * Fix typo
1 parent c8a636d commit 30cbb0f

21 files changed

Lines changed: 623 additions & 64 deletions

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# local downloaded chart compressed files
1+
# local downloaded chart compressed files
22
/**/charts/*.tgz
33

44
# local temporary files
@@ -8,6 +8,10 @@ temp.sh
88
values_*.y*ml
99
values.mine.y*ml
1010

11+
# secret files
12+
kubeconfig
13+
firebase-service-account.json
14+
1115
# NPM packages
1216
node_modules/
1317

charts/cow-demo/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
apiVersion: v2
1+
apiVersion: v2
22
name: cow-demo
33
description: Helm chart for Cow Demo Application
44
type: application
5-
version: 0.2.2
5+
version: 0.2.3
66
appVersion: "2.0.0"
77
maintainers:
88
- name: devpro

charts/cow-demo/values.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
name: cow-demo
1+
name: cow-demo
22
image: devprofr/cow-demo
3-
tag: 1.0.8830193847
3+
# images are hosted on DockerHub: https://hub.docker.com/r/devprofr/cow-demo/tags
4+
tag: 1.0.23271988100
45
replicaCount: 2
56
port: 80
67
ingress:

charts/keeptrack/.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/

charts/keeptrack/CONTRIBUTING.md

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
# Contribution guide
2+
3+
## Update chart dependencies
4+
5+
1. Add Bitnami chart repository:
6+
7+
```bash
8+
helm repo add bitnami https://charts.bitnami.com/bitnami
9+
helm repo update
10+
```
11+
12+
2. Search for the latest version:
13+
14+
```bash
15+
helm search repo -l bitnami/mongodb --versions
16+
```
17+
18+
3. Edit manually `Chart.yaml` with the new version
19+
20+
4. Update `Chart.lock`:
21+
22+
```bash
23+
helm dependency update
24+
```
25+
26+
## Validate on a test cluster
27+
28+
Create the namespace and secrets:
29+
30+
```bash
31+
kubectl create ns demo
32+
kubectl create secret generic keeptrack-mongodb \
33+
--from-literal=mongodb-root-password='admin' \
34+
--namespace demo
35+
kubectl create secret generic keeptrack-app \
36+
--from-literal=connectionstring='mongodb://root:admin@keeptrack-mongodb:27017/keeptrack?authSource=admin' \
37+
--from-literal=firebaseapikey='***' \
38+
--from-literal=firebaseauthdomain='***' \
39+
--from-literal=firebaseprojectid='***' \
40+
--from-literal=firebaseauthority='***' \
41+
--from-file=firebaseserviceaccount=./firebase-service-account.json \
42+
--namespace demo
43+
```
44+
45+
Create a `values.mine.yaml` file:
46+
47+
```yaml
48+
blazorapp:
49+
host: keeptrack.console.$SANDBOX_ID.instruqt.io
50+
51+
webapi:
52+
db:
53+
connectionStringSecretKeyRef:
54+
name: keeptrack-app
55+
key: connectionstring
56+
57+
firebase:
58+
auth:
59+
authoritySecretKeyRef:
60+
name: keeptrack-app
61+
key: firebaseauthority
62+
webApp:
63+
apiKeySecretKeyRef:
64+
name: keeptrack-app
65+
key: firebaseapikey
66+
authDomainSecretKeyRef:
67+
name: keeptrack-app
68+
key: firebaseauthdomain
69+
projectIdSecretKeyRef:
70+
name: keeptrack-app
71+
key: firebaseprojectid
72+
serviceAccountSecretKeyRef:
73+
name: keeptrack-app
74+
key: firebaseserviceaccount
75+
76+
ingress:
77+
enabled: true
78+
className: traefik
79+
annotations:
80+
cert-manager.io/cluster-issuer: letsencrypt-prod
81+
82+
mongodb:
83+
enabled: true
84+
auth:
85+
existingSecret: keeptrack-mongodb
86+
```
87+
88+
Review the manifest:
89+
90+
```bash
91+
helm template keeptrack . -f values.yaml -f values.mine.yaml --namespace demo --debug > temp.yaml
92+
```
93+
94+
Install or update the application:
95+
96+
```bash
97+
helm upgrade --install keeptrack . -f values.yaml -f values.mine.yaml --namespace demo --create-namespace
98+
```
99+
100+
Check everything is ok:
101+
102+
```bash
103+
kubectl get all -n demo
104+
```
105+
106+
Add `keeptrack.console.$SANDBOX_ID.instruqt.io` in the authorized domains in Firebase > (myproject) > Authentication > Settings.
107+
108+
Open the web application in a browser.
109+
110+
At the end, clean everything:
111+
112+
```bash
113+
helm delete keeptrack -n demo
114+
kubectl delete ns demo
115+
```

charts/keeptrack/Chart.lock

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
dependencies:
2+
- name: mongodb
3+
repository: https://charts.bitnami.com/bitnami
4+
version: 18.6.16
5+
digest: sha256:889cbf07e49e630d28dc8a1c72fdd0465f3f0f0c1601b3be559940108bb50ab2
6+
generated: "2026-03-19T17:02:27.786367209+01:00"

charts/keeptrack/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: keeptrack
3+
description: Helm chart for Keeptrack
4+
type: application
5+
version: 0.1.0
6+
appVersion: "1.1.18203306613"
7+
dependencies:
8+
- name: mongodb
9+
version: 18.6.16 # MongoDB 8.2.6
10+
repository: https://charts.bitnami.com/bitnami
11+
alias: mongodb
12+
condition: mongodb.enabled
13+
maintainers:
14+
- name: devpro
15+
email: bertrand@devpro.fr

charts/keeptrack/README.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Helm chart for Devpro Keeptrack
2+
3+
This is the official Helm chart to install [Keeptrack](https://github.com/devpro/keeptrack) on a Kubernetes cluster.
4+
5+
## Getting started
6+
7+
Start with the [documentation](https://kwt.devpro.fr/custom-charts/keeptrack.html).
8+
9+
## Usage
10+
11+
Add [Helm](https://helm.sh) repository:
12+
13+
```bash
14+
helm repo add devpro https://devpro.github.io/helm-charts
15+
helm repo update
16+
```
17+
18+
Create the `values.yaml` file to override [default values](values.yaml).
19+
20+
Install the application:
21+
22+
```bash
23+
helm upgrade --install keeptrack devpro/keeptrack -f values.yaml --create-namespace --namespace keeptrack
24+
```
25+
26+
Uninstall the chart and clean-up the cluster:
27+
28+
```bash
29+
helm delete keeptrack
30+
kubectl delete ns keeptrack
31+
```
32+
33+
## Development
34+
35+
Look at the [Contributing guide](CONTRIBUTING.md).

charts/keeptrack/templates/NOTES.txt

Whitespace-only changes.

charts/keeptrack/templates/_helpers.tpl

Whitespace-only changes.

0 commit comments

Comments
 (0)