mirror of
https://github.com/vhaudiquet/homeprod.git
synced 2026-09-25 10:23:31 +00:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fdc57f2d8a |
@@ -2,7 +2,7 @@ terraform {
|
||||
required_providers {
|
||||
docker = {
|
||||
source = "kreuzwerker/docker"
|
||||
version = "3.9.0"
|
||||
version = "3.6.2"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ spec:
|
||||
name: stalwart-helm
|
||||
namespace: stalwart
|
||||
chart: stalwart
|
||||
version: "0.7.18"
|
||||
version: "0.7.16"
|
||||
interval: 1m
|
||||
valuesFrom:
|
||||
- kind: Secret
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
# Container image
|
||||
image:
|
||||
repository: stalwartlabs/stalwart
|
||||
tag: v0.16.22
|
||||
tag: v0.16.20
|
||||
pullPolicy: IfNotPresent
|
||||
# Single-node RocksDB deployment.
|
||||
replicaCount: 1
|
||||
|
||||
@@ -35,7 +35,6 @@ resources:
|
||||
# Personal (apps storing my own content, grouped by content type)
|
||||
- personal/paperless
|
||||
- personal/radicale
|
||||
- personal/syncthing
|
||||
- personal/media/photoprism
|
||||
- personal/notes/notesnook
|
||||
- personal/notes/obsidian-livesync
|
||||
|
||||
@@ -5,6 +5,5 @@ resources:
|
||||
- openclaw-instance.yaml
|
||||
- openclaw-secrets.yaml
|
||||
- networkpolicy.yaml
|
||||
- networkpolicy-lan-egress.yaml
|
||||
- networkpolicy-mail-egress.yaml
|
||||
- networkpolicy-radicale-egress.yaml
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
# Supplementary egress policy: the operator's managed default-deny NetworkPolicy
|
||||
# only allows DNS (53) and TCP 443 outbound, so any other port toward the local
|
||||
# network is dropped. That blocks the OpenClaw pod from reaching LAN services
|
||||
# that do not speak HTTPS on 443. Measured from inside the pod against
|
||||
# 10.4.1.222, 443 returns RST (admitted, nothing listening) while 7020 times
|
||||
# out, which shows LAN routing works and only the port is being refused.
|
||||
#
|
||||
# The egress rule below sets no `ports`, because the goal is arbitrary LAN
|
||||
# services rather than one known port. Cluster CIDRs are excluded so this does
|
||||
# not become a blanket "any pod, any port" grant; the LAN is what gets admitted.
|
||||
# Note this is additive to the operator's rules, so DNS and 443 everywhere still
|
||||
# hold.
|
||||
#
|
||||
# Written as a sidecar policy rather than via the CR fields
|
||||
# spec.security.networkPolicy.additionalEgress / allowedEgressCIDRs, matching
|
||||
# the existing networkpolicy-mail-egress / -radicale-egress pattern. Those CR
|
||||
# fields DO appear in the 0.39.0 CRD template, contrary to the comments on the
|
||||
# sibling policies, so they are worth retrying once the installed CRD version is
|
||||
# confirmed. Until then the sidecar route is the one known to take effect.
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
name: openclaw-lan-egress
|
||||
namespace: openclaw
|
||||
spec:
|
||||
podSelector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/instance: openclaw
|
||||
app.kubernetes.io/name: openclaw
|
||||
policyTypes:
|
||||
- Egress
|
||||
egress:
|
||||
- to:
|
||||
- ipBlock:
|
||||
cidr: 10.0.0.0/8
|
||||
except:
|
||||
# Service CIDR and pod CIDR (infra/kube/talconfig.yaml).
|
||||
- 10.96.0.0/12
|
||||
- 10.244.0.0/16
|
||||
@@ -12,7 +12,7 @@ spec:
|
||||
name: cloudpirates
|
||||
namespace: paperless
|
||||
chart: postgres
|
||||
version: "0.20.5"
|
||||
version: "0.20.4"
|
||||
interval: 1m
|
||||
valuesFrom:
|
||||
- kind: Secret
|
||||
|
||||
@@ -12,7 +12,7 @@ spec:
|
||||
name: derwitt
|
||||
namespace: radicale
|
||||
chart: radicale
|
||||
version: "2.1.1"
|
||||
version: "2.1.0"
|
||||
interval: 1m
|
||||
valuesFrom:
|
||||
- kind: Secret
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: syncthing
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- repository.yaml
|
||||
- release.yaml
|
||||
secretGenerator:
|
||||
- name: syncthing-values
|
||||
files:
|
||||
- values.yaml=values.yaml
|
||||
configurations:
|
||||
- kustomizeconfig.yaml
|
||||
@@ -1,6 +0,0 @@
|
||||
nameReference:
|
||||
- kind: Secret
|
||||
version: v1
|
||||
fieldSpecs:
|
||||
- path: spec/valuesFrom/name
|
||||
kind: HelmRelease
|
||||
@@ -1,7 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: syncthing
|
||||
labels:
|
||||
app.kubernetes.io/name: syncthing
|
||||
app.kubernetes.io/component: file-sync
|
||||
@@ -1,19 +0,0 @@
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: syncthing
|
||||
namespace: syncthing
|
||||
spec:
|
||||
interval: 1m
|
||||
chart:
|
||||
spec:
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: k8s-home-lab
|
||||
namespace: syncthing
|
||||
chart: syncthing
|
||||
version: "5.2.0"
|
||||
interval: 1m
|
||||
valuesFrom:
|
||||
- kind: Secret
|
||||
name: syncthing-values
|
||||
@@ -1,8 +0,0 @@
|
||||
apiVersion: source.toolkit.fluxcd.io/v1
|
||||
kind: HelmRepository
|
||||
metadata:
|
||||
name: k8s-home-lab
|
||||
namespace: syncthing
|
||||
spec:
|
||||
interval: 1h
|
||||
url: https://k8s-home-lab.github.io/helm-charts/
|
||||
@@ -1,152 +0,0 @@
|
||||
# Syncthing continuous file synchronization
|
||||
#
|
||||
# Sync ports (22000 TCP+QUIC, 21027 UDP) are exposed through LoadBalancer
|
||||
# services on the dedicated Cilium pool IP 10.2.2.7 (appended to
|
||||
# kubernetes/system/cilium/pool.yaml). The GUI goes through Traefik like the
|
||||
# other *.lan services.
|
||||
controller:
|
||||
replicas: 1
|
||||
image:
|
||||
repository: syncthing/syncthing
|
||||
tag: "2.1"
|
||||
env:
|
||||
- name: TZ
|
||||
value: Europe/Paris
|
||||
- name: PUID
|
||||
value: "1000"
|
||||
- name: PGID
|
||||
value: "1000"
|
||||
podSecurityContext:
|
||||
fsGroup: 1000
|
||||
service:
|
||||
main:
|
||||
ports:
|
||||
http:
|
||||
port: 8384
|
||||
# Sync protocol and QUIC share 22000 on the pooled IP; LAN discovery
|
||||
# rides on UDP 21027. externalTrafficPolicy Local preserves client IPs.
|
||||
listen:
|
||||
enabled: true
|
||||
type: LoadBalancer
|
||||
externalTrafficPolicy: Local
|
||||
loadBalancerIP: 10.2.2.7
|
||||
ports:
|
||||
listen:
|
||||
enabled: true
|
||||
port: 22000
|
||||
protocol: TCP
|
||||
targetPort: 22000
|
||||
quic:
|
||||
enabled: true
|
||||
port: 22000
|
||||
protocol: UDP
|
||||
targetPort: 22000
|
||||
discovery:
|
||||
enabled: true
|
||||
type: LoadBalancer
|
||||
externalTrafficPolicy: Local
|
||||
loadBalancerIP: 10.2.2.7
|
||||
ports:
|
||||
discovery:
|
||||
enabled: true
|
||||
port: 21027
|
||||
protocol: UDP
|
||||
targetPort: 21027
|
||||
probes:
|
||||
liveness:
|
||||
custom: true
|
||||
spec:
|
||||
httpGet:
|
||||
path: /rest/noauth/health
|
||||
port: http
|
||||
readiness:
|
||||
custom: true
|
||||
spec:
|
||||
httpGet:
|
||||
path: /rest/noauth/health
|
||||
port: http
|
||||
ingress:
|
||||
main:
|
||||
enabled: true
|
||||
ingressClassName: traefik
|
||||
annotations:
|
||||
external-dns.alpha.kubernetes.io/enabled: "true"
|
||||
hosts:
|
||||
- host: syncthing.lan
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
persistence:
|
||||
config:
|
||||
enabled: true
|
||||
mountPath: /var/syncthing/config
|
||||
storageClass: longhorn
|
||||
size: 5Gi
|
||||
# Shares are recreated by hand in the GUI after cutover — the instance
|
||||
# boots with a fresh config (see plans/syncthing-docker-to-kube-migration.md):
|
||||
# valentin's folders at /data/valentin/… and sarah's at /data/sarah/…, all
|
||||
# backed by the same TrueNAS exports as the docker stack. Photoprism
|
||||
# already mounts the valentin Photos export concurrently.
|
||||
valentin-documents:
|
||||
enabled: true
|
||||
type: custom
|
||||
mountPath: /data/valentin/Documents
|
||||
volumeSpec:
|
||||
nfs:
|
||||
server: truenas.lan
|
||||
path: /mnt/main_storage/valentin/Documents
|
||||
valentin-photos:
|
||||
enabled: true
|
||||
type: custom
|
||||
mountPath: /data/valentin/Photos
|
||||
volumeSpec:
|
||||
nfs:
|
||||
server: truenas.lan
|
||||
path: /mnt/main_storage/valentin/Photos
|
||||
sarah-documents:
|
||||
enabled: true
|
||||
type: custom
|
||||
mountPath: /data/sarah/Documents
|
||||
volumeSpec:
|
||||
nfs:
|
||||
server: truenas.lan
|
||||
path: /mnt/main_storage/sarah/Documents
|
||||
sarah-photos:
|
||||
enabled: true
|
||||
type: custom
|
||||
mountPath: /data/sarah/Photos
|
||||
volumeSpec:
|
||||
nfs:
|
||||
server: truenas.lan
|
||||
path: /mnt/main_storage/sarah/Photos
|
||||
resources:
|
||||
requests:
|
||||
memory: 512Mi
|
||||
limits:
|
||||
memory: 2Gi
|
||||
sops:
|
||||
lastmodified: "2026-09-21T22:28:39Z"
|
||||
mac: ENC[AES256_GCM,data:BR4P4s4C9n4bEHryqfHpzzFHxAlKeujFBO2Qhsc4qdkcI5dftJ7jrknWtW0uv1E2Aljp50Mx1Rk4wglaWh3MS/ZnY/1dUxCfKuXOGkv9+mymQxDk6zJLsUNTH7sMr5kzlVWfv3yzXF50HWuiNl71BAv4mtlrtarXS1KVQrCKNaA=,iv:aG9OxDOhwk7xYNbvESNMFnXIjKhbYNO0gvDn1a9QQvc=,tag:QxM3EX8V2KJzosRz5damrw==,type:str]
|
||||
pgp:
|
||||
- created_at: "2026-09-21T22:28:39Z"
|
||||
enc: |-
|
||||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
hQIMA7uy4qQr71wiAQ//cvlMqPSaED2y5dsq8H/W/dqYVOeG7E/ZOuJGaYnImrrp
|
||||
V2W6vPTzQ8QuYTKa1X4aOIlda04n7i2kDQCvpszmdpsU2y0SWtsgOBbyloIU3cAM
|
||||
69HGd1SNqP/FayeZy/hHNvvEjmsgKX/9IV1YBGOcikmd7MqoxgGRgIxXORzY0dBG
|
||||
7oREwV0HubdIBG6Fi6HUyN+Pugftpcumfwtl8ppPUYi1HGKzL5LzIT6gfqXtUcBg
|
||||
8Wl2f0kMZsat1e05sZZah41dg+BAlyDgCRFo/ZQIhzHi28rJkZWG2aZxQfvAFMYJ
|
||||
hUkjVyN7rAO01b2PsXK3bleFjD8iL8PhHY/Rio0/Uizjub7inako2SUd38D7X+ce
|
||||
M1c2GoDVNmwZyXg7jBzb67JxLPn4Ic1kbjUi/JJL22rDzN0pBf6J7ExCpVGxrwK8
|
||||
++YDD1m/rY3YA8/ioM+pTu3ktEd1zu0T1yFySjgtvX8QVmOkrG1AA8E/N3+pzFWP
|
||||
9wrJJ+yp5CYQl9d3j5LQcOzmvROi0EHjeZY75IHw8NwkyWdnRgWFIPsXxVoSUhSk
|
||||
909RE//BuKSSRd1r9D/4w14Eb9KC74bIsUIflyK2Qs/N3rh9+/O8FS/5saryq7Er
|
||||
GO3oAmFqC2F4Y6zFlmXkr43gBFjCPWl0DxI3uUK/gcw8kBpLSJex3j2sDaLViS/S
|
||||
XgFsDLAjHnEo5DC+xyJQI5xMWsQzx/ASNZdBVLrnYPsRt+YG7qfu3lKNS9ujAG7K
|
||||
ti58fACtT97K8IrUMNyEDGieFz65TYPcie4qILnDt2Hkr6QUEdBR8rvn/8z36D8=
|
||||
=47Rw
|
||||
-----END PGP MESSAGE-----
|
||||
fp: DC6910268E657FF70BA7EC289974494E76938DDC
|
||||
encrypted_regex: ^(data|stringData|.*key|.*crt)$
|
||||
version: 3.10.2
|
||||
@@ -8,4 +8,3 @@ spec:
|
||||
- cidr: "10.2.2.4/32"
|
||||
- cidr: "10.2.2.5/32"
|
||||
- cidr: "10.2.2.6/32"
|
||||
- cidr: "10.2.2.7/32"
|
||||
|
||||
@@ -12,7 +12,7 @@ spec:
|
||||
name: kyverno
|
||||
namespace: kyverno
|
||||
chart: kyverno
|
||||
version: '3.9.1'
|
||||
version: '3.9.0'
|
||||
interval: 5m
|
||||
# Minimal footprint for a single-node cluster:
|
||||
# - admissionReports disabled (no extra Redis/Postgres)
|
||||
|
||||
Reference in New Issue
Block a user