add next round

This commit is contained in:
Chris Richardson
2025-01-24 10:29:28 -05:00
parent 19f889a82a
commit 745ed8cfa9
22 changed files with 671 additions and 0 deletions

View File

@@ -0,0 +1,67 @@
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: bitwarden
name: bitwarden-deployment
namespace: default
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: bitwarden
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: bitwarden
spec:
containers:
- env:
- name: SIGNUPS_ALLOWED
value: "false"
- name: INVITATIONS_ALLOWED
value: "true"
- name: ADMIN_TOKEN
valueFrom:
secretKeyRef:
key: admin_token
name: bitwarden
image: vaultwarden/server:latest
imagePullPolicy: IfNotPresent
name: bitwarden
ports:
- containerPort: 80
protocol: TCP
- containerPort: 3012
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /data
name: bitwarden-data
- mountPath: /persistentvolumes
name: nfs-client-root
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext:
fsGroup: 0
runAsGroup: 0
runAsUser: 0
terminationGracePeriodSeconds: 30
volumes:
- name: bitwarden-data
persistentVolumeClaim:
claimName: bitwarden
- name: nfs-client-root
nfs:
path: /volume1/k8s
server: 192.168.1.176

View File

@@ -0,0 +1,25 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
acme.cert-manager.io/http01-edit-in-place: "true"
cert-manager.io/issuer: letsencrypt-prod
kubernetes.io/ingress.class: nginx
name: bitwarden-ingress
namespace: default
spec:
rules:
- host: bitwarden.lilpenguins.com
http:
paths:
- backend:
service:
name: bitwarden-service
port:
number: 80
path: /
pathType: Prefix
tls:
- hosts:
- bitwarden.lilpenguins.com
secretName: bitwarden-tls-prod

View File

@@ -0,0 +1,8 @@
apiVersion: v1
data:
admin_token: VkxCMGRmSUdwMGp4QzE0YzA2QUdvTmI0c1VURmFRU3FCYjF6OW83WXZqbnJTYldyRFVqbE1rOGs2QmVOVElYaw==
kind: Secret
metadata:
name: bitwarden
namespace: default
type: Opaque

View File

@@ -0,0 +1,17 @@
---
apiVersion: v1
kind: Service
metadata:
name: bitwarden-service
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
- name: notification
port: 3012
protocol: TCP
targetPort: 3012
selector:
app: bitwarden

View File

@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: bitwarden
namespace: default
spec:
storageClassName: synology-iscsi-storage-custom
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gi

View File

@@ -0,0 +1,55 @@
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: home-assistants
name: home-assistants-deployment
namespace: default
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: home-assistants
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: home-assistants
spec:
containers:
- image: lscr.io/linuxserver/homeassistant:latest
imagePullPolicy: Always
name: home-assistants
env:
- name: TZ
value: Etcd/New_York
ports:
- containerPort: 8123
protocol: TCP
resources:
requests:
akri.sh/akri-ha-insteon: "1"
akri.sh/akri-ha-zigbee: "1"
limits:
akri.sh/akri-ha-insteon: "1"
akri.sh/akri-ha-zigbee: "1"
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /config
name: home-assistants-config
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: home-assistants-config
persistentVolumeClaim:
claimName: home-assistants-config

View File

@@ -0,0 +1,25 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
acme.cert-manager.io/http01-edit-in-place: "true"
cert-manager.io/issuer: letsencrypt-prod
kubernetes.io/ingress.class: nginx
name: home-assistants-ingress
namespace: default
spec:
rules:
- host: ha.lilpenguins.com
http:
paths:
- backend:
service:
name: home-assistants-service
port:
number: 7123
path: /
pathType: Prefix
tls:
- hosts:
- ha.lilpenguins.com
secretName: home-assistants-tls-prod

View File

@@ -0,0 +1,12 @@
---
apiVersion: v1
kind: Service
metadata:
name: home-assistants-service
spec:
ports:
- port: 7123
targetPort: 8123
name: web
selector:
app: home-assistants

View File

@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: home-assistants-config
namespace: default
spec:
storageClassName: synology-iscsi-storage-custom
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gi

View File

@@ -0,0 +1,82 @@
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nzbget
name: nzbget-deployment
namespace: default
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: nzbget
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: nzbget
spec:
containers:
- command:
- /bin/sh
- -c
- /init
env:
- name: TZ
value: America/New_York
image: linuxserver/nzbget
imagePullPolicy: Always
name: nzbget
ports:
- containerPort: 6789
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /config
name: nzbget-config
- mountPath: /downloads
name: nzbget-downloads
- mountPath: /tv
name: nfs-tv
- mountPath: /movies
name: nfs-movies
- mountPath: /books
name: nfs-books
- mountPath: /persistentvolumes
name: nfs-client-root
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: nzbget-config
persistentVolumeClaim:
claimName: nzbget-config
- name: nzbget-downloads
emptyDir:
sizeLimit: 200Gi
- name: nfs-tv
nfs:
path: /volume2/vol2/TV/
server: 192.168.1.78
- name: nfs-movies
nfs:
path: /volume1/Movies
server: 192.168.1.176
- name: nfs-books
nfs:
path: /volume2/vol2/Ebooks/
server: 192.168.1.78
- name: nfs-client-root
nfs:
path: /volume1/k8s
server: 192.168.1.176

View File

@@ -0,0 +1,12 @@
---
apiVersion: v1
kind: Service
metadata:
name: nzbget-service
spec:
ports:
- port: 6789
targetPort: 6789
name: http
selector:
app: nzbget

View File

@@ -0,0 +1,26 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nzbget-config
namespace: default
spec:
storageClassName: synology-iscsi-storage
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nzbget-downloads
namespace: default
spec:
storageClassName: synology-iscsi-storage
accessModes:
- ReadWriteMany
resources:
requests:
storage: 500Gi

View File

@@ -0,0 +1,58 @@
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: radarr
name: radarr-deployment
namespace: default
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: radarr
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: radarr
spec:
containers:
- image: ghcr.io/linuxserver/radarr:latest
imagePullPolicy: Always
name: radarr
ports:
- containerPort: 7878
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /config
name: radarr-config
- mountPath: /movies
name: nfs-movies
- mountPath: /persistentvolumes
name: nfs-client-root
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: radarr-config
persistentVolumeClaim:
claimName: radarr-config
- name: nfs-movies
nfs:
path: /volume1/Movies
server: 192.168.1.176
- name: nfs-client-root
nfs:
path: /volume1/k8s
server: 192.168.1.176

View File

@@ -0,0 +1,12 @@
---
apiVersion: v1
kind: Service
metadata:
name: radarr-service
spec:
ports:
- port: 7878
targetPort: 7878
name: http
selector:
app: radarr

View File

@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: radarr-config
namespace: default
spec:
storageClassName: synology-iscsi-storage-custom
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gi

View File

@@ -0,0 +1,68 @@
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: sonarr
name: sonarr-deployment
namespace: default
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: sonarr
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: sonarr
spec:
containers:
- image: ghcr.io/linuxserver/sonarr:latest
imagePullPolicy: Always
name: sonarr
ports:
- containerPort: 8989
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /downloads
name: downloads
- mountPath: /sonarBK
name: sonar
- mountPath: /config
name: sonar-config
- mountPath: /tv
name: nfs-tv
- mountPath: /persistentvolumes
name: nfs-client-root
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: downloads
persistentVolumeClaim:
claimName: sonarr-downloads
- name: sonar
persistentVolumeClaim:
claimName: sonarr
- name: sonar-config
persistentVolumeClaim:
claimName: sonarr-config
- name: nfs-tv
nfs:
path: /volume2/vol2/TV/
server: 192.168.1.78
- name: nfs-client-root
nfs:
path: /volume1/k8s
server: 192.168.1.176

View File

@@ -0,0 +1,12 @@
---
apiVersion: v1
kind: Service
metadata:
name: sonarr-service
spec:
ports:
- port: 8989
targetPort: 8989
name: http
selector:
app: sonarr

View File

@@ -0,0 +1,40 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: sonarr
namespace: default
spec:
storageClassName: synology-iscsi-storage-custom
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: sonarr-config
namespace: default
spec:
storageClassName: synology-iscsi-storage-custom
accessModes:
- ReadWriteMany
resources:
requests:
storage: 2Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: sonarr-downloads
namespace: default
spec:
storageClassName: synology-iscsi-storage-custom
accessModes:
- ReadWriteMany
resources:
requests:
storage: 50Gi

View File

@@ -0,0 +1,57 @@
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: technitium
name: technitium-deployment
namespace: default
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: technitium
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: technitium
spec:
containers:
- image: technitium/dns-server:latest
imagePullPolicy: Always
name: technitium
env:
- name: TZ
value: Etcd/New_York
- name: DNS_SERVER_DOMAIN
value: dns-server
- name: DNS_SERVER_ADMIN_PASSWORD
value: "Nb4^vo9Gg*MFoJ"
ports:
- containerPort: 5380
protocol: TCP
- containerPort: 53
protocol: TCP
- containerPort: 53
protocol: UDP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /config
name: technitium-config
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: technitium-config
persistentVolumeClaim:
claimName: technitium-config

View File

@@ -0,0 +1,22 @@
---
apiVersion: v1
kind: Service
metadata:
name: technitium-service
spec:
ports:
- port: 5380
targetPort: 5380
name: web-admin
- port: 53
protocol: TCP
targetPort: 53
name: dns-tcp
- port: 53
protocol: UDP
targetPort: 53
name: dns-udp
selector:
app: technitium
sessionAffinity: None
type: LoadBalancer

View File

@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: technitium-config
namespace: default
spec:
storageClassName: synology-iscsi-storage-custom
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi

25
apps/usb/usb.yaml Normal file
View File

@@ -0,0 +1,25 @@
apiVersion: akri.sh/v0
kind: Configuration
metadata:
name: akri-ha-insteon
spec:
capacity: 1
discoveryHandler:
discoveryDetails: |
groupRecursive: true # Recommended unless using very exact udev rules
udevRules:
- ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001"
name: udev
---
apiVersion: akri.sh/v0
kind: Configuration
metadata:
name: akri-ha-zigbee
spec:
capacity: 1
discoveryHandler:
discoveryDetails: |
groupRecursive: true # Recommended unless using very exact udev rules
udevRules:
- ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="8a2a"
name: udev