Compare commits
73 Commits
a524413fc3
...
renovate/d
Author | SHA1 | Date | |
---|---|---|---|
796b200fef | |||
7a98df9a95 | |||
b8e03a0300 | |||
7021eddaf9 | |||
5f66d1ed9c | |||
83ecf04690 | |||
d6d1eca8b9 | |||
d6552712a7 | |||
be04581b38 | |||
8164550515 | |||
271c02ae19 | |||
35fecb4f49 | |||
c29812bc12 | |||
2c557e567a | |||
2e078b68fe | |||
989edb4da2 | |||
0b8a725360 | |||
3ebec1dfcc | |||
19e7cf8fc5 | |||
c55a142946 | |||
fbe4a2ba05 | |||
7fbabb7e9a | |||
d4cbabf15a | |||
a10b70206d | |||
f038453389 | |||
2d5c52e91a | |||
244d897b9c | |||
71815928a1 | |||
e11f68f69a | |||
8fb4642c62 | |||
b82731ddaf | |||
9229e02482 | |||
00bc237aeb | |||
742a30cd0c | |||
48dc85476e | |||
2917e73559 | |||
18c05d49ff | |||
1c3fdde1dd | |||
4582b19aaf | |||
fe46e81fd9 | |||
3064d4ec7a | |||
3aa05f3e30 | |||
a2cff0bf55 | |||
b54b6b0f60 | |||
e98d7330f1 | |||
08ed1eafa6 | |||
71d881830f | |||
18790396bd | |||
82fbc99fd0 | |||
2e88ded94d | |||
6251c63353 | |||
a62f8b93ea | |||
86d192d66e | |||
2dc36ce24e | |||
522922ff94 | |||
3d06570212 | |||
9c212b9dae | |||
819a21021c | |||
7f41a6590a | |||
1bf165bb4a | |||
a2228fce9a | |||
a26d8d5ef9 | |||
095f3f3f33 | |||
7110deb289 | |||
e6ec48aefa | |||
6eb16c0d2c | |||
4866c23d6b | |||
3ac6cd55c4 | |||
ea7fc46f58 | |||
e41c4058d7 | |||
2acd118941 | |||
7f1d5a4ebe | |||
88d48b8b5f |
11
README.md
11
README.md
@@ -1,7 +1,7 @@
|
|||||||
# Kluster setup and IaaC using argoCD
|
# Kluster setup and IaaC using argoCD
|
||||||
|
|
||||||
|
|
||||||
### Initial setup
|
### Description
|
||||||
#### Requirements:
|
#### Requirements:
|
||||||
- A running k3s instance
|
- A running k3s instance
|
||||||
- `sealedsecrets` deployed
|
- `sealedsecrets` deployed
|
||||||
@@ -27,20 +27,21 @@ The app-of-apps will bootstrap a fully featured cluster with the following compo
|
|||||||
- immich
|
- immich
|
||||||
- ...
|
- ...
|
||||||
|
|
||||||
#### Recap
|
## Setup instructions
|
||||||
- install sealedsecrets see [README](./infrastructure/sealedsecrets/README.md)
|
1. install sealedsecrets see [README](./infrastructure/sealedsecrets/README.md)
|
||||||
```bash
|
```bash
|
||||||
kubectl apply -k infrastructure/sealedsecrets
|
kubectl apply -k infrastructure/sealedsecrets
|
||||||
kubectl apply -f infrastructure/sealedsecrets/main.key
|
kubectl apply -f infrastructure/sealedsecrets/main.key
|
||||||
kubectl delete pod -n kube-system -l name=sealed-secrets-controller
|
kubectl delete pod -n kube-system -l name=sealed-secrets-controller
|
||||||
```
|
```
|
||||||
- install argocd
|
1. install argocd and the app-of-apps bundled with it
|
||||||
```bash
|
```bash
|
||||||
kubectl apply -k infrastructure/argocd
|
kubectl apply -k infrastructure/argocd
|
||||||
```
|
```
|
||||||
- wait...
|
|
||||||
|
|
||||||
|
|
||||||
|
> NOTE: The argocd kustomization already mentions some CRDs available only after the full bootstrapping (traefik). You might have to apply the last step twice
|
||||||
|
|
||||||
### Adding an application
|
### Adding an application
|
||||||
todo
|
todo
|
||||||
|
|
||||||
|
@@ -10,7 +10,7 @@ resources:
|
|||||||
images:
|
images:
|
||||||
- name: adguard/adguardhome
|
- name: adguard/adguardhome
|
||||||
newName: adguard/adguardhome
|
newName: adguard/adguardhome
|
||||||
newTag: v0.107.63
|
newTag: v0.107.65
|
||||||
|
|
||||||
namespace: adguard
|
namespace: adguard
|
||||||
|
|
||||||
|
@@ -12,4 +12,4 @@ namespace: audiobookshelf
|
|||||||
images:
|
images:
|
||||||
- name: audiobookshelf
|
- name: audiobookshelf
|
||||||
newName: ghcr.io/advplyr/audiobookshelf
|
newName: ghcr.io/advplyr/audiobookshelf
|
||||||
newTag: "2.26.0"
|
newTag: "2.29.0"
|
||||||
|
@@ -13,4 +13,4 @@ namespace: files
|
|||||||
images:
|
images:
|
||||||
- name: ocis
|
- name: ocis
|
||||||
newName: owncloud/ocis
|
newName: owncloud/ocis
|
||||||
newTag: "7.1.3"
|
newTag: "7.2.0"
|
||||||
|
@@ -14,4 +14,4 @@ resources:
|
|||||||
images:
|
images:
|
||||||
- name: actualbudget
|
- name: actualbudget
|
||||||
newName: actualbudget/actual-server
|
newName: actualbudget/actual-server
|
||||||
newTag: 25.7.1
|
newTag: 25.9.0
|
||||||
|
@@ -17,5 +17,5 @@ helmCharts:
|
|||||||
- releaseName: grafana
|
- releaseName: grafana
|
||||||
name: grafana
|
name: grafana
|
||||||
repo: https://grafana.github.io/helm-charts
|
repo: https://grafana.github.io/helm-charts
|
||||||
version: 9.2.10
|
version: 9.4.5
|
||||||
valuesFile: grafana.values.yaml
|
valuesFile: grafana.values.yaml
|
||||||
|
@@ -15,4 +15,4 @@ resources:
|
|||||||
images:
|
images:
|
||||||
- name: homeassistant
|
- name: homeassistant
|
||||||
newName: homeassistant/home-assistant
|
newName: homeassistant/home-assistant
|
||||||
newTag: "2025.7"
|
newTag: "2025.9"
|
||||||
|
@@ -22,9 +22,9 @@ helmCharts:
|
|||||||
|
|
||||||
images:
|
images:
|
||||||
- name: ghcr.io/immich-app/immich-machine-learning
|
- name: ghcr.io/immich-app/immich-machine-learning
|
||||||
newTag: v1.135.3
|
newTag: v1.141.1
|
||||||
- name: ghcr.io/immich-app/immich-server
|
- name: ghcr.io/immich-app/immich-server
|
||||||
newTag: v1.135.3
|
newTag: v1.141.1
|
||||||
|
|
||||||
|
|
||||||
patches:
|
patches:
|
||||||
|
@@ -13,4 +13,4 @@ namespace: linkding
|
|||||||
images:
|
images:
|
||||||
- name: linkding
|
- name: linkding
|
||||||
newName: sissbruecker/linkding
|
newName: sissbruecker/linkding
|
||||||
newTag: "1.41.0"
|
newTag: "1.42.0"
|
||||||
|
@@ -42,7 +42,7 @@ spec:
|
|||||||
name: curseforge-api
|
name: curseforge-api
|
||||||
key: key
|
key: key
|
||||||
- name: CF_PAGE_URL
|
- name: CF_PAGE_URL
|
||||||
value: "https://www.curseforge.com/minecraft/modpacks/vault-hunters-1-18-2/files/5925838"
|
value: "https://www.curseforge.com/minecraft/modpacks/vault-hunters-1-18-2/files/6807187"
|
||||||
- name: VERSION
|
- name: VERSION
|
||||||
value: "1.18.2"
|
value: "1.18.2"
|
||||||
- name: INIT_MEMORY
|
- name: INIT_MEMORY
|
||||||
|
@@ -21,4 +21,4 @@ images:
|
|||||||
newTag: "3.22"
|
newTag: "3.22"
|
||||||
- name: rsync
|
- name: rsync
|
||||||
newName: eeacms/rsync
|
newName: eeacms/rsync
|
||||||
newTag: "2.6"
|
newTag: "2.7"
|
||||||
|
@@ -13,4 +13,4 @@ resources:
|
|||||||
images:
|
images:
|
||||||
- name: binwiederhier/ntfy
|
- name: binwiederhier/ntfy
|
||||||
newName: binwiederhier/ntfy
|
newName: binwiederhier/ntfy
|
||||||
newTag: v2.13.0
|
newTag: v2.14.0
|
||||||
|
@@ -14,14 +14,14 @@ namespace: paperless
|
|||||||
images:
|
images:
|
||||||
- name: paperless
|
- name: paperless
|
||||||
newName: ghcr.io/paperless-ngx/paperless-ngx
|
newName: ghcr.io/paperless-ngx/paperless-ngx
|
||||||
newTag: "2.17.1"
|
newTag: "2.18.4"
|
||||||
|
|
||||||
|
|
||||||
helmCharts:
|
helmCharts:
|
||||||
- name: redis
|
- name: redis
|
||||||
releaseName: redis
|
releaseName: redis
|
||||||
repo: https://charts.bitnami.com/bitnami
|
repo: https://charts.bitnami.com/bitnami
|
||||||
version: 21.2.10
|
version: 22.0.7
|
||||||
valuesInline:
|
valuesInline:
|
||||||
auth:
|
auth:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
@@ -13,5 +13,5 @@ resources:
|
|||||||
|
|
||||||
images:
|
images:
|
||||||
- name: mealie
|
- name: mealie
|
||||||
newTag: v3.0.0
|
newTag: v3.1.2
|
||||||
newName: ghcr.io/mealie-recipes/mealie
|
newName: ghcr.io/mealie-recipes/mealie
|
||||||
|
@@ -14,4 +14,4 @@ namespace: stump
|
|||||||
images:
|
images:
|
||||||
- name: stump
|
- name: stump
|
||||||
newName: aaronleopold/stump
|
newName: aaronleopold/stump
|
||||||
newTag: "0.0.10"
|
newTag: "0.0.11"
|
||||||
|
@@ -4,7 +4,7 @@ kind: Kustomization
|
|||||||
namespace: argocd
|
namespace: argocd
|
||||||
resources:
|
resources:
|
||||||
- namespace.yaml
|
- namespace.yaml
|
||||||
- https://github.com/argoproj/argo-cd//manifests/cluster-install?timeout=120&ref=v3.0.11
|
- https://github.com/argoproj/argo-cd//manifests/cluster-install?timeout=120&ref=v3.0.12
|
||||||
- ingress.yaml
|
- ingress.yaml
|
||||||
- argo-apps.application.yaml
|
- argo-apps.application.yaml
|
||||||
- bootstrap-repo.sealedsecret.yaml
|
- bootstrap-repo.sealedsecret.yaml
|
||||||
|
@@ -27,6 +27,6 @@ images:
|
|||||||
helmCharts:
|
helmCharts:
|
||||||
- name: authelia
|
- name: authelia
|
||||||
releaseName: authelia
|
releaseName: authelia
|
||||||
version: 0.10.38
|
version: 0.10.46
|
||||||
repo: https://charts.authelia.com
|
repo: https://charts.authelia.com
|
||||||
valuesFile: authelia.values.yaml
|
valuesFile: authelia.values.yaml
|
||||||
|
@@ -23,6 +23,6 @@ helmCharts:
|
|||||||
- name: gitea
|
- name: gitea
|
||||||
namespace: gitea # needs to be set explicitly for svc to be referenced correctly
|
namespace: gitea # needs to be set explicitly for svc to be referenced correctly
|
||||||
releaseName: gitea
|
releaseName: gitea
|
||||||
version: 12.0.0
|
version: 12.2.0
|
||||||
valuesFile: gitea.values.yaml
|
valuesFile: gitea.values.yaml
|
||||||
repo: https://dl.gitea.io/charts/
|
repo: https://dl.gitea.io/charts/
|
||||||
|
@@ -2,7 +2,6 @@ apiVersion: metallb.io/v1beta1
|
|||||||
kind: IPAddressPool
|
kind: IPAddressPool
|
||||||
metadata:
|
metadata:
|
||||||
name: default
|
name: default
|
||||||
namespace: metallb-system
|
|
||||||
spec:
|
spec:
|
||||||
addresses:
|
addresses:
|
||||||
- 192.168.3.0/24
|
- 192.168.3.0/24
|
||||||
@@ -10,5 +9,8 @@ spec:
|
|||||||
apiVersion: metallb.io/v1beta1
|
apiVersion: metallb.io/v1beta1
|
||||||
kind: L2Advertisement
|
kind: L2Advertisement
|
||||||
metadata:
|
metadata:
|
||||||
name: empty
|
name: default
|
||||||
namespace: metallb-system
|
# selector is left empty on purpose to match all IPAddressPools
|
||||||
|
# spec:
|
||||||
|
# ipAddressPools:
|
||||||
|
# - default
|
||||||
|
@@ -1,15 +1,12 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
|
||||||
- namespace.yaml
|
|
||||||
- ipaddresspool.yaml
|
|
||||||
|
|
||||||
namespace: metallb-system
|
namespace: metallb-system
|
||||||
|
|
||||||
|
resources:
|
||||||
|
# - namespace.yaml
|
||||||
|
# namespace is already included in the remote kustomization
|
||||||
|
# - github.com/metallb/metallb/config/native?ref=v0.15.2
|
||||||
|
- github.com/metallb/metallb/config/frr?ref=v0.15.2
|
||||||
|
- ipaddresspool.yaml
|
||||||
|
|
||||||
helmCharts:
|
|
||||||
- name: metallb
|
|
||||||
repo: https://metallb.github.io/metallb
|
|
||||||
version: 0.15.2
|
|
||||||
releaseName: metallb
|
|
||||||
valuesFile: values.yaml
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Namespace
|
kind: Namespace
|
||||||
metadata:
|
metadata:
|
||||||
name: placeholder
|
name: metallb-system
|
||||||
labels:
|
# labels:
|
||||||
pod-security.kubernetes.io/enforce: privileged
|
# pod-security.kubernetes.io/enforce: privileged
|
||||||
|
@@ -6,7 +6,7 @@ namespace: monitoring
|
|||||||
resources:
|
resources:
|
||||||
- namespace.yaml
|
- namespace.yaml
|
||||||
# prometheus-operator crds
|
# prometheus-operator crds
|
||||||
- https://github.com/prometheus-operator/prometheus-operator?ref=v0.83.0
|
- https://github.com/prometheus-operator/prometheus-operator?ref=v0.84.0
|
||||||
# single prometheus instance with a thanos sidecar
|
# single prometheus instance with a thanos sidecar
|
||||||
- prometheus.yaml
|
- prometheus.yaml
|
||||||
- thanos-store.statefulset.yaml
|
- thanos-store.statefulset.yaml
|
||||||
@@ -17,17 +17,17 @@ resources:
|
|||||||
images:
|
images:
|
||||||
- name: thanos
|
- name: thanos
|
||||||
newName: quay.io/thanos/thanos
|
newName: quay.io/thanos/thanos
|
||||||
newTag: v0.39.1
|
newTag: v0.39.2
|
||||||
|
|
||||||
|
|
||||||
helmCharts:
|
helmCharts:
|
||||||
- name: loki
|
- name: loki
|
||||||
releaseName: loki
|
releaseName: loki
|
||||||
repo: https://grafana.github.io/helm-charts
|
repo: https://grafana.github.io/helm-charts
|
||||||
version: 6.30.1
|
version: 6.39.0
|
||||||
valuesFile: loki.values.yaml
|
valuesFile: loki.values.yaml
|
||||||
- name: prometheus-node-exporter
|
- name: prometheus-node-exporter
|
||||||
releaseName: prometheus-node-exporter
|
releaseName: prometheus-node-exporter
|
||||||
repo: https://prometheus-community.github.io/helm-charts
|
repo: https://prometheus-community.github.io/helm-charts
|
||||||
version: 4.47.1
|
version: 4.47.3
|
||||||
valuesFile: prometheus-node-exporter.values.yaml
|
valuesFile: prometheus-node-exporter.values.yaml
|
||||||
|
@@ -30,7 +30,6 @@ loki:
|
|||||||
filesystem:
|
filesystem:
|
||||||
chunks_directory: /var/loki/chunks
|
chunks_directory: /var/loki/chunks
|
||||||
rules_directory: /var/loki/rules
|
rules_directory: /var/loki/rules
|
||||||
admin_api_directory: /var/loki/admin
|
|
||||||
|
|
||||||
minio:
|
minio:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
@@ -9,4 +9,4 @@ resources:
|
|||||||
images:
|
images:
|
||||||
- name: controller
|
- name: controller
|
||||||
newName: docker.io/bitnami/sealed-secrets-controller
|
newName: docker.io/bitnami/sealed-secrets-controller
|
||||||
newTag: 0.30.0
|
newTag: 0.32.1
|
||||||
|
@@ -5,15 +5,15 @@ metadata:
|
|||||||
data:
|
data:
|
||||||
traefik.toml: |
|
traefik.toml: |
|
||||||
[ping]
|
[ping]
|
||||||
|
|
||||||
[global]
|
[global]
|
||||||
checkNewVersion = false
|
checkNewVersion = false
|
||||||
# renovate does that
|
# renovate does that
|
||||||
sendAnonymousUsage = false
|
sendAnonymousUsage = false
|
||||||
|
|
||||||
[log]
|
[log]
|
||||||
level = "INFO"
|
level = "INFO"
|
||||||
|
|
||||||
[accessLog]
|
[accessLog]
|
||||||
[accessLog.fields]
|
[accessLog.fields]
|
||||||
defaultMode = "keep"
|
defaultMode = "keep"
|
||||||
@@ -41,17 +41,17 @@ data:
|
|||||||
dashboard = true
|
dashboard = true
|
||||||
insecure = true
|
insecure = true
|
||||||
debug = false
|
debug = false
|
||||||
|
|
||||||
[providers]
|
[providers]
|
||||||
[providers.kubernetesCRD]
|
[providers.kubernetesCRD]
|
||||||
allowCrossNamespace = true
|
allowCrossNamespace = true
|
||||||
[providers.kubernetesIngress]
|
[providers.kubernetesIngress]
|
||||||
allowExternalNameServices = true
|
allowExternalNameServices = true
|
||||||
ingressClass = "traefik"
|
ingressClass = "traefik"
|
||||||
|
|
||||||
[serversTransport]
|
[serversTransport]
|
||||||
insecureSkipVerify = true
|
insecureSkipVerify = true
|
||||||
|
|
||||||
[entryPoints]
|
[entryPoints]
|
||||||
[entryPoints.web]
|
[entryPoints.web]
|
||||||
address = ":8000"
|
address = ":8000"
|
||||||
@@ -66,13 +66,13 @@ data:
|
|||||||
[entryPoints.websecure.forwardedHeaders]
|
[entryPoints.websecure.forwardedHeaders]
|
||||||
insecure = true
|
insecure = true
|
||||||
# forward ip headers no matter where they come from
|
# forward ip headers no matter where they come from
|
||||||
|
|
||||||
[entryPoints.metrics]
|
[entryPoints.metrics]
|
||||||
address = ":9100"
|
address = ":9100"
|
||||||
|
|
||||||
[entryPoints.traefik]
|
[entryPoints.traefik]
|
||||||
address = ":9000"
|
address = ":8080"
|
||||||
|
|
||||||
[entryPoints.dnsovertls]
|
[entryPoints.dnsovertls]
|
||||||
address = ":8853"
|
address = ":8853"
|
||||||
# route dns over https to other pods but provide own certificate
|
# route dns over https to other pods but provide own certificate
|
||||||
|
@@ -23,8 +23,7 @@ ingressClass:
|
|||||||
# true is not unit-testable yet, pending https://github.com/rancher/helm-unittest/pull/12
|
# true is not unit-testable yet, pending https://github.com/rancher/helm-unittest/pull/12
|
||||||
enabled: true
|
enabled: true
|
||||||
isDefaultClass: true
|
isDefaultClass: true
|
||||||
# Use to force a networking.k8s.io API Version for certain CI/CD applications. E.g. "v1beta1"
|
|
||||||
fallbackApiVersion: ""
|
|
||||||
|
|
||||||
# Activate Pilot integration
|
# Activate Pilot integration
|
||||||
pilot:
|
pilot:
|
||||||
@@ -67,10 +66,11 @@ providers:
|
|||||||
kubernetesIngress:
|
kubernetesIngress:
|
||||||
enabled: true
|
enabled: true
|
||||||
allowExternalNameServices: true
|
allowExternalNameServices: true
|
||||||
ingressClass: traefik
|
# Ingresses missing the annotation, having an empty value, or the value traefik are processed by default.
|
||||||
|
# ingressClass: traefik
|
||||||
# labelSelector: environment=production,method=traefik
|
# labelSelector: environment=production,method=traefik
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Additional volumeMounts to add to the Traefik container
|
# Additional volumeMounts to add to the Traefik container
|
||||||
additionalVolumeMounts:
|
additionalVolumeMounts:
|
||||||
|
Reference in New Issue
Block a user