Skip to content

Commit de97b13

Browse files
committed
Add Vikunja application resources including HelmRelease, HTTPRoute, and Namespace
1 parent b0a61a6 commit de97b13

File tree

9 files changed

+158
-2
lines changed

9 files changed

+158
-2
lines changed

ToDeploy.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@
66
- [X] XWiki
77
- [X] OpenWebUI
88
- [X] stakater
9+
- [ ] BookStack
10+
- [ ] https://github.com/owncloud/helm-charts
11+
- [ ] n8n task runners https://docs.n8n.io/hosting/configuration/task-runners/#external-mode
12+
- [ ] https://go-vikunja.github.io/helm-chart/
913
- [ ] https://goauthentik.io
1014
- [ ] https://github.com/openSUSE/osem/blob/master/INSTALL.md
1115
- [X] Keycloak

gitops/apps/kustomization.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,5 @@ resources:
1616
- openclaw
1717
- openwebui
1818
- xwiki
19-
- coder
19+
- coder
20+
- vikunja
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
apiVersion: kustomize.config.k8s.io/v1beta1
3+
kind: Kustomization
4+
resources:
5+
- namespace.yaml
6+
- vikunja-helmrepo.yaml
7+
- vikunja-db-helmrelease.yaml
8+
- vikunja-helmrelease.yaml
9+
- vikunja-httproute.yaml

gitops/apps/vikunja/namespace.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
apiVersion: v1
3+
kind: Namespace
4+
metadata:
5+
name: vikunja
6+
labels:
7+
name: vikunja
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
---
2+
apiVersion: helm.toolkit.fluxcd.io/v2
3+
kind: HelmRelease
4+
metadata:
5+
name: vikunja-database
6+
namespace: flux-system
7+
labels:
8+
app: vikunja
9+
spec:
10+
interval: 10m
11+
timeout: 5m
12+
targetNamespace: vikunja
13+
chart:
14+
spec:
15+
chart: cluster
16+
version: ">=0.0.10"
17+
sourceRef:
18+
kind: HelmRepository
19+
name: cnpg
20+
namespace: flux-system
21+
interval: 1m
22+
install:
23+
createNamespace: true
24+
remediation:
25+
retries: 3
26+
upgrade:
27+
remediation:
28+
retries: 3
29+
dependsOn:
30+
- name: cnpg
31+
namespace: flux-system
32+
values:
33+
type: postgresql
34+
mode: standalone
35+
version:
36+
postgresql: "18"
37+
cluster:
38+
instances: 1
39+
initdb:
40+
database: vikunja
41+
encoding: UTF8
42+
localeCType: C
43+
localeCollate: C
44+
owner: vikunja
45+
backups:
46+
enabled: false
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
---
2+
apiVersion: helm.toolkit.fluxcd.io/v2
3+
kind: HelmRelease
4+
metadata:
5+
name: vikunja
6+
namespace: flux-system
7+
labels:
8+
app: vikunja
9+
spec:
10+
interval: 10m
11+
timeout: 5m
12+
targetNamespace: vikunja
13+
chart:
14+
spec:
15+
chart: vikunja
16+
sourceRef:
17+
kind: HelmRepository
18+
name: vikunja
19+
namespace: flux-system
20+
interval: 5m0s
21+
install:
22+
createNamespace: true
23+
remediation:
24+
retries: 3
25+
upgrade:
26+
remediation:
27+
retries: 3
28+
values:
29+
vikunja:
30+
env:
31+
# To utilize a secret in the environment variables, you can do something like the following: https://github.com/bjw-s/helm-charts/blob/a081de53024d8328d1ae9ff7e4f6bc500b0f3a29/charts/library/common/values.yaml#L141-L145
32+
# You can use PostgreSQL, MySQL, or SQLite. SQLite is the default for simplicity.
33+
# https://vikunja.io/docs/config-options
34+
VIKUNJA_DATABASE_TYPE: "postgres"
35+
VIKUNJA_DATABASE_HOST: "vikunja-postgres"
36+
VIKUNJA_DATABASE_USER: "vikunja"
37+
VIKUNJA_DATABASE_PASSWORD:
38+
valueFrom:
39+
secretKeyRef:
40+
name: secret-name
41+
key: key-name
42+
43+
44+
ingress:
45+
main:
46+
enabled: false
47+
database:
48+
type: postgres
49+
host: <your-postgres-host>
50+
user: vikunja
51+
password: changeme
52+
database: vikunja
53+
mailer:
54+
enabled: true
55+
host: "smtp.gmail.com"
56+
port: 587
57+
username: "alessandro@kubespaces.io"
58+
password: "ddsada"
59+
fromemail: "alessandro@kubespaces.io"
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
apiVersion: source.toolkit.fluxcd.io/v1
3+
kind: HelmRepository
4+
metadata:
5+
name: vikunja
6+
namespace: flux-system
7+
spec:
8+
interval: 1h
9+
url: https://go-vikunja.github.io/helm-chart/
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
apiVersion: gateway.networking.k8s.io/v1
3+
kind: HTTPRoute
4+
metadata:
5+
name: vikunja
6+
namespace: vikunja
7+
spec:
8+
parentRefs:
9+
- name: gateway
10+
namespace: istio-system
11+
sectionName: http # listener name on the Gateway
12+
hostnames:
13+
- "todo.vps.kubespaces.cloud" # Change this to your actual domain
14+
rules:
15+
- matches:
16+
- path:
17+
type: PathPrefix
18+
value: /
19+
backendRefs:
20+
- name: vikunja-vikunja
21+
port: 80

ingress/traefik/dynamic.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ http:
1616
routers:
1717
# HTTPS routers for all domains
1818
backend:
19-
rule: "Host(`registry.vps.kubespaces.cloud`) || Host(`coder.vps.kubespaces.cloud`) || Host(`chat.vps.kubespaces.cloud`) || Host(`talks.vps.kubespaces.cloud`) || Host(`next.vps.kubespaces.cloud`) || Host(`wiki.vps.kubespaces.cloud`) || Host(`claw.vps.kubespaces.cloud`) || Host(`supabase.vps.kubespaces.cloud`) || Host(`auth.vps.kubespaces.cloud`) || Host(`actual.vps.kubespaces.cloud`) || Host(`nginx.vps.kubespaces.cloud`) || Host(`registry.vps.kubespaces.cloud`) || Host(`grafana.vps.kubespaces.cloud`) || Host(`dash.vps.kubespaces.cloud`) || Host(`n8n.vps.kubespaces.cloud`) || Host(`s3.vps.kubespaces.cloud`) || Host(`code.vps.kubespaces.cloud`) || Host(`minecraft.vps.kubespaces.cloud`) || Host(`echo.vps.kubespaces.cloud`) || Host(`webhook.vps.kubespaces.cloud`) || Host(`helix.vps.kubespaces.cloud`) || Host(`rancher.vps.kubespaces.cloud`)"
19+
rule: "Host(`todo.vps.kubespaces.cloud`) || Host(`registry.vps.kubespaces.cloud`) || Host(`coder.vps.kubespaces.cloud`) || Host(`chat.vps.kubespaces.cloud`) || Host(`talks.vps.kubespaces.cloud`) || Host(`next.vps.kubespaces.cloud`) || Host(`wiki.vps.kubespaces.cloud`) || Host(`claw.vps.kubespaces.cloud`) || Host(`supabase.vps.kubespaces.cloud`) || Host(`auth.vps.kubespaces.cloud`) || Host(`actual.vps.kubespaces.cloud`) || Host(`nginx.vps.kubespaces.cloud`) || Host(`registry.vps.kubespaces.cloud`) || Host(`grafana.vps.kubespaces.cloud`) || Host(`dash.vps.kubespaces.cloud`) || Host(`n8n.vps.kubespaces.cloud`) || Host(`s3.vps.kubespaces.cloud`) || Host(`code.vps.kubespaces.cloud`) || Host(`minecraft.vps.kubespaces.cloud`) || Host(`echo.vps.kubespaces.cloud`) || Host(`webhook.vps.kubespaces.cloud`) || Host(`helix.vps.kubespaces.cloud`) || Host(`rancher.vps.kubespaces.cloud`)"
2020
entryPoints:
2121
- websecure
2222
service: backend-service

0 commit comments

Comments
 (0)