Skip to content

Commit 3ed29b4

Browse files
committed
feat: add app of apps chart
1 parent 72b8d37 commit 3ed29b4

10 files changed

Lines changed: 267 additions & 0 deletions

File tree

kubernetes/apps/Chart.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
apiVersion: v2
3+
name: homelab-apps
4+
description: App of Apps. Renders one ArgoCD Application per stack.
5+
type: application
6+
version: 0.1.0
7+

kubernetes/apps/templates/ai.yaml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{{- if .Values.stacks.ai.enabled }}
2+
---
3+
apiVersion: argoproj.io/v1alpha1
4+
kind: Application
5+
metadata:
6+
name: ai-stack
7+
namespace: argocd-system
8+
finalizers:
9+
- resources-finalizer.argocd.argoproj.io
10+
spec:
11+
project: default
12+
source:
13+
repoURL: {{ .Values.repoURL | quote }}
14+
targetRevision: {{ .Values.targetRevision }}
15+
path: kubernetes/stacks/ai
16+
helm:
17+
parameters:
18+
- name: domain
19+
value: {{ .Values.domain | quote }}
20+
{{- with .Values.stacks.ai.values }}
21+
values: |
22+
{{ toYaml . | indent 8 }}
23+
{{- end }}
24+
destination:
25+
server: https://kubernetes.default.svc
26+
namespace: argocd-system
27+
syncPolicy:
28+
automated:
29+
prune: true
30+
selfHeal: true
31+
{{- end }}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{{- if .Values.stacks.apps.enabled }}
2+
---
3+
apiVersion: argoproj.io/v1alpha1
4+
kind: Application
5+
metadata:
6+
name: apps-stack
7+
namespace: argocd-system
8+
finalizers:
9+
- resources-finalizer.argocd.argoproj.io
10+
spec:
11+
project: default
12+
source:
13+
repoURL: {{ .Values.repoURL | quote }}
14+
targetRevision: {{ .Values.targetRevision }}
15+
path: kubernetes/stacks/apps
16+
helm:
17+
parameters:
18+
- name: domain
19+
value: {{ .Values.domain | quote }}
20+
destination:
21+
server: https://kubernetes.default.svc
22+
namespace: argocd-system
23+
syncPolicy:
24+
automated:
25+
prune: true
26+
selfHeal: true
27+
{{- end }}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{{- if .Values.stacks.home.enabled }}
2+
---
3+
apiVersion: argoproj.io/v1alpha1
4+
kind: Application
5+
metadata:
6+
name: home-stack
7+
namespace: argocd-system
8+
finalizers:
9+
- resources-finalizer.argocd.argoproj.io
10+
spec:
11+
project: default
12+
source:
13+
repoURL: {{ .Values.repoURL | quote }}
14+
targetRevision: {{ .Values.targetRevision }}
15+
path: kubernetes/stacks/home
16+
helm:
17+
parameters:
18+
- name: domain
19+
value: {{ .Values.domain | quote }}
20+
destination:
21+
server: https://kubernetes.default.svc
22+
namespace: argocd-system
23+
syncPolicy:
24+
automated:
25+
prune: true
26+
selfHeal: true
27+
{{- end }}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
{{- if .Values.stacks.infra.enabled }}
2+
---
3+
apiVersion: argoproj.io/v1alpha1
4+
kind: Application
5+
metadata:
6+
name: infra-stack
7+
namespace: argocd-system
8+
finalizers:
9+
- resources-finalizer.argocd.argoproj.io
10+
spec:
11+
project: default
12+
source:
13+
repoURL: {{ .Values.repoURL | quote }}
14+
targetRevision: {{ .Values.targetRevision }}
15+
path: kubernetes/stacks/infra
16+
helm:
17+
parameters:
18+
- name: domain
19+
value: {{ .Values.domain | quote }}
20+
- name: certmanager.cloudflare.email
21+
value: {{ .Values.stacks.infra.certmanager.cloudflare.email | quote }}
22+
- name: externalDns.rfc2136.host
23+
value: {{ .Values.stacks.infra.externalDns.rfc2136.host | quote }}
24+
- name: externalDns.rfc2136.port
25+
value: {{ .Values.stacks.infra.externalDns.rfc2136.port | quote }}
26+
- name: externalDns.rfc2136.zone
27+
value: {{ .Values.stacks.infra.externalDns.rfc2136.zone | quote }}
28+
- name: externalDns.rfc2136.tsigSecretAlg
29+
value: {{ .Values.stacks.infra.externalDns.rfc2136.tsigSecretAlg | quote }}
30+
- name: externalDns.rfc2136.tsigKeyname
31+
value: {{ .Values.stacks.infra.externalDns.rfc2136.tsigKeyname | quote }}
32+
- name: externalDns.ingressClass
33+
value: {{ .Values.stacks.infra.externalDns.ingressClass | quote }}
34+
destination:
35+
server: https://kubernetes.default.svc
36+
namespace: argocd-system
37+
syncPolicy:
38+
automated:
39+
prune: true
40+
selfHeal: true
41+
{{- end }}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{{- if .Values.stacks.media.enabled }}
2+
---
3+
apiVersion: argoproj.io/v1alpha1
4+
kind: Application
5+
metadata:
6+
name: media-stack
7+
namespace: argocd-system
8+
finalizers:
9+
- resources-finalizer.argocd.argoproj.io
10+
spec:
11+
project: default
12+
source:
13+
repoURL: {{ .Values.repoURL | quote }}
14+
targetRevision: {{ .Values.targetRevision }}
15+
path: kubernetes/stacks/media
16+
helm:
17+
parameters:
18+
- name: domain
19+
value: {{ .Values.domain | quote }}
20+
destination:
21+
server: https://kubernetes.default.svc
22+
namespace: argocd-system
23+
syncPolicy:
24+
automated:
25+
prune: true
26+
selfHeal: true
27+
{{- end }}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{{- if .Values.stacks.networking.enabled }}
2+
---
3+
apiVersion: argoproj.io/v1alpha1
4+
kind: Application
5+
metadata:
6+
name: networking-stack
7+
namespace: argocd-system
8+
finalizers:
9+
- resources-finalizer.argocd.argoproj.io
10+
spec:
11+
project: default
12+
source:
13+
repoURL: {{ .Values.repoURL | quote }}
14+
targetRevision: {{ .Values.targetRevision }}
15+
path: kubernetes/stacks/networking
16+
helm:
17+
parameters:
18+
- name: domain
19+
value: {{ .Values.domain | quote }}
20+
destination:
21+
server: https://kubernetes.default.svc
22+
namespace: argocd-system
23+
syncPolicy:
24+
automated:
25+
prune: true
26+
selfHeal: true
27+
{{- end }}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{{- if .Values.stacks.observability.enabled }}
2+
---
3+
apiVersion: argoproj.io/v1alpha1
4+
kind: Application
5+
metadata:
6+
name: observability-stack
7+
namespace: argocd-system
8+
finalizers:
9+
- resources-finalizer.argocd.argoproj.io
10+
spec:
11+
project: default
12+
source:
13+
repoURL: {{ .Values.repoURL | quote }}
14+
targetRevision: {{ .Values.targetRevision }}
15+
path: kubernetes/stacks/observability
16+
helm:
17+
parameters:
18+
- name: domain
19+
value: {{ .Values.domain | quote }}
20+
destination:
21+
server: https://kubernetes.default.svc
22+
namespace: argocd-system
23+
syncPolicy:
24+
automated:
25+
prune: true
26+
selfHeal: true
27+
{{- end }}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{{- if .Values.stacks.storage.enabled }}
2+
---
3+
apiVersion: argoproj.io/v1alpha1
4+
kind: Application
5+
metadata:
6+
name: storage-stack
7+
namespace: argocd-system
8+
finalizers:
9+
- resources-finalizer.argocd.argoproj.io
10+
spec:
11+
project: default
12+
source:
13+
repoURL: {{ .Values.repoURL | quote }}
14+
targetRevision: {{ .Values.targetRevision }}
15+
path: kubernetes/stacks/storage
16+
helm:
17+
parameters:
18+
- name: domain
19+
value: {{ .Values.domain | quote }}
20+
destination:
21+
server: https://kubernetes.default.svc
22+
namespace: argocd-system
23+
syncPolicy:
24+
automated:
25+
prune: true
26+
selfHeal: true
27+
{{- end }}

kubernetes/apps/values.yaml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# yamllint disable rule:braces
2+
---
3+
repoURL: "https://github.com/inputobject2/homelab.git"
4+
targetRevision: main
5+
domain: "example.com"
6+
7+
stacks:
8+
infra:
9+
enabled: true
10+
storage:
11+
enabled: true
12+
networking:
13+
enabled: true
14+
observability:
15+
enabled: true
16+
ai:
17+
enabled: true
18+
values:
19+
openWebui:
20+
subdomain: chat
21+
media:
22+
enabled: true
23+
home:
24+
enabled: true
25+
apps:
26+
enabled: true

0 commit comments

Comments
 (0)