Selaa lähdekoodia

Merge branch 'master' of ssh://gogs-ssh:2222/breandan/monorepo

Breandan Dezendorf 2 vuotta sitten
vanhempi
sitoutus
c40d520232

+ 7 - 1
WORKSPACE

@@ -46,7 +46,6 @@ go_register_toolchains(version = "1.19.5")
 # The first declaration of an external repository "wins".
 ############################################################
 
-
 load(
     "@io_bazel_rules_docker//repositories:repositories.bzl",
     container_repositories = "repositories",
@@ -150,3 +149,10 @@ http_archive(
 
 load("@rules_python//python:repositories.bzl", "py_repositories")
 py_repositories()
+
+load("@rules_python//python:pip.bzl", "pip_install")
+
+pip_install(
+   name = "python_deps",
+   requirements = "//third_party:requirements.txt",
+)

+ 3 - 0
dezendorf/applications/gopy/Makefile

@@ -1,2 +1,5 @@
 migrate:
 	FLASK_APP=gopy.py python3 -m  flask db upgrade
+
+build:
+	/bin/bash build.sh

+ 1 - 0
dezendorf/applications/offset-fixer/BUILD

@@ -3,4 +3,5 @@ load("@rules_python//python:defs.bzl", "py_binary")
 py_binary(
   name = "offset-fixer",
   srcs = ["offset-fixer.py"],
+  visibility = ["//visibility:public"],
 )

+ 10 - 0
dezendorf/homelab/k3s/all-vips

@@ -0,0 +1,10 @@
+#VIPS="radarr sonarr lidarr jackett transmission argocd calibre books airsonic"
+
+VIPS=$(grep 192.168.1.87 pihole/pihole.yaml | grep -v mysql |  grep -v tesseract | sed -e 's/192.168.1.87//g'| sed -e 's/ //g' | sort)
+
+for i in ${VIPS}; do
+  if true | echo quit | openssl s_client -connect ${i}.dezendorf.net:443 -brief 2>&1 | grep error > /dev/null; then
+    echo "Host ${i}.dezendorf.net is in error"
+  fi
+
+done

+ 2 - 2
dezendorf/homelab/k3s/codeserver/codeserver.yaml

@@ -92,7 +92,7 @@ spec:
   entryPoints:
     - websecure
   routes:
-  - match: Host(`codeserver.dezendorf.net`)
+  - match: (Host(`codeserver.dezendorf.net`)||Host(`codeserverr.dezendorf.net`))
     kind: Rule
     middlewares:
     - name: authelia
@@ -111,7 +111,7 @@ spec:
   entryPoints:
     - websecure
   routes:
-  - match: Host(`devport.dezendorf.net`)
+  - match: (Host(`devport.dezendorf.net`)||Host(`devportr.dezendorf.net`))
     kind: Rule
     middlewares:
     - name: authelia

+ 2 - 2
dezendorf/homelab/k3s/docker-registry/docker-registry.yaml

@@ -58,7 +58,7 @@ spec:
   entryPoints:
     - websecure
   routes:
-  - match: Host(`docker.dezendorf.net`)
+  - match: (Host(`docker.dezendorf.net`)||Host(`dockerr.dezendorf.net`))
     kind: Rule
     services:
     - name: docker-registry-service
@@ -75,7 +75,7 @@ spec:
   entryPoints:
     - web
   routes:
-  - match: Host(`docker.dezendorf.net`)
+  - match: (Host(`docker.dezendorf.net`)||Host(`dockerr.dezendorf.net`))
     kind: Rule
     middlewares:
     - name: redirecthttps

+ 3 - 3
dezendorf/homelab/k3s/gogs/gogs.yaml

@@ -83,7 +83,7 @@ spec:
   entryPoints:
     - web
   routes:
-  - match: Host(`gogs.dezendorf.net`)
+  - match: (Host(`gogs.dezendorf.net`)||Host(`git.dezendorf.net`))
     kind: Rule
     middlewares:
     - name: redirecthttps
@@ -100,7 +100,7 @@ spec:
   entryPoints:
     - websecure
   routes:
-  - match: Host(`gogs.dezendorf.net`)
+  - match: (Host(`gogs.dezendorf.net`)||Host(`git.dezendorf.net`))
     kind: Rule
     services:
     - name: gogs
@@ -217,4 +217,4 @@ data:
     
     [security]
     INSTALL_LOCK = true
-    SECRET_KEY   = WityxCyHAcBVyLm
+    SECRET_KEY   = WityxCyHAcBVyLm

+ 5 - 5
dezendorf/homelab/k3s/media/calibre.yaml

@@ -84,7 +84,7 @@ spec:
   entryPoints:
     - web
   routes:
-  - match: Host(`calibre.dezendorf.net`)
+  - match: (Host(`calibre.dezendorf.net`)||Host(`calibrer.dezendorf.net`))
     kind: Rule
     middlewares:
     - name: redirecthttps
@@ -101,7 +101,7 @@ spec:
   entryPoints:
     - websecure
   routes:
-  - match: Host(`calibre.dezendorf.net`)
+  - match: (Host(`calibre.dezendorf.net`)||Host(`calibrer.dezendorf.net`))
     kind: Rule
     services:
     - name: calibre
@@ -118,7 +118,7 @@ spec:
   entryPoints:
     - websecure
   routes:
-  - match: Host(`books.dezendorf.net`)
+  - match: (Host(`books.dezendorf.net`)||Host(`booksr.dezendorf.net`))
     kind: Rule
     services:
     - name: books
@@ -135,10 +135,10 @@ spec:
   entryPoints:
     - web
   routes:
-  - match: Host(`books.dezendorf.net`)
+  - match: (Host(`books.dezendorf.net`)||Host(`booksr.dezendorf.net`))
     kind: Rule
     middlewares:
     - name: redirecthttps
     services:
     - name: books
-      port: 8081
+      port: 8081

+ 12 - 0
dezendorf/homelab/k3s/media/disks.yaml

@@ -97,6 +97,18 @@ spec:
 ---
 apiVersion: v1
 kind: PersistentVolumeClaim
+metadata:
+  name: transmission-config-pvc
+spec:
+  accessModes:
+    - ReadWriteOnce
+  storageClassName: nfs
+  resources:
+    requests:
+      storage: 100M
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
 metadata:
   name: beets-data-pvc
 spec:

+ 2 - 0
dezendorf/homelab/k3s/media/jackett.yaml

@@ -23,6 +23,8 @@ spec:
           value: "true"
         - name: TZ
           value: America/New_York
+        - name: OVERRIDE_DNS
+          value: "8.8.8.8"
         ports:
         - name: web
           containerPort: 9117

+ 10 - 0
dezendorf/homelab/k3s/media/transmission.yaml

@@ -41,6 +41,10 @@ spec:
           value: "1000"
         - name: PGID
           value: "1000"
+        - name: PEER_DNS
+          value: "false"
+        - name: OVERRIDE_DNS
+          value: "8.8.8.8"
         - name: OPENVPN_PROVIDER
           value: PIA
         - name: TRANSMISSION_DOWNLOAD_DIR
@@ -59,6 +63,9 @@ spec:
         - name: web
           containerPort: 9091
         volumeMounts:
+        - name: transmission-config
+          mountPath: "/config/transmission-home"
+          subPath: "config/transmission-home"
         - name: media-volume
           mountPath: "/downloads/transmission"
           subPath: "downloads/transmission"
@@ -66,6 +73,9 @@ spec:
       - name: media-volume
         persistentVolumeClaim:
           claimName: media-pvc
+      - name: transmission-config
+        persistentVolumeClaim:
+          claimName: transmission-config-pvc
 ---
 apiVersion: v1
 kind: Service

+ 1 - 1
dezendorf/homelab/k3s/media/whisparr.yaml

@@ -17,7 +17,7 @@ spec:
     spec:
       containers:
       - name: whisparr
-        image: docker.dezendorf.net/whisparr:aa42819
+        image: docker.dezendorf.net/whisparr:315825c
         env:
         - name: PUID
           value: "1000"

+ 5 - 5
dezendorf/homelab/k3s/monitoring/ingress.yaml

@@ -8,7 +8,7 @@ spec:
   entryPoints:
     - websecure
   routes:
-  - match: Host(`prometheus.dezendorf.net`)
+  - match: (Host(`prometheus.dezendorf.net`)||Host(`prometheusr.dezendorf.net`))
     kind: Rule
     services:
     - name: prometheus-operated
@@ -25,7 +25,7 @@ spec:
   entryPoints:
     - websecure
   routes:
-  - match: Host(`grafana.dezendorf.net`)
+  - match: (Host(`grafana.dezendorf.net`)||Host(`grafanar.dezendorf.net`))
     kind: Rule
     services:
     - name: prometheus-grafana
@@ -42,7 +42,7 @@ spec:
   entryPoints:
     - web
   routes:
-  - match: Host(`alertmanager.dezendorf.net`)
+  - match: (Host(`alertmanager.dezendorf.net`)||Host(`alertmanagerr.dezendorf.net`))
     kind: Rule
     middlewares:
     - name: redirecthttps
@@ -59,7 +59,7 @@ spec:
   entryPoints:
     - websecure
   routes:
-  - match: Host(`logs.dezendorf.net`)
+  - match: (Host(`logs.dezendorf.net`)||Host(`logsr.dezendorf.net`))
     kind: Rule
     services:
     - name: loki
@@ -76,7 +76,7 @@ spec:
   entryPoints:
     - web
   routes:
-  - match: Host(`logs.dezendorf.net`)
+  - match: (Host(`logs.dezendorf.net`)||Host(`logsr.dezendorf.net`))
     kind: Rule
     middlewares:
     - name: redirecthttps

+ 2 - 2
dezendorf/homelab/k3s/photoprism/ingress.yaml

@@ -8,7 +8,7 @@ spec:
   entryPoints:
     - web
   routes:
-  - match: Host(`photos.dezendorf.net`)
+  - match: (Host(`photo.dezendorf.net`)||Host(`photos.dezendorf.net`))
     kind: Rule
     middlewares:
     - name: redirecthttps
@@ -25,7 +25,7 @@ spec:
   entryPoints:
     - websecure
   routes:
-  - match: Host(`photos.dezendorf.net`)
+  - match: (Host(`photo.dezendorf.net`)||Host(`photos.dezendorf.net`))
     kind: Rule
     services:
     - name: photoprism-service

+ 1 - 1
dezendorf/homelab/k3s/photoprism/photoprism.yaml

@@ -136,7 +136,7 @@ spec:
             - name: PHOTOPRISM_SITE_TITLE
               value: PhotoPrism
             - name: PHOTOPRISM_SITE_URL
-              value: https://photos.dezendorf.net/
+              value: https://photo.dezendorf.net/
             - name: PHOTOPRISM_UPLOAD_NSFW
               value: "true"
             - name: PHOTOPRISM_WORKERS

+ 9 - 3
dezendorf/homelab/k3s/pihole/pihole.yaml

@@ -139,7 +139,7 @@ spec:
   entryPoints:
     - web
   routes:
-  - match: Host(`pihole.dezendorf.net`) 
+  - match: Host(`pihole.dezendorf.net`)
     kind: Rule
     middlewares:
     - name: redirecthttps
@@ -185,11 +185,14 @@ data:
     192.168.1.50 astoria
     192.168.1.87 go
     192.168.1.87 photos
+    192.168.1.87 photo
     192.168.1.87 pihole
     192.168.1.87 tesseract
     192.168.1.87 sso
+    192.168.1.87 cd
     192.168.1.87 argocd
-    192.168.1.87 auth
+    192.168.1.87 docker
+    192.168.1.87 dockerr
     192.168.1.87 longhorn
     192.168.1.87 whoami
     192.168.1.87 transmission
@@ -211,7 +214,6 @@ data:
     192.168.1.87 gogs
     192.168.1.87 grafana
     192.168.1.87 mysql
-    192.168.1.87 gopy
     192.168.1.87 devport
     192.168.1.157 thick2
     192.168.1.158 thick1
@@ -223,6 +225,10 @@ data:
     192.168.1.159 apc-pdu-02
     192.168.1.160 rpi4-0
     192.168.1.161 rpi4-1
+    192.168.1.162 rpi4-2
+    192.168.1.163 rpi4-3
+    192.168.1.164 rpi4-4
+    192.168.1.165 rpi4-5
     192.168.1.236 plex
 
 ---

+ 69 - 0
dezendorf/homelab/k3s/smarthome/ingress.yaml

@@ -0,0 +1,69 @@
+---
+apiVersion: traefik.containo.us/v1alpha1
+kind: IngressRoute
+metadata:
+  name: homeassistant-ingress-route
+  namespace: smarthome
+spec:
+  entryPoints:
+    - web
+  routes:
+  - match: Host(`homeassistant.dezendorf.net`)
+    kind: Rule
+    middlewares:
+    - name: redirecthttps
+    services:
+    - name: homeassistant-service
+      port: 2342
+---
+apiVersion: traefik.containo.us/v1alpha1
+kind: IngressRoute
+metadata:
+  name: homeassistant-websecure-route
+  namespace: smarthome
+spec:
+  entryPoints:
+    - websecure
+  routes:
+  - match: Host(`homeassistant.dezendorf.net`)
+    kind: Rule
+    services:
+    - name: homeassistant-service
+      port: 2342
+  tls:
+    certResolver: myresolver
+
+---
+apiVersion: traefik.containo.us/v1alpha1
+kind: IngressRoute
+metadata:
+  name: homebridge-ingress-route
+  namespace: smarthome
+spec:
+  entryPoints:
+    - web
+  routes:
+  - match: Host(`homebridge.dezendorf.net`)
+    kind: Rule
+    middlewares:
+    - name: redirecthttps
+    services:
+    - name: homebridge-service
+      port: 2342
+---
+apiVersion: traefik.containo.us/v1alpha1
+kind: IngressRoute
+metadata:
+  name: homebridge-websecure-route
+  namespace: smarthome
+spec:
+  entryPoints:
+    - websecure
+  routes:
+  - match: Host(`homebridge.dezendorf.net`)
+    kind: Rule
+    services:
+    - name: homebridge-service
+      port: 2342
+  tls:
+    certResolver: myresolver

+ 4 - 0
dezendorf/homelab/k3s/smarthome/setup.sh

@@ -0,0 +1,4 @@
+kubectl create namespace smarthome
+kubectl apply --namespace smarthome -f homeassistant.yaml
+kubectl apply --namespace smarthome -f homebridge.yaml
+kubectl apply --namespace smarthome -f ingress.yaml

+ 23 - 0
dezendorf/homelab/k3s/whoami/04-whoami.yaml

@@ -0,0 +1,23 @@
+kind: Deployment
+apiVersion: apps/v1
+metadata:
+  name: whoami
+  labels:
+    app: whoami
+
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: whoami
+  template:
+    metadata:
+      labels:
+        app: whoami
+    spec:
+      containers:
+        - name: whoami
+          image: traefik/whoami
+          ports:
+            - name: web
+              containerPort: 80

+ 14 - 0
dezendorf/homelab/k3s/whoami/05-whoami-service.yaml

@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: whoami
+
+spec:
+  type: ClusterIP
+  ports:
+    - name: web
+      port: 80
+      targetPort: 80
+
+  selector:
+    app: whoami

+ 17 - 0
dezendorf/homelab/k3s/whoami/06-whoami-ingress.yaml

@@ -0,0 +1,17 @@
+apiVersion: traefik.containo.us/v1alpha1
+kind: IngressRoute
+metadata:
+  name: whoami-ingress-route
+  namespace: default
+spec:
+  entryPoints:
+    - websecure
+  routes:
+  - match: Host(`whoami.dezendorf.net`)
+    kind: Rule
+    services:
+    - name: whoami
+      port: 80
+  tls:
+    certResolver: myresolver
+

+ 54 - 0
dezendorf/homelab/k3s/whoami/foo

@@ -0,0 +1,54 @@
+kind: Deployment
+apiVersion: apps/v1
+metadata:
+  name: whoami
+  labels:
+    app: whoami
+
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: whoami
+  template:
+    metadata:
+      labels:
+        app: whoami
+    spec:
+      containers:
+        - name: whoami
+          image: traefik/whoami
+          ports:
+            - name: web
+              containerPort: 80
+apiVersion: v1
+kind: Service
+metadata:
+  name: whoami
+
+spec:
+  type: ClusterIP
+  ports:
+    - name: web
+      port: 80
+      targetPort: 80
+
+  selector:
+    app: whoami
+apiVersion: traefik.containo.us/v1alpha1
+kind: IngressRoute
+metadata:
+  name: whoami-ingress-route
+  namespace: default
+spec:
+  entryPoints:
+    - websecure
+  routes:
+  - match: (Host(`whoami.dezendorf.net`)||Host(`whoamir.dezendorf.net`))
+    kind: Rule
+    services:
+    - name: whoami
+      port: 80
+  tls:
+    certResolver: myresolver
+