84 Commits

Author SHA1 Message Date
pipeline
3254fda226 Update Chart 2024-05-29 03:01:14 +00:00
pipeline
ef8c5e6ba2 Update Chart 2024-05-29 02:45:48 +00:00
pipeline
01c8cd9e38 Update Chart 2024-05-29 02:29:24 +00:00
pipeline
f761405a7f Update Chart 2024-05-29 02:25:50 +00:00
8a3104684e update 2024-05-25 18:18:18 -05:00
6aaafd3a7e update 2024-05-25 10:55:13 -05:00
78e6bd6b8e update 2024-05-25 08:48:13 -05:00
338e3c23c2 update 2024-05-25 08:43:43 -05:00
f4f02d9147 update 2024-05-25 08:33:40 -05:00
2256f76caa update 2024-05-25 07:22:52 -05:00
5915b5b7a3 update 2024-05-25 07:21:53 -05:00
1e19df0c7a update 2024-05-24 05:01:05 -05:00
43486b4ab4 update 2024-05-23 04:58:42 -05:00
9e1debe339 update 2024-05-23 04:54:11 -05:00
f349a1c43a update 2024-05-23 04:49:54 -05:00
a0f384a428 update 2024-05-19 08:40:40 -05:00
1ef48ae879 update 2024-05-19 08:19:42 -05:00
9c35356c5d update 2024-05-19 08:17:52 -05:00
0d4ec2c08a update 2024-05-19 08:13:28 -05:00
ed970283ae update 2024-05-19 08:12:42 -05:00
6bebb64c41 update 2024-05-19 08:08:17 -05:00
bf6d929398 update 2024-05-19 08:07:48 -05:00
475ccd6576 update 2024-05-19 08:06:59 -05:00
8461a4e818 update 2024-05-19 08:03:37 -05:00
d6b5a05352 update 2024-05-19 08:02:12 -05:00
bd9af60728 update 2024-05-19 08:00:18 -05:00
b30297b951 update 2024-05-19 07:36:05 -05:00
81384297be update 2024-05-19 07:35:10 -05:00
8e585ed7b0 update 2024-05-19 07:27:58 -05:00
1017d6a834 update 2024-05-19 07:26:18 -05:00
db7e629fed update 2024-05-19 07:25:59 -05:00
d01ee2da24 update 2024-05-19 07:18:52 -05:00
083bbe5af5 update 2024-05-19 07:04:28 -05:00
c45d239b8c update 2024-05-19 07:00:51 -05:00
1b1d9178d3 update 2024-05-19 06:59:23 -05:00
ca4d492882 update 2024-05-19 06:55:17 -05:00
b7c14e18b2 update 2024-05-19 06:54:35 -05:00
6ad1f067e4 update 2024-05-19 06:54:06 -05:00
3babb5db29 update 2024-05-19 06:50:32 -05:00
b03642cd1d update 2024-05-19 06:49:33 -05:00
f95e7539f0 update 2024-05-19 06:47:54 -05:00
540a9c6f8a update 2024-05-19 06:47:17 -05:00
ce256ff51a update 2024-05-19 06:38:52 -05:00
d0ec1a9909 update 2024-05-19 06:36:12 -05:00
ec8111c239 update 2024-05-18 09:26:47 -05:00
54e51af63f update 2024-05-18 08:57:04 -05:00
6a57946a53 update 2024-05-18 08:53:43 -05:00
2fe3df9227 update 2024-05-18 08:48:37 -05:00
fd9731b7e1 update 2024-05-18 07:45:43 -05:00
0aeccd39b8 update 2024-05-18 07:43:15 -05:00
d63ee6027d update 2024-05-18 07:42:26 -05:00
dd91465e44 update 2024-05-18 07:33:42 -05:00
d42cf229bf update 2024-05-18 07:18:46 -05:00
ec8afdb6bc update 2024-05-18 07:14:11 -05:00
8568d5e4c0 update 2024-05-18 07:08:59 -05:00
2b4e117ba3 update 2024-05-17 05:09:10 -05:00
9f45c8b145 update 2024-05-17 05:07:52 -05:00
38846d58f3 update 2024-05-17 04:57:51 -05:00
43160a8da1 update 2024-05-17 04:57:22 -05:00
690c9e40c9 update 2024-05-17 04:54:23 -05:00
29136dd395 update 2024-05-17 04:53:44 -05:00
bf6314e914 update 2024-05-17 04:52:41 -05:00
a669676e8b update 2024-05-14 06:12:36 -05:00
f69d3babfc update 2024-05-14 06:11:09 -05:00
6059303fcf update 2024-05-14 05:11:27 -05:00
1a0458354b update 2024-05-14 05:10:37 -05:00
a63fe8cb3f update 2024-05-14 05:10:12 -05:00
c47dba6dc6 update 2024-05-14 05:08:32 -05:00
77faed876d update 2024-05-14 05:07:12 -05:00
b105b7004c update 2024-05-14 05:06:44 -05:00
9c59677594 update 2024-05-14 04:54:36 -05:00
2ef82bd70f update 2024-05-14 04:53:37 -05:00
f0ca5ec41f update 2024-05-14 04:51:35 -05:00
c3411b7f93 update 2024-05-14 04:51:07 -05:00
7beeb5c86f update 2024-05-14 04:44:51 -05:00
aed1ff9556 update 2024-05-13 08:21:10 -05:00
76449c7ccd update 2024-05-13 07:39:25 -05:00
2f9dca4bc7 update 2024-05-13 07:38:09 -05:00
583c548900 update 2024-05-13 07:36:54 -05:00
8ff8705a2f update 2024-05-13 07:17:14 -05:00
d0e7fd57ed update 2024-05-13 06:52:13 -05:00
1be8492f4c update 2024-05-13 06:50:24 -05:00
e06a35f1a2 update 2024-05-13 05:08:56 -05:00
ea811669c3 move everything to dev branch 2024-05-13 04:54:27 -05:00
67 changed files with 442 additions and 736 deletions

View File

@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
targetRevision: dev
path: internalproxy
directory:
recurse: true

View File

@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
targetRevision: dev
path: argocd
destination:
namespace: argocd

View File

@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
targetRevision: dev
path: authentik
destination:
namespace: authentik

View File

@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
targetRevision: dev
path: bitwarden
directory:
recurse: true

View File

@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
targetRevision: dev
path: cert-manager
destination:
namespace: cert-manager

View File

@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
targetRevision: dev
path: crossplane
destination:
namespace: crossplane

View File

@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
targetRevision: dev
path: durpapi
destination:
namespace: durpapi

View File

@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
targetRevision: dev
path: durpot
destination:
namespace: durpot

View File

@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
targetRevision: dev
path: external-dns
destination:
namespace: external-dns

View File

@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
targetRevision: dev
path: external-secrets
destination:
namespace: external-secrets

View File

@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
targetRevision: dev
path: gatekeeper
destination:
namespace: gatekeeper

View File

@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
targetRevision: dev
path: gitlab-runner
destination:
namespace: gitlab-runner

View File

@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
targetRevision: dev
path: heimdall
destination:
namespace: heimdall

View File

@@ -8,9 +8,9 @@ spec:
entryPoints:
- websecure
routes:
- match: Host(`argocd.internal.durp.info`)
- match: Host(`argocd.internal.dev.durp.info`)
middlewares:
- name: whitelist
- name: internal-only
namespace: traefik
kind: Rule
services:
@@ -22,16 +22,6 @@ spec:
---
kind: Service
apiVersion: v1
metadata:
name: argocd-server
spec:
type: ExternalName
externalName: argocd-server.argocd.svc.cluster.local
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
@@ -41,6 +31,6 @@ spec:
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "argocd.internal.durp.info"
commonName: "argocd.internal.dev.durp.info"
dnsNames:
- "argocd.internal.durp.info"
- "argocd.internal.dev.durp.info"

View File

@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
targetRevision: dev
path: krakend
destination:
namespace: krakend

View File

@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
targetRevision: dev
path: kube-prometheus-stack
destination:
namespace: kube-prometheus-stack

View File

@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
targetRevision: dev
path: kubeclarity
destination:
namespace: kubeclarity

View File

@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
targetRevision: dev
path: littlelink
directory:
recurse: true

View File

@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
targetRevision: dev
path: longhorn
destination:
namespace: longhorn-system

View File

@@ -0,0 +1,21 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: metallb-system
namespace: argocd
spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: dev
path: metallb-system
destination:
namespace: metallb-system
name: in-cluster
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

View File

@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
targetRevision: dev
path: nfs-client
directory:
recurse: true

View File

@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
targetRevision: dev
path: open-webui
destination:
namespace: open-webui

View File

@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
targetRevision: dev
path: traefik
destination:
namespace: traefik

View File

@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
targetRevision: dev
path: uptimekuma
directory:
recurse: true

View File

@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
targetRevision: dev
path: vault
destination:
namespace: vault

View File

@@ -33,13 +33,13 @@ argo-cd:
cm:
create: true
annotations: {}
url: https://argocd.internal.durp.info
url: https://argocd.dev.durp.info
oidc.tls.insecure.skip.verify: "true"
dex.config: |
connectors:
- config:
issuer: https://authentik.durp.info/application/o/argocd/
clientID: dbb8ffc06104fb6e7fac3e4ae7fafb1d90437625
issuer: https://authentik.dev.durp.info/application/o/argocd/
clientID: lKuMgyYaOlQMNAUSjsRVYgkwZG9UT6CeFWeTLAcl
clientSecret: $client-secret:clientSecret
insecureEnableGroups: true
scopes:

View File

@@ -6,7 +6,7 @@ spec:
entryPoints:
- websecure
routes:
- match: Host(`authentik.durp.info`) && PathPrefix(`/`)
- match: Host(`authentik.dev.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: authentik-server
@@ -25,9 +25,9 @@ spec:
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "authentik.durp.info"
commonName: "authentik.dev.durp.info"
dnsNames:
- "authentik.durp.info"
- "authentik.dev.durp.info"
---

View File

@@ -1,6 +1,8 @@
authentik:
global:
env:
- name: AUTHENTIK_REDIS__DB
value: "1"
- name: AUTHENTIK_POSTGRESQL__PASSWORD
valueFrom:
secretKeyRef:
@@ -32,9 +34,16 @@ authentik:
registry: registry.internal.durp.info
repository: bitnami/postgresql
pullPolicy: Always
postgresqlUsername: "authentik"
postgresqlDatabase: "authentik"
existingSecret: db-pass
auth:
username: "authentik"
existingSecret: db-pass
secretKeys:
adminPasswordKey: dbpass
userPasswordKey: dbpass
#postgresqlUsername: "authentik"
#postgresqlDatabase: "authentik"
#existingSecret: db-pass
persistence:
enabled: true
storageClass: longhorn

View File

@@ -17,7 +17,7 @@ spec:
spec:
containers:
- name: bitwarden
image: registry.internal.durp.info/vaultwarden/server:1.30.3
image: registry.internal.durp.info/vaultwarden/server:1.30.5
imagePullPolicy: Always
volumeMounts:
- name: bitwarden-pvc
@@ -28,7 +28,7 @@ spec:
containerPort: 80
env:
- name: SIGNUPS_ALLOWED
value: "FALSE"
value: "TRUE"
- name: INVITATIONS_ALLOWED
value: "FALSE"
- name: WEBSOCKET_ENABLED
@@ -39,7 +39,7 @@ spec:
value: "80"
- name: ROCKET_WORKERS
value: "10"
- name: SECRET_USERNAME
- name: ADMIN_TOKEN
valueFrom:
secretKeyRef:
name: bitwarden-secret

View File

@@ -6,7 +6,7 @@ spec:
entryPoints:
- websecure
routes:
- match: Host(`bitwarden.durp.info`) && PathPrefix(`/`)
- match: Host(`bitwarden.dev.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: bitwarden
@@ -25,9 +25,9 @@ spec:
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "bitwarden.durp.info"
commonName: "bitwarden.dev.durp.info"
dnsNames:
- "bitwarden.durp.info"
- "bitwarden.dev.durp.info"
---
@@ -36,7 +36,28 @@ apiVersion: v1
metadata:
name: bitwarden-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: bitwarden.durp.info
external-dns.alpha.kubernetes.io/hostname: bitwarden.dev.durp.info
spec:
type: ExternalName
externalName: durp.info
externalName: dev.durp.info
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: bitwarden-admin-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`bitwarden.dev.durp.info`) && PathPrefix(`/admin`)
kind: Rule
middlewares:
- name: whitelist
namespace: traefik
services:
- name: bitwarden
port: 80
tls:
secretName: bitwarden-tls

View File

@@ -0,0 +1,13 @@
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: selfsigned-issuer
spec:
selfSigned: {}
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: selfsigned-cluster-issuer
spec:
selfSigned: {}

View File

@@ -1,11 +1,11 @@
version: 0.1.0-dev0144
apiVersion: v2
name: durpapi
dependencies:
- version: 12.5.*
condition: postgresql.enabled
name: postgresql
repository: https://charts.bitnami.com/bitnami
description: A Helm chart for Kubernetes
type: application
appVersion: 0.1.0
type: application
name: durpapi
version: 0.1.0-dev0176
apiVersion: v2
description: A Helm chart for Kubernetes
dependencies:
- name: postgresql
repository: https://charts.bitnami.com/bitnami
version: 12.5.*
condition: postgresql.enabled

View File

@@ -6,7 +6,7 @@ spec:
entryPoints:
- websecure
routes:
- match: Host("api.durp.info") && PathPrefix(`/api`)
- match: Host("api.dev.durp.info") && PathPrefix(`/api`)
kind: Rule
middlewares:
- name: jwt
@@ -24,7 +24,7 @@ spec:
entryPoints:
- websecure
routes:
- match: Host("api.durp.info") && PathPrefix(`/swagger`)
- match: Host("api.dev.durp.info") && PathPrefix(`/swagger`)
kind: Rule
services:
- name: "durpapi-service"
@@ -42,3 +42,4 @@ spec:
Required: true
Keys:
- https://authentik.durp.info/application/o/api/jwks

View File

@@ -4,13 +4,13 @@ external-dns:
image:
pullPolicy: Always
txtPrefix: "dev-"
sources:
- service
provider: cloudflare
cloudflare:
secretName : "external-dns"
proxied: true
proxied: false
policy: sync
policy: sync

View File

@@ -7,7 +7,7 @@ spec:
entryPoints:
- websecure
routes:
- match: Host(`heimdall.durp.info`) && PathPrefix(`/`)
- match: Host(`heimdall.dev.durp.info`) && PathPrefix(`/`)
middlewares:
- name: authentik-proxy-provider
namespace: traefik
@@ -15,7 +15,7 @@ spec:
services:
- name: heimdall
port: 80
- match: Host(`heimdall.durp.info`) && PathPrefix(`/outpost.goauthentik.io`)
- match: Host(`heimdall.dev.durp.info`) && PathPrefix(`/outpost.goauthentik.io`)
kind: Rule
services:
- name: ak-outpost-authentik-embedded-outpost
@@ -35,9 +35,9 @@ spec:
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "heimdall.durp.info"
commonName: "heimdall.dev.durp.info"
dnsNames:
- "heimdall.durp.info"
- "heimdall.dev.durp.info"
---

View File

@@ -1,70 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: duplicati
spec:
ports:
- name: app
port: 8200
protocol: TCP
targetPort: 8200
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: duplicati
subsets:
- addresses:
- ip: 192.168.20.253
ports:
- name: app
port: 8200
protocol: TCP
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: duplicati-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`duplicati.internal.durp.info`) && PathPrefix(`/`)
middlewares:
- name: whitelist
namespace: traefik
- name: authentik-proxy-provider
namespace: traefik
kind: Rule
services:
- name: duplicati
port: 8200
- match: Host(`duplicati.internal.durp.info`) && PathPrefix(`/outpost.goauthentik.io`)
kind: Rule
services:
- name: ak-outpost-authentik-embedded-outpost
namespace: authentik
port: 9000
tls:
secretName: duplicati-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: duplicati-tls
spec:
secretName: duplicati-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "duplicati.internal.durp.info"
dnsNames:
- "duplicati.internal.durp.info"

View File

@@ -1,9 +0,0 @@
kind: Service
apiVersion: v1
metadata:
name: gitea-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: gitea.durp.info
spec:
type: ExternalName
externalName: durp.info

View File

@@ -1,71 +0,0 @@
kind: Service
apiVersion: v1
metadata:
name: guac-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: guac.durp.info
spec:
type: ExternalName
externalName: durp.info
---
apiVersion: v1
kind: Service
metadata:
name: guac
spec:
ports:
- name: app
port: 8082
protocol: TCP
targetPort: 8082
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: guac
subsets:
- addresses:
- ip: 192.168.20.253
ports:
- name: app
port: 8082
protocol: TCP
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: guac-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`guac.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: guac
port: 8082
tls:
secretName: guac-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: guac-tls
spec:
secretName: guac-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "guac.durp.info"
dnsNames:
- "guac.durp.info"

View File

@@ -1,9 +0,0 @@
kind: Service
apiVersion: v1
metadata:
name: jellyfin-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: jellyfin.durp.info
spec:
type: ExternalName
externalName: durp.info

View File

@@ -1,9 +0,0 @@
kind: Service
apiVersion: v1
metadata:
name: kasm-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: kasm.durp.info
spec:
type: ExternalName
externalName: durp.info

View File

@@ -1,71 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: nexus
spec:
ports:
- name: app
port: 8081
protocol: TCP
targetPort: 8081
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: nexus
subsets:
- addresses:
- ip: 192.168.20.253
ports:
- name: app
port: 8081
protocol: TCP
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: nexus-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`nexus.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: nexus
port: 8081
tls:
secretName: nexus-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: nexus-tls
spec:
secretName: nexus-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "nexus.durp.info"
dnsNames:
- "nexus.durp.info"
---
kind: Service
apiVersion: v1
metadata:
name: nexus-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: nexus.durp.info
spec:
type: ExternalName
externalName: durp.info

View File

@@ -1,9 +0,0 @@
kind: Service
apiVersion: v1
metadata:
name: plex-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: plex.durp.info
spec:
type: ExternalName
externalName: durp.info

View File

@@ -1,59 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: registry-internal
spec:
ports:
- name: app
port: 5001
protocol: TCP
targetPort: 5001
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: registry-internal
subsets:
- addresses:
- ip: 192.168.20.253
ports:
- name: app
port: 5001
protocol: TCP
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: registry-internal-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`registry.internal.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: registry-internal
port: 5001
tls:
secretName: registry-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: registry-internal-tls
spec:
secretName: registry-internal-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "registry.durp.info"
dnsNames:
- "registry.durp.info"

View File

@@ -1,71 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: registry
spec:
ports:
- name: app
port: 5000
protocol: TCP
targetPort: 5000
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: registry
subsets:
- addresses:
- ip: 192.168.20.253
ports:
- name: app
port: 5000
protocol: TCP
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: registry-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`registry.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: registry
port: 5000
tls:
secretName: registry-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: registry-tls
spec:
secretName: registry-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "registry.durp.info"
dnsNames:
- "registry.durp.info"
---
kind: Service
apiVersion: v1
metadata:
name: registry-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: registry.durp.info
spec:
type: ExternalName
externalName: durp.info

View File

@@ -1,82 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: smokeping
spec:
ports:
- name: app
port: 81
protocol: TCP
targetPort: 81
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: smokeping
subsets:
- addresses:
- ip: 192.168.20.253
ports:
- name: app
port: 81
protocol: TCP
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: smokeping-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`smokeping.durp.info`) && PathPrefix(`/`)
middlewares:
- name: whitelist
namespace: traefik
- name: authentik-proxy-provider
namespace: traefik
kind: Rule
services:
- name: smokeping
port: 81
- match: Host(`smokeping.durp.info`) && PathPrefix(`/outpost.goauthentik.io`)
kind: Rule
services:
- name: ak-outpost-authentik-embedded-outpost
namespace: authentik
port: 9000
tls:
secretName: smokeping-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: smokeping-tls
spec:
secretName: smokeping-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "smokeping.durp.info"
dnsNames:
- "smokeping.durp.info"
---
kind: Service
apiVersion: v1
metadata:
name: smokeping-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: smokeping.durp.info
spec:
type: ExternalName
externalName: durp.info

View File

@@ -1,74 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: speedtest
spec:
ports:
- name: app
port: 6580
protocol: TCP
targetPort: 6580
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: speedtest
subsets:
- addresses:
- ip: 192.168.20.253
ports:
- name: app
port: 6580
protocol: TCP
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: speedtest-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`speedtest.durp.info`) && PathPrefix(`/`)
kind: Rule
middlewares:
- name: authentik-proxy-provider
namespace: traefik
services:
- name: speedtest
port: 6580
tls:
secretName: speedtest-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: speedtest-tls
spec:
secretName: speedtest-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "speedtest.durp.info"
dnsNames:
- "speedtest.durp.info"
---
kind: Service
apiVersion: v1
metadata:
name: speedtest-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: speedtest.durp.info
spec:
type: ExternalName
externalName: durp.info

View File

@@ -1,67 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: tdarr
spec:
ports:
- name: app
port: 8267
protocol: TCP
targetPort: 8267
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: tdarr
subsets:
- addresses:
- ip: 192.168.20.253
ports:
- name: app
port: 8267
protocol: TCP
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: tdarr-ingress
annotations:
cert-manager.io/cluster-issuer: letsencrypt-production
spec:
entryPoints:
- websecure
routes:
- match: Host(`tdarr.internal.durp.info`)
middlewares:
- name: whitelist
namespace: traefik
- name: authentik-proxy-provider
namespace: traefik
kind: Rule
services:
- name: tdarr
port: 8267
scheme: http
tls:
secretName: tdarr-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: tdarr-tls
spec:
secretName: tdarr-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "tdarr.internal.durp.info"
dnsNames:
- "tdarr.internal.durp.info"

View File

@@ -7,9 +7,9 @@ spec:
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "api.durp.info"
commonName: "api.dev.durp.info"
dnsNames:
- "api.durp.info"
- "api.dev.durp.info"
---
@@ -21,7 +21,7 @@ spec:
entryPoints:
- websecure
routes:
- match: Host(`api.durp.info`) && PathPrefix(`/`)
- match: Host(`api.dev.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: krakend-service
@@ -37,10 +37,10 @@ apiVersion: v1
metadata:
name: api-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: api.durp.info
external-dns.alpha.kubernetes.io/hostname: api.dev.durp.info
spec:
type: ExternalName
externalName: durp.info
externalName: dev.durp.info
---
@@ -49,7 +49,7 @@ apiVersion: v1
metadata:
name: api-developer-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: developer.durp.info
external-dns.alpha.kubernetes.io/hostname: developer.dev.durp.info
external-dns.alpha.kubernetes.io/cloudflare-proxied: "false"
spec:
type: ExternalName

View File

@@ -6,7 +6,7 @@ spec:
entryPoints:
- websecure
routes:
- match: Host(`grafana.durp.info`) && PathPrefix(`/`)
- match: Host(`grafana.dev.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: grafana
@@ -25,9 +25,9 @@ spec:
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "grafana.durp.info"
commonName: "grafana.dev.durp.info"
dnsNames:
- "grafana.durp.info"
- "grafana.dev.durp.info"
---
@@ -39,7 +39,7 @@ spec:
entryPoints:
- websecure
routes:
- match: Host(`alertmanager.durp.info`) && PathPrefix(`/`)
- match: Host(`alertmanager.dev.durp.info`) && PathPrefix(`/`)
middlewares:
- name: whitelist
namespace: traefik
@@ -63,9 +63,9 @@ spec:
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "alertmanager.durp.info"
commonName: "alertmanager.dev.durp.info"
dnsNames:
- "alertmanager.durp.info"
- "alertmanager.dev.durp.info"
---
@@ -74,7 +74,7 @@ apiVersion: v1
metadata:
name: grafana-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: grafana.durp.info
external-dns.alpha.kubernetes.io/hostname: grafana.dev.durp.info
spec:
type: ExternalName
externalName: durp.info
externalName: dev.durp.info

View File

@@ -6,7 +6,7 @@ spec:
entryPoints:
- websecure
routes:
- match: Host(`kubeclarity.durp.info`) && PathPrefix(`/`)
- match: Host(`kubeclarity.dev.durp.info`) && PathPrefix(`/`)
middlewares:
- name: whitelist
namespace: traefik
@@ -30,9 +30,9 @@ spec:
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "kubeclarity.durp.info"
commonName: "kubeclarity.dev.durp.info"
dnsNames:
- "kubeclarity.durp.info"
- "kubeclarity.dev.durp.info"
---
@@ -41,7 +41,7 @@ apiVersion: v1
metadata:
name: kubeclarity-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: kubeclarity.durp.info
external-dns.alpha.kubernetes.io/hostname: kubeclarity.dev.durp.info
spec:
type: ExternalName
externalName: durp.info
externalName: dev.durp.info

View File

@@ -6,7 +6,7 @@ spec:
entryPoints:
- websecure
routes:
- match: Host(`links.durp.info`) && PathPrefix(`/`)
- match: Host(`links.dev.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: littlelink
@@ -25,9 +25,9 @@ spec:
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "links.durp.info"
commonName: "links.dev.durp.info"
dnsNames:
- "links.durp.info"
- "links.dev.durp.info"
---
@@ -36,7 +36,8 @@ apiVersion: v1
metadata:
name: links-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: links.durp.info
external-dns.alpha.kubernetes.io/hostname: links.dev.durp.info
spec:
type: ExternalName
externalName: durp.info
externalName: dev.durp.info

View File

@@ -9,4 +9,4 @@ appVersion: "1.16.0"
dependencies:
- name: longhorn
repository: https://charts.longhorn.io
version: 1.3.2
version: 1.6.1

View File

@@ -6,17 +6,17 @@ spec:
entryPoints:
- websecure
routes:
- match: Host(`longhorn.internal.durp.info`) && PathPrefix(`/`)
- match: Host(`longhorn.internal.dev.durp.info`) && PathPrefix(`/`)
middlewares:
- name: whitelist
namespace: traefik
- name: authentik-proxy-provider
namespace: traefik
#- name: authentik-proxy-provider
# namespace: traefik
kind: Rule
services:
- name: longhorn-frontend
port: 80
- match: Host(`longhorn.internal.durp.info`) && PathPrefix(`/outpost.goauthentik.io`)
- match: Host(`longhorn.internal.dev.durp.info`) && PathPrefix(`/outpost.goauthentik.io`)
kind: Rule
services:
- name: ak-outpost-authentik-embedded-outpost
@@ -36,6 +36,6 @@ spec:
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "longhorn.internal.durp.info"
commonName: "longhorn.internal.dev.durp.info"
dnsNames:
- "longhorn.internal.durp.info"
- "longhorn.internal.dev.durp.info"

View File

@@ -47,7 +47,7 @@ longhorn:
persistence:
defaultClass: true
defaultFsType: ext4
defaultClassReplicaCount: 3
defaultClassReplicaCount: 1
defaultDataLocality: disabled # best-effort otherwise
reclaimPolicy: Retain
migratable: false
@@ -76,7 +76,7 @@ longhorn:
snapshotterReplicaCount: ~
defaultSettings:
backupTarget: S3://longhorn@us-east-1/
backupTarget: S3://longhorn-dev@us-east-1/
backupTargetCredentialSecret: longhorn-backup-token-secret
allowRecurringJobWhileVolumeDetached: ~
createDefaultDiskLabeledNodes: ~
@@ -238,7 +238,7 @@ longhorn:
# certificate:
# Configure a pod security policy in the Longhorn namespace to allow privileged pods
enablePSP: true
enablePSP: false
## Specify override namespace, specifically this is useful for using longhorn as sub-chart
## and its release namespace is not the `longhorn-system`

12
metallb-system/Chart.yaml Normal file
View File

@@ -0,0 +1,12 @@
apiVersion: v2
name: metallb-system
description: A Helm chart for Kubernetes
type: application
version: 0.1.0
appVersion: "1.16.0"
dependencies:
- name: metallb
repository: https://metallb.github.io/metallb
version: 0.14.5

View File

@@ -0,0 +1,16 @@
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: cheap
spec:
addresses:
- 192.168.10.130-192.168.10.140
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
name: poop
namespace: metallb-system
spec:
ipAddressPools:
- cheap

196
metallb-system/values.yaml Normal file
View File

@@ -0,0 +1,196 @@
metallb:
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
loadBalancerClass: ""
rbac:
create: true
prometheus:
scrapeAnnotations: false
metricsPort: 7472
speakerMetricsTLSSecret: ""
controllerMetricsTLSSecret: ""
rbacPrometheus: true
serviceAccount: ""
namespace: ""
rbacProxy:
repository: gcr.io/kubebuilder/kube-rbac-proxy
tag: v0.12.0
pullPolicy:
podMonitor:
enabled: false
additionalLabels: {}
annotations: {}
jobLabel: "app.kubernetes.io/name"
interval:
metricRelabelings: []
relabelings: []
serviceMonitor:
enabled: false
speaker:
additionalLabels: {}
annotations: {}
tlsConfig:
insecureSkipVerify: true
controller:
additionalLabels: {}
annotations: {}
tlsConfig:
insecureSkipVerify: true
jobLabel: "app.kubernetes.io/name"
interval:
metricRelabelings: []
relabelings: []
prometheusRule:
enabled: false
additionalLabels: {}
annotations: {}
staleConfig:
enabled: true
labels:
severity: warning
configNotLoaded:
enabled: true
labels:
severity: warning
addressPoolExhausted:
enabled: true
labels:
severity: alert
addressPoolUsage:
enabled: true
thresholds:
- percent: 75
labels:
severity: warning
- percent: 85
labels:
severity: warning
- percent: 95
labels:
severity: alert
bgpSessionDown:
enabled: true
labels:
severity: alert
extraAlerts: []
controller:
enabled: true
# -- Controller log level. Must be one of: `all`, `debug`, `info`, `warn`, `error` or `none`
logLevel: info
image:
repository: quay.io/metallb/controller
tag:
pullPolicy:
strategy:
type: RollingUpdate
serviceAccount:
create: true
name: ""
annotations: {}
securityContext:
runAsNonRoot: true
runAsUser: 65534
fsGroup: 65534
resources: {}
nodeSelector: {}
tolerations: []
priorityClassName: ""
runtimeClassName: ""
affinity: {}
podAnnotations: {}
labels: {}
livenessProbe:
enabled: true
failureThreshold: 3
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
readinessProbe:
enabled: true
failureThreshold: 3
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
tlsMinVersion: "VersionTLS12"
tlsCipherSuites: ""
extraContainers: []
speaker:
enabled: true
logLevel: debug
tolerateMaster: true
memberlist:
enabled: true
mlBindPort: 7946
mlBindAddrOverride: ""
mlSecretKeyPath: "/etc/ml_secret_key"
excludeInterfaces:
enabled: true
ignoreExcludeLB: false
image:
repository: quay.io/metallb/speaker
tag:
pullPolicy:
updateStrategy:
type: RollingUpdate
serviceAccount:
create: true
name: ""
annotations: {}
securityContext: {}
resources: {}
nodeSelector: {}
tolerations: []
priorityClassName: ""
affinity: {}
runtimeClassName: ""
podAnnotations: {}
labels:
pod-security.kubernetes.io/enforce: privileged
pod-security.kubernetes.io/audit: privileged
pod-security.kubernetes.io/warn: privileged
livenessProbe:
enabled: true
failureThreshold: 3
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
readinessProbe:
enabled: true
failureThreshold: 3
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
startupProbe:
enabled: true
failureThreshold: 30
periodSeconds: 5
frr:
enabled: true
image:
repository: quay.io/frrouting/frr
tag: 9.0.2
pullPolicy:
metricsPort: 7473
resources: {}
reloader:
resources: {}
frrMetrics:
resources: {}
extraContainers: []
crds:
enabled: true
validationFailurePolicy: Fail
frrk8s:
enabled: false

View File

@@ -34,9 +34,9 @@ spec:
- name: NFS_SERVER
value: 192.168.20.253
- name: NFS_PATH
value: /mnt/user/k3s
value: /mnt/user/k3s-dev
volumes:
- name: nfs-client-ssd
nfs:
server: 192.168.20.253
path: /mnt/user/k3s
path: /mnt/user/k3s-dev

View File

@@ -6,7 +6,7 @@ spec:
entryPoints:
- websecure
routes:
- match: Host(`open-webui.durp.info`) && PathPrefix(`/`)
- match: Host(`open-webui.dev.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: open-webui
@@ -25,9 +25,9 @@ spec:
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "open-webui.durp.info"
commonName: "open-webui.dev.durp.info"
dnsNames:
- "open-webui.durp.info"
- "open-webui.dev.durp.info"
---
@@ -36,7 +36,7 @@ apiVersion: v1
metadata:
name: open-webui-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: open-webui.durp.info
external-dns.alpha.kubernetes.io/hostname: open-webui.dev.durp.info
spec:
type: ExternalName
externalName: durp.info
externalName: dev.durp.info

View File

@@ -6,7 +6,7 @@ spec:
entryPoints:
- websecure
routes:
- match: Host(`traefik.internal.durp.info`)
- match: Host(`traefik.internal.dev.durp.info`)
middlewares:
- name: authentik-proxy-provider
namespace: traefik
@@ -14,7 +14,7 @@ spec:
services:
- name: api@internal
kind: TraefikService
- match: Host(`traefik.internal.durp.info`) && PathPrefix(`/outpost.goauthentik.io`)
- match: Host(`traefik.internal.dev.durp.info`) && PathPrefix(`/outpost.goauthentik.io`)
kind: Rule
services:
- name: ak-outpost-authentik-embedded-outpost
@@ -34,6 +34,6 @@ spec:
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "traefik.internal.durp.info"
commonName: "traefik.internal.dev.durp.info"
dnsNames:
- "traefik.internal.durp.info"
- "traefik.internal.dev.durp.info"

View File

@@ -0,0 +1,9 @@
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: internal-only
spec:
chain:
middlewares:
- name: traefik-real-ip
- name: whitelist

View File

@@ -26,9 +26,23 @@ apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: whitelist
namespace: traefik
spec:
ipWhiteList:
sourceRange:
- 192.168.20.1/32
- 192.168.10.1/32
- 192.168.30.1/24
- 10.0.0.0/8
ipStrategy:
depth: 1
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: traefik-real-ip
spec:
plugin:
traefik-real-ip:
excludednets:
- "1.1.1.1/24"

View File

@@ -502,6 +502,8 @@ traefik:
- "--log.level=DEBUG"
- --experimental.plugins.jwt.moduleName=github.com/traefik-plugins/traefik-jwt-plugin
- --experimental.plugins.jwt.version=v0.7.0
- --experimental.plugins.traefik-real-ip.moduleName=github.com/soulbalz/traefik-real-ip
- --experimental.plugins.traefik-real-ip.version=v1.0.3
# Environment variables to be passed to Traefik's binary
@@ -578,9 +580,10 @@ traefik:
redirectTo: websecure
#
# Trust forwarded headers information (X-Forwarded-*).
# forwardedHeaders:
# trustedIPs: []
# insecure: false
forwardedHeaders:
trustedIPs:
- "192.168.10.1"
insecure: false
#
# Enable the Proxy Protocol header parsing for the entry point
# proxyProtocol:
@@ -608,9 +611,10 @@ traefik:
# advertisedPort: 4443
#
## Trust forwarded headers information (X-Forwarded-*).
#forwardedHeaders:
# trustedIPs: []
# insecure: false
forwardedHeaders:
trustedIPs:
- "192.168.10.1"
insecure: false
#
## Enable the Proxy Protocol header parsing for the entry point
#proxyProtocol:

View File

@@ -6,7 +6,7 @@ spec:
entryPoints:
- websecure
routes:
- match: Host(`kuma.durp.info`) && PathPrefix(`/`)
- match: Host(`kuma.dev.durp.info`) && PathPrefix(`/`)
middlewares:
- name: authentik-proxy-provider
namespace: traefik
@@ -28,9 +28,9 @@ spec:
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "kuma.durp.info"
commonName: "kuma.dev.durp.info"
dnsNames:
- "kuma.durp.info"
- "kuma.dev.durp.info"
---
@@ -39,7 +39,7 @@ apiVersion: v1
metadata:
name: heimdall-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: kuma.durp.info
external-dns.alpha.kubernetes.io/hostname: kuma.dev.durp.info
spec:
type: ExternalName
externalName: durp.info
externalName: dev.durp.info

View File

@@ -8,7 +8,7 @@ spec:
entryPoints:
- websecure
routes:
- match: Host(`vault.internal.durp.info`)
- match: Host(`vault.internal.dev.durp.info`)
middlewares:
- name: whitelist
namespace: traefik
@@ -31,7 +31,7 @@ spec:
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "vault.internal.durp.info"
commonName: "vault.internal.dev.durp.info"
dnsNames:
- "vault.internal.durp.info"
- "vault.internal.dev.durp.info"

View File

@@ -14,7 +14,7 @@ vault:
injector:
enabled: "-"
replicas: 3
replicas: 2
leaderElector:
enabled: true