Compare commits
1 commit
e552cc2205
...
4ab81f8155
Author | SHA1 | Date | |
---|---|---|---|
|
4ab81f8155 |
47 changed files with 202 additions and 242 deletions
apps-helm/code-server
apps-kustomized
airsonic-advanced
argocd
bazarr
bucket
cryptpad
esphome
external-dns
external-mqtt
forgejo
jellyfin
jellyseerr
kube-prometheus
lidarr
lms
nextcloud
node-feature-discovery
prowlarr
radarr
sabnzbd
ser2net
smb-storageclasses
sonarr
tailscale-proxy
torrents
whoogle
writefreely
zigbee2mqtt2
everything-app
app-ingress-nginx.yamlapp-letsencrypt.yamlbikerwitch.yamlcsi4samba.yamlgarage.yamllonghorn.yamlntfy.yamlsamba-slow-big.yamltailscale-proxy.yaml
renovate.json
|
@ -6,7 +6,7 @@ replicaCount: 1
|
||||||
|
|
||||||
image:
|
image:
|
||||||
repository: codercom/code-server
|
repository: codercom/code-server
|
||||||
tag: '4.97.2'
|
tag: '4.93.1'
|
||||||
pullPolicy: Always
|
pullPolicy: Always
|
||||||
|
|
||||||
secret:
|
secret:
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
cert-manager.io/cluster-issuer: letsencrypt
|
|
||||||
external-dns.alpha.kubernetes.io/target: armnleg.martyn.berlin
|
|
||||||
nginx.ingress.kubernetes.io/proxy-body-size: "0"
|
|
||||||
nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
|
|
||||||
nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
|
|
||||||
name: airsonic-advanced
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: airsonic.martyn.berlin
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- backend:
|
|
||||||
service:
|
|
||||||
name: airsonic-advanced
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
path: /
|
|
||||||
pathType: Prefix
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- airsonic.martyn.berlin
|
|
|
@ -24,11 +24,3 @@ patches:
|
||||||
version: v1
|
version: v1
|
||||||
kind: ConfigMap
|
kind: ConfigMap
|
||||||
name: argocd-cm
|
name: argocd-cm
|
||||||
|
|
||||||
- patch: |-
|
|
||||||
- op: add
|
|
||||||
path: /spec/template/spec/containers/0/args/-
|
|
||||||
value: --insecure=true
|
|
||||||
target:
|
|
||||||
kind: Deployment
|
|
||||||
name: argocd-server
|
|
||||||
|
|
|
@ -33,6 +33,8 @@ spec:
|
||||||
mountPath: /config
|
mountPath: /config
|
||||||
- name: series
|
- name: series
|
||||||
mountPath: /series
|
mountPath: /series
|
||||||
|
- name: oldseries
|
||||||
|
mountPath: /oldseries
|
||||||
- name: films
|
- name: films
|
||||||
mountPath: /films
|
mountPath: /films
|
||||||
volumes:
|
volumes:
|
||||||
|
@ -42,6 +44,9 @@ spec:
|
||||||
- name: series
|
- name: series
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: smb-series
|
claimName: smb-series
|
||||||
|
- name: oldseries
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: smb-oldseries
|
||||||
- name: films
|
- name: films
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: smb-films
|
claimName: smb-films
|
||||||
|
|
|
@ -12,6 +12,18 @@ spec:
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: PersistentVolumeClaim
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: smb-oldseries
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 1Gi
|
||||||
|
storageClassName: smb-oldseries
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
metadata:
|
metadata:
|
||||||
name: smb-films
|
name: smb-films
|
||||||
spec:
|
spec:
|
||||||
|
@ -20,4 +32,4 @@ spec:
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
storage: 1Gi
|
storage: 1Gi
|
||||||
storageClassName: smb-films
|
storageClassName: smb-films
|
|
@ -34,5 +34,7 @@ spec:
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- files.martyn.berlin
|
- files.martyn.berlin
|
||||||
|
secretName: files-tls
|
||||||
- hosts:
|
- hosts:
|
||||||
- files-a89a4194-3742-498e-8c6c-37128fdb9291.martyn.berlin
|
- files-a89a4194-3742-498e-8c6c-37128fdb9291.martyn.berlin
|
||||||
|
secretName: long-name-files-tls
|
||||||
|
|
|
@ -28,6 +28,7 @@ spec:
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- cryptpad.martyn.berlin
|
- cryptpad.martyn.berlin
|
||||||
|
secretName: cryptpad-tls
|
||||||
---
|
---
|
||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
|
@ -59,3 +60,4 @@ spec:
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- cryptpad-safe.martyn.berlin
|
- cryptpad-safe.martyn.berlin
|
||||||
|
secretName: cryptpad-safe-tls
|
||||||
|
|
|
@ -17,7 +17,7 @@ spec:
|
||||||
- env:
|
- env:
|
||||||
- name: ESPHOME_DASHBOARD_USE_PING
|
- name: ESPHOME_DASHBOARD_USE_PING
|
||||||
value: "true"
|
value: "true"
|
||||||
image: esphome/esphome:2022.12.8
|
image: esphome/esphome:2022.12.3
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
failureThreshold: 3
|
failureThreshold: 3
|
||||||
|
|
|
@ -4,7 +4,7 @@ kind: Kustomization
|
||||||
helmCharts:
|
helmCharts:
|
||||||
- name: external-dns
|
- name: external-dns
|
||||||
repo: https://charts.bitnami.com/bitnami
|
repo: https://charts.bitnami.com/bitnami
|
||||||
version: 8.7.6
|
version: 8.7.5
|
||||||
releaseName: external-dns
|
releaseName: external-dns
|
||||||
namespace: external-dns
|
namespace: external-dns
|
||||||
valuesInline:
|
valuesInline:
|
||||||
|
|
|
@ -10,6 +10,7 @@ spec:
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- iot.martyn.berlin
|
- iot.martyn.berlin
|
||||||
|
secretName: mosquitto-certs
|
||||||
rules:
|
rules:
|
||||||
- host: iot.martyn.berlin
|
- host: iot.martyn.berlin
|
||||||
http:
|
http:
|
||||||
|
|
|
@ -19,7 +19,7 @@ spec:
|
||||||
app: forgejo
|
app: forgejo
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: codeberg.org/forgejo/forgejo:10.0.1
|
- image: codeberg.org/forgejo/forgejo:1.21
|
||||||
env:
|
env:
|
||||||
- name: FORGEJO__database__DB_TYPE
|
- name: FORGEJO__database__DB_TYPE
|
||||||
value: postgres
|
value: postgres
|
||||||
|
|
|
@ -26,3 +26,4 @@ spec:
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- git.martyn.berlin
|
- git.martyn.berlin
|
||||||
|
secretName: forgejo-tls
|
||||||
|
|
|
@ -31,7 +31,7 @@ spec:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: docker.io/jellyfin/jellyfin:10.10.6
|
image: docker.io/jellyfin/jellyfin:10.10.5
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
name: jellyfin
|
name: jellyfin
|
||||||
ports:
|
ports:
|
||||||
|
@ -49,12 +49,16 @@ spec:
|
||||||
cpu: 163m
|
cpu: 163m
|
||||||
# memory: 3861631195
|
# memory: 3861631195
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
|
- mountPath: /data2/media
|
||||||
|
name: runningseries
|
||||||
- mountPath: /films
|
- mountPath: /films
|
||||||
name: films
|
name: films
|
||||||
- mountPath: /config
|
- mountPath: /config
|
||||||
name: jellyfin-config
|
name: jellyfin-config
|
||||||
- mountPath: /music
|
- mountPath: /music
|
||||||
name: music
|
name: music
|
||||||
|
- mountPath: /oldbigseries
|
||||||
|
name: oldseries
|
||||||
- mountPath: /config/transcodes
|
- mountPath: /config/transcodes
|
||||||
name: transcodes
|
name: transcodes
|
||||||
- mountPath: /dev/dri
|
- mountPath: /dev/dri
|
||||||
|
@ -66,9 +70,12 @@ spec:
|
||||||
dnsPolicy: ClusterFirst
|
dnsPolicy: ClusterFirst
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
intel.feature.node.kubernetes.io/gpu: "true"
|
intel.feature.node.kubernetes.io/gpu: "true"
|
||||||
kubernetes.io/hostname: talos-llu-kx3
|
oldname: i9worker
|
||||||
terminationGracePeriodSeconds: 30
|
terminationGracePeriodSeconds: 30
|
||||||
volumes:
|
volumes:
|
||||||
|
- persistentVolumeClaim:
|
||||||
|
claimName: smb-series
|
||||||
|
name: runningseries
|
||||||
- name: jellyfin-config
|
- name: jellyfin-config
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: jellyfin-config
|
claimName: jellyfin-config
|
||||||
|
@ -81,6 +88,9 @@ spec:
|
||||||
- persistentVolumeClaim:
|
- persistentVolumeClaim:
|
||||||
claimName: smb-films
|
claimName: smb-films
|
||||||
name: films
|
name: films
|
||||||
|
- persistentVolumeClaim:
|
||||||
|
claimName: smb-oldseries
|
||||||
|
name: oldseries
|
||||||
- hostPath:
|
- hostPath:
|
||||||
path: /dev/dri
|
path: /dev/dri
|
||||||
type: Directory
|
type: Directory
|
||||||
|
|
|
@ -1,5 +1,29 @@
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: PersistentVolumeClaim
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: smb-series
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 1Gi
|
||||||
|
storageClassName: smb-series
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: smb-oldseries
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 1Gi
|
||||||
|
storageClassName: smb-oldseries
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
metadata:
|
metadata:
|
||||||
name: smb-music
|
name: smb-music
|
||||||
spec:
|
spec:
|
||||||
|
|
|
@ -23,3 +23,4 @@ spec:
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- requests.martyn.berlin
|
- requests.martyn.berlin
|
||||||
|
secretName: requests-tls
|
||||||
|
|
|
@ -32,7 +32,7 @@ spec:
|
||||||
automountServiceAccountToken: false
|
automountServiceAccountToken: false
|
||||||
containers:
|
containers:
|
||||||
- env: []
|
- env: []
|
||||||
image: grafana/grafana:9.5.21
|
image: grafana/grafana:9.5.3
|
||||||
name: grafana
|
name: grafana
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 3000
|
- containerPort: 3000
|
||||||
|
|
|
@ -18,7 +18,7 @@ spec:
|
||||||
app: lidarr
|
app: lidarr
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: hotio/lidarr:release-2.9.6.4552
|
- image: hotio/lidarr:release
|
||||||
name: lidarr
|
name: lidarr
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
|
|
|
@ -19,7 +19,7 @@ spec:
|
||||||
app.kubernetes.io/name: logitech-media-server
|
app.kubernetes.io/name: logitech-media-server
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: lmscommunity/lyrionmusicserver:9.1.0
|
- image: doliana/logitech-media-server:2021_11_06-8.2.0
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
failureThreshold: 10
|
failureThreshold: 10
|
||||||
|
|
|
@ -25,3 +25,4 @@ spec:
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- nextcloud.martyn.berlin
|
- nextcloud.martyn.berlin
|
||||||
|
secretName: nextcloud-tls
|
||||||
|
|
|
@ -10,7 +10,7 @@ helmCharts:
|
||||||
includeCRDs: true
|
includeCRDs: true
|
||||||
namespace: node-feature-discovery
|
namespace: node-feature-discovery
|
||||||
releaseName: node-feature-discovery
|
releaseName: node-feature-discovery
|
||||||
version: 0.17.2
|
version: 0.16.6
|
||||||
repo: https://kubernetes-sigs.github.io/node-feature-discovery/charts
|
repo: https://kubernetes-sigs.github.io/node-feature-discovery/charts
|
||||||
valuesInLine:
|
valuesInLine:
|
||||||
master:
|
master:
|
||||||
|
|
|
@ -16,7 +16,7 @@ spec:
|
||||||
app: prowlarr
|
app: prowlarr
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: hotio/prowlarr:release-1.31.2.4975
|
- image: hotio/prowlarr:release-1.26.1.4844
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
name: prowlarr
|
name: prowlarr
|
||||||
ports:
|
ports:
|
||||||
|
|
|
@ -18,7 +18,7 @@ spec:
|
||||||
app: radarr
|
app: radarr
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: hotio/radarr:release-5.19.3.9730
|
- image: hotio/radarr:release
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: radarr
|
name: radarr
|
||||||
ports:
|
ports:
|
||||||
|
|
|
@ -16,7 +16,7 @@ spec:
|
||||||
app: sabnzbd
|
app: sabnzbd
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: lscr.io/linuxserver/sabnzbd:4.4.1
|
- image: lscr.io/linuxserver/sabnzbd:latest
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
name: sabnzbd
|
name: sabnzbd
|
||||||
terminationMessagePath: /dev/termination-log
|
terminationMessagePath: /dev/termination-log
|
||||||
|
|
|
@ -38,7 +38,7 @@ metadata:
|
||||||
annotations:
|
annotations:
|
||||||
configmap.reloader.stakater.com/reload: "ser2net"
|
configmap.reloader.stakater.com/reload: "ser2net"
|
||||||
spec:
|
spec:
|
||||||
replicas: 0
|
replicas: 1
|
||||||
strategy:
|
strategy:
|
||||||
type: Recreate
|
type: Recreate
|
||||||
selector:
|
selector:
|
||||||
|
|
|
@ -4,7 +4,7 @@ metadata:
|
||||||
name: smb-films
|
name: smb-films
|
||||||
provisioner: smb.csi.k8s.io
|
provisioner: smb.csi.k8s.io
|
||||||
parameters:
|
parameters:
|
||||||
source: "//172.20.0.70/films"
|
source: "//172.20.0.125/films"
|
||||||
csi.storage.k8s.io/node-stage-secret-name: smb-creds
|
csi.storage.k8s.io/node-stage-secret-name: smb-creds
|
||||||
csi.storage.k8s.io/node-stage-secret-namespace: kube-system
|
csi.storage.k8s.io/node-stage-secret-namespace: kube-system
|
||||||
reclaimPolicy: Retain
|
reclaimPolicy: Retain
|
||||||
|
|
17
apps-kustomized/smb-storageclasses/sc-oldseries.yaml
Normal file
17
apps-kustomized/smb-storageclasses/sc-oldseries.yaml
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
apiVersion: storage.k8s.io/v1
|
||||||
|
kind: StorageClass
|
||||||
|
metadata:
|
||||||
|
name: smb-oldseries
|
||||||
|
provisioner: smb.csi.k8s.io
|
||||||
|
parameters:
|
||||||
|
source: "//hp40l/disk2/oldseries"
|
||||||
|
csi.storage.k8s.io/node-stage-secret-name: smb-creds
|
||||||
|
csi.storage.k8s.io/node-stage-secret-namespace: kube-system
|
||||||
|
reclaimPolicy: Retain
|
||||||
|
volumeBindingMode: Immediate
|
||||||
|
mountOptions:
|
||||||
|
- dir_mode=0777
|
||||||
|
- file_mode=0777
|
||||||
|
- uid=1001
|
||||||
|
- gid=1001
|
||||||
|
- noperm
|
|
@ -4,7 +4,7 @@ metadata:
|
||||||
name: smb-series
|
name: smb-series
|
||||||
provisioner: smb.csi.k8s.io
|
provisioner: smb.csi.k8s.io
|
||||||
parameters:
|
parameters:
|
||||||
source: "//172.20.0.70/series"
|
source: "//hp40l/disk2/series"
|
||||||
csi.storage.k8s.io/node-stage-secret-name: smb-creds
|
csi.storage.k8s.io/node-stage-secret-name: smb-creds
|
||||||
csi.storage.k8s.io/node-stage-secret-namespace: kube-system
|
csi.storage.k8s.io/node-stage-secret-namespace: kube-system
|
||||||
reclaimPolicy: Retain
|
reclaimPolicy: Retain
|
||||||
|
|
|
@ -16,7 +16,7 @@ spec:
|
||||||
app: sonarr
|
app: sonarr
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: hotio/sonarr:release-4.0.13.2932
|
- image: hotio/sonarr:release-4.0.1.929
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
name: sonarr
|
name: sonarr
|
||||||
ports:
|
ports:
|
||||||
|
@ -32,6 +32,8 @@ spec:
|
||||||
name: config
|
name: config
|
||||||
- mountPath: /data
|
- mountPath: /data
|
||||||
name: data
|
name: data
|
||||||
|
- mountPath: /series
|
||||||
|
name: series
|
||||||
- mountPath: /combinedseries
|
- mountPath: /combinedseries
|
||||||
name: combinedseries
|
name: combinedseries
|
||||||
dnsPolicy: ClusterFirst
|
dnsPolicy: ClusterFirst
|
||||||
|
@ -42,6 +44,9 @@ spec:
|
||||||
- name: config
|
- name: config
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: sonarr-config-data
|
claimName: sonarr-config-data
|
||||||
|
- name: series
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: smb-series
|
||||||
- name: combinedseries
|
- name: combinedseries
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: smb-combinedseries
|
claimName: smb-combinedseries
|
||||||
|
|
|
@ -1,5 +1,17 @@
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: PersistentVolumeClaim
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: smb-series
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 1Gi
|
||||||
|
storageClassName: smb-series
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
metadata:
|
metadata:
|
||||||
name: smb-combinedseries
|
name: smb-combinedseries
|
||||||
spec:
|
spec:
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: tailscale-script
|
|
||||||
data:
|
|
||||||
script.sh: |
|
|
||||||
tailscaled --socks5-server=localhost:1055 --outbound-http-proxy-listen=localhost:1055 --tun=userspace-networking &
|
|
||||||
tailscale up --authkey=$TS_AUTHKEY --advertise-tags=tag:k8s --hostname k8s-tailscale-proxy &
|
|
||||||
sleep 3
|
|
||||||
echo "Waiting for $COUNTRY to do something"
|
|
||||||
while ! tailscale exit-node list 2>/dev/null | grep $COUNTRY >/dev/null; do echo -n . ;sleep 5; done
|
|
||||||
tailscale set --exit-node $(tailscale exit-node list | grep $COUNTRY | cut -f2 -d' ' | shuf | head -n1)
|
|
||||||
while true; do sleep 1; done
|
|
|
@ -1,100 +0,0 @@
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: tailscale-proxy
|
|
||||||
name: tailscale-proxy
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: tailscale-proxy
|
|
||||||
strategy:
|
|
||||||
rollingUpdate:
|
|
||||||
maxSurge: 25%
|
|
||||||
maxUnavailable: 25%
|
|
||||||
type: RollingUpdate
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: tailscale-proxy
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- command:
|
|
||||||
- /bin/sh
|
|
||||||
- -c
|
|
||||||
- 'sh /script/script.sh'
|
|
||||||
env:
|
|
||||||
- name: TS_KUBE_SECRET
|
|
||||||
value: tailscale
|
|
||||||
- name: COUNTRY
|
|
||||||
value: Switzerland
|
|
||||||
- name: TS_AUTHKEY
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
key: TS_AUTHKEY
|
|
||||||
name: tailscale-auth
|
|
||||||
image: ghcr.io/tailscale/tailscale:v1.80.3
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
startupProbe:
|
|
||||||
exec:
|
|
||||||
command:
|
|
||||||
- /bin/sh
|
|
||||||
- -c
|
|
||||||
- tailscale ip | grep ^100 > /dev/null
|
|
||||||
periodSeconds: 30
|
|
||||||
failureThreshold: 30
|
|
||||||
livenessProbe:
|
|
||||||
exec:
|
|
||||||
command:
|
|
||||||
- /bin/sh
|
|
||||||
- -c
|
|
||||||
- tailscale ip | grep ^100 > /dev/null
|
|
||||||
periodSeconds: 30
|
|
||||||
failureThreshold: 2
|
|
||||||
readinessProbe:
|
|
||||||
exec:
|
|
||||||
command:
|
|
||||||
- /bin/sh
|
|
||||||
- -c
|
|
||||||
- http_proxy=127.0.0.1:1055 wget -O- ifconfig.co/country 2>&1 | grep $COUNTRY > /dev/null
|
|
||||||
initialDelaySeconds: 60
|
|
||||||
periodSeconds: 60
|
|
||||||
failureThreshold: 3
|
|
||||||
name: tailscale
|
|
||||||
securityContext:
|
|
||||||
privileged: true
|
|
||||||
runAsGroup: 0
|
|
||||||
runAsUser: 0
|
|
||||||
terminationMessagePath: /dev/termination-log
|
|
||||||
terminationMessagePolicy: File
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /var/run/secrets/kubernetes.io/serviceaccount
|
|
||||||
name: kube-api-access-t4rzn
|
|
||||||
readOnly: true
|
|
||||||
- mountPath: /script
|
|
||||||
name: script
|
|
||||||
serviceAccount: tailscale
|
|
||||||
serviceAccountName: tailscale
|
|
||||||
volumes:
|
|
||||||
- name: script
|
|
||||||
configMap:
|
|
||||||
name: tailscale-script
|
|
||||||
- name: kube-api-access-t4rzn
|
|
||||||
projected:
|
|
||||||
defaultMode: 420
|
|
||||||
sources:
|
|
||||||
- serviceAccountToken:
|
|
||||||
expirationSeconds: 3607
|
|
||||||
path: token
|
|
||||||
- configMap:
|
|
||||||
items:
|
|
||||||
- key: ca.crt
|
|
||||||
path: ca.crt
|
|
||||||
name: kube-root-ca.crt
|
|
||||||
- downwardAPI:
|
|
||||||
items:
|
|
||||||
- fieldRef:
|
|
||||||
apiVersion: v1
|
|
||||||
fieldPath: metadata.namespace
|
|
||||||
path: namespace
|
|
|
@ -1,4 +0,0 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: ServiceAccount
|
|
||||||
metadata:
|
|
||||||
name: tailscale
|
|
|
@ -1,15 +0,0 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: tailscale-proxy
|
|
||||||
app.kubernetes.io/instance: tailscale-proxy
|
|
||||||
name: tailscale-proxy
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- port: 1055
|
|
||||||
protocol: TCP
|
|
||||||
targetPort: 1055
|
|
||||||
selector:
|
|
||||||
app: tailscale-proxy
|
|
||||||
type: LoadBalancer
|
|
|
@ -14,7 +14,6 @@ spec:
|
||||||
labels:
|
labels:
|
||||||
app: qbittorrent
|
app: qbittorrent
|
||||||
spec:
|
spec:
|
||||||
initContainers:
|
|
||||||
containers:
|
containers:
|
||||||
- image: qbittorrentofficial/qbittorrent-nox:latest
|
- image: qbittorrentofficial/qbittorrent-nox:latest
|
||||||
name: qbittorrent
|
name: qbittorrent
|
||||||
|
@ -35,6 +34,40 @@ spec:
|
||||||
value: "/config"
|
value: "/config"
|
||||||
- name: QBT_DOWNLOADS
|
- name: QBT_DOWNLOADS
|
||||||
value: "/downloads"
|
value: "/downloads"
|
||||||
|
- env:
|
||||||
|
- name: TS_KUBE_SECRET
|
||||||
|
value: tailscale
|
||||||
|
- name: TS_USERSPACE
|
||||||
|
value: "false"
|
||||||
|
- name: TS_OUTBOUND_HTTP_PROXY_LISTEN
|
||||||
|
value: "localhost:1055"
|
||||||
|
- name: TS_SOCKS5_SERVER
|
||||||
|
value: "localhost:1055"
|
||||||
|
- name: TS_EXTRA_ARGS
|
||||||
|
value: "--exit-node=100.90.55.121"
|
||||||
|
- name: TS_AUTHKEY
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
key: TS_AUTHKEY
|
||||||
|
name: tailscale-auth
|
||||||
|
optional: true
|
||||||
|
livenessProbe:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- ping
|
||||||
|
- -c1
|
||||||
|
- 100.100.100.100
|
||||||
|
initialDelaySeconds: 120
|
||||||
|
periodSeconds: 5
|
||||||
|
image: ghcr.io/tailscale/tailscale:latest
|
||||||
|
name: ts-sidecar
|
||||||
|
securityContext:
|
||||||
|
runAsGroup: 1000
|
||||||
|
runAsUser: 1000
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /var/run/secrets/kubernetes.io/serviceaccount
|
||||||
|
name: kube-api-access-t4rzn
|
||||||
|
readOnly: true
|
||||||
preemptionPolicy: PreemptLowerPriority
|
preemptionPolicy: PreemptLowerPriority
|
||||||
priority: 0
|
priority: 0
|
||||||
serviceAccountName: tailscale
|
serviceAccountName: tailscale
|
||||||
|
|
|
@ -24,7 +24,7 @@ spec:
|
||||||
value: en
|
value: en
|
||||||
- name: WHOOGLE_CONFIG_SEARCH_LANGUAGE
|
- name: WHOOGLE_CONFIG_SEARCH_LANGUAGE
|
||||||
value: en
|
value: en
|
||||||
image: benbusby/whoogle-search@sha256:5bbb30fc4cf67563b48529c5291813b3d49c290e1e8b9e3aaa5081e9cb6e40c0
|
image: benbusby/whoogle-search@sha256:ecccdb598f890140bf5564ea0307d3a72871ab3d14fbf22e308b904846e5c590
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
failureThreshold: 3
|
failureThreshold: 3
|
||||||
|
|
|
@ -23,3 +23,4 @@ spec:
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- musings.martyn.berlin
|
- musings.martyn.berlin
|
||||||
|
secretName: musings-tls
|
||||||
|
|
|
@ -8,4 +8,4 @@ spec:
|
||||||
storageClassName: longhorn-fast
|
storageClassName: longhorn-fast
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
storage: 1280Mi
|
storage: 128Mi
|
||||||
|
|
|
@ -11,13 +11,9 @@ spec:
|
||||||
source:
|
source:
|
||||||
chart: ingress-nginx
|
chart: ingress-nginx
|
||||||
repoURL: https://kubernetes.github.io/ingress-nginx
|
repoURL: https://kubernetes.github.io/ingress-nginx
|
||||||
targetRevision: 4.12.0
|
targetRevision: 4.8.3
|
||||||
helm:
|
helm:
|
||||||
parameters:
|
parameters:
|
||||||
- name: controller.ingressClassResource.default
|
|
||||||
value: "true"
|
|
||||||
- name: controller.config.annotations-risk-level
|
|
||||||
value: "Critical"
|
|
||||||
- name: controller.service.type
|
- name: controller.service.type
|
||||||
value: LoadBalancer
|
value: LoadBalancer
|
||||||
- name: controller.allowSnippetAnnotations
|
- name: controller.allowSnippetAnnotations
|
||||||
|
@ -28,15 +24,6 @@ spec:
|
||||||
value: "351198544"
|
value: "351198544"
|
||||||
- name: controller.extraArgs.default-ssl-certificate
|
- name: controller.extraArgs.default-ssl-certificate
|
||||||
value: "cluster-ingress/cluster-ingress-wildcard"
|
value: "cluster-ingress/cluster-ingress-wildcard"
|
||||||
- name: controller.config.http-snippet
|
|
||||||
value: |-
|
|
||||||
more_set_headers -a "X-Robots-Tag: noai";
|
|
||||||
more_set_headers -a "X-Robots-Tag: Google-Extended: none";
|
|
||||||
more_set_headers -a "X-Robots-Tag: GPTBot: none";
|
|
||||||
more_set_headers -a "X-Robots-Tag: ChatGPT-User: none";
|
|
||||||
more_set_headers -a "X-Robots-Tag: anthropic-ai: none";
|
|
||||||
more_set_headers -a "X-Robots-Tag: CCBot: none";
|
|
||||||
more_set_headers -a "X-Robots-Tag: semrushbot: none";
|
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated:
|
automated:
|
||||||
selfHeal: true
|
selfHeal: true
|
||||||
|
|
|
@ -11,7 +11,7 @@ spec:
|
||||||
source:
|
source:
|
||||||
chart: cert-manager
|
chart: cert-manager
|
||||||
repoURL: https://charts.jetstack.io
|
repoURL: https://charts.jetstack.io
|
||||||
targetRevision: v1.17.1
|
targetRevision: v1.13.1
|
||||||
helm:
|
helm:
|
||||||
parameters:
|
parameters:
|
||||||
- name: installCRDs
|
- name: installCRDs
|
||||||
|
|
45
everything-app/bikerwitch.yaml
Normal file
45
everything-app/bikerwitch.yaml
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: bikerwitch
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
destination:
|
||||||
|
namespace: bikerwitch
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
helm:
|
||||||
|
parameters:
|
||||||
|
- name: service.type
|
||||||
|
value: LoadBalancer
|
||||||
|
- name: persistence.enabled
|
||||||
|
value: "true"
|
||||||
|
- name: persistence.storageClass
|
||||||
|
value: "longhorn-fast"
|
||||||
|
- name: image.repository
|
||||||
|
value: drupal
|
||||||
|
- name: image.tag
|
||||||
|
value: 9.4-php8.0-apache
|
||||||
|
values: |-
|
||||||
|
ingress:
|
||||||
|
enabled: true
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt
|
||||||
|
kubernetes.io/ingress.class: nginx
|
||||||
|
external-dns.alpha.kubernetes.io/target: armnleg.martyn.berlin
|
||||||
|
hosts:
|
||||||
|
- host: bikerwitch.martyn.berlin
|
||||||
|
paths:
|
||||||
|
- /
|
||||||
|
- host: www.bikerwitch.org.uk
|
||||||
|
paths:
|
||||||
|
- /
|
||||||
|
tls:
|
||||||
|
- secretName: bikerwitch-tls
|
||||||
|
hosts:
|
||||||
|
- bikerwitch.martyn.berlin
|
||||||
|
- www.bikerwitch.org.uk
|
||||||
|
path: apps-helm/drupal
|
||||||
|
repoURL: https://git.martyn.berlin/martyn/infra4talos.git
|
||||||
|
targetRevision: HEAD
|
|
@ -11,7 +11,7 @@ spec:
|
||||||
source:
|
source:
|
||||||
chart: csi-driver-smb
|
chart: csi-driver-smb
|
||||||
repoURL: https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts
|
repoURL: https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts
|
||||||
targetRevision: v1.17.0
|
targetRevision: v1.13.0
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated:
|
automated:
|
||||||
selfHeal: true
|
selfHeal: true
|
||||||
|
|
|
@ -41,6 +41,7 @@ spec:
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- "s3.files.martyn.berlin"
|
- "s3.files.martyn.berlin"
|
||||||
|
secretName: s3-le-secret
|
||||||
hosts:
|
hosts:
|
||||||
- host: s3.files.martyn.berlin
|
- host: s3.files.martyn.berlin
|
||||||
paths:
|
paths:
|
||||||
|
@ -55,6 +56,7 @@ spec:
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- "files.martyn.berlin"
|
- "files.martyn.berlin"
|
||||||
|
secretName: files-le-secret
|
||||||
hosts:
|
hosts:
|
||||||
- host: files.martyn.berlin
|
- host: files.martyn.berlin
|
||||||
paths:
|
paths:
|
||||||
|
|
|
@ -25,7 +25,7 @@ spec:
|
||||||
value: "false"
|
value: "false"
|
||||||
chart: longhorn
|
chart: longhorn
|
||||||
repoURL: https://charts.longhorn.io
|
repoURL: https://charts.longhorn.io
|
||||||
targetRevision: 1.6.4
|
targetRevision: 1.6.0
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated:
|
automated:
|
||||||
selfHeal: true
|
selfHeal: true
|
||||||
|
|
|
@ -46,7 +46,8 @@ spec:
|
||||||
- path: /
|
- path: /
|
||||||
pathType: Prefix
|
pathType: Prefix
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- secretName: ntfy-tls
|
||||||
|
hosts:
|
||||||
- ntfy.martyn.berlin
|
- ntfy.martyn.berlin
|
||||||
|
|
||||||
ntfy:
|
ntfy:
|
||||||
|
|
|
@ -24,16 +24,6 @@ spec:
|
||||||
users:
|
users:
|
||||||
- username: martyn
|
- username: martyn
|
||||||
password: "564628"
|
password: "564628"
|
||||||
affinity:
|
|
||||||
nodeAffinity:
|
|
||||||
preferredDuringSchedulingIgnoredDuringExecution:
|
|
||||||
- weight: 1
|
|
||||||
preference:
|
|
||||||
matchExpressions:
|
|
||||||
- key: kubernetes.io/hostname
|
|
||||||
operator: In
|
|
||||||
values:
|
|
||||||
- talos-llu-kx3
|
|
||||||
persistence:
|
persistence:
|
||||||
combineShares: true
|
combineShares: true
|
||||||
sharesToCombine:
|
sharesToCombine:
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
apiVersion: argoproj.io/v1alpha1
|
|
||||||
kind: Application
|
|
||||||
metadata:
|
|
||||||
name: tailscale-proxy
|
|
||||||
namespace: argocd
|
|
||||||
spec:
|
|
||||||
destination:
|
|
||||||
namespace: tailscale-proxy
|
|
||||||
server: https://kubernetes.default.svc
|
|
||||||
project: apps
|
|
||||||
source:
|
|
||||||
path: apps-kustomized/tailscale-proxy
|
|
||||||
repoURL: https://git.martyn.berlin/martyn/infra4talos
|
|
||||||
targetRevision: HEAD
|
|
||||||
syncPolicy:
|
|
||||||
automated:
|
|
||||||
selfHeal: true
|
|
|
@ -1,12 +1,3 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
"$schema": "https://docs.renovatebot.com/renovate-schema.json"
|
||||||
"argocd": {
|
|
||||||
"fileMatch": ["everything-app/.+\\.yaml$"]
|
|
||||||
},
|
|
||||||
"kubernetes": {
|
|
||||||
"fileMatch": [
|
|
||||||
"apps-kustomized/.+\\.yaml$",
|
|
||||||
"apps-helm/.+/tempates/.+\\.yaml"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue