Compare commits

..

51 Commits

Author SHA1 Message Date
a536911c7f Update deploy/deluge/deluge-deploy.yaml 2025-05-11 13:44:06 +02:00
ca6d8ece07 Merge pull request 'Update Helm release plane-ce to v1.1.0' (#3) from renovate/plane-ce-1.x into main
Reviewed-on: #3
2025-03-28 14:08:50 +01:00
403e0adc4a Update Helm release plane-ce to v1.1.0 2025-03-27 13:00:41 +00:00
ded8953892 fix node selector 2025-03-27 00:09:57 +01:00
5701c2fffe update drone 2025-03-26 23:30:31 +01:00
23b96db049 fix drone perms 2025-03-26 17:54:04 +01:00
e9f8b65f79 update drone runner 2025-03-26 17:51:45 +01:00
fdc23b9b66 fix drone 2025-03-26 17:44:05 +01:00
c0fbef2afa update drone 2025-03-26 17:41:14 +01:00
f055fd498b update drone 2025-03-26 17:30:10 +01:00
d3d2852c4c update drone logging 2025-03-26 17:18:31 +01:00
7a9a87169a set debug level for drone 2025-03-26 17:13:36 +01:00
44142581ec update drone 2025-03-26 17:09:58 +01:00
2c05411617 update drone runners 2025-03-26 17:05:31 +01:00
30a08f1b41 update drone amd64 2025-03-26 16:56:59 +01:00
b3811f31cd update drone 2025-03-25 14:04:16 +01:00
4973a38623 update drone 2025-03-25 14:02:45 +01:00
5dd8427336 fix drone 2025-03-25 13:48:28 +01:00
0a393b19c8 update droneupdate drone 2025-03-25 13:38:25 +01:00
c33107f0d8 update drone 2025-03-25 04:20:53 +01:00
27cbf5b35f fix name 2025-03-25 03:29:32 +01:00
f014334375 update drone 2025-03-25 03:28:19 +01:00
19d75c5179 update drone 2025-03-25 03:24:41 +01:00
9a1c192d66 update deluge 2025-03-25 03:09:20 +01:00
5d210d7c31 Merge pull request 'Configure Renovate' (#2) from renovate/configure into main
Reviewed-on: #2
2025-03-23 16:02:47 +01:00
20f384f59d Add renovate.json 2025-03-23 15:02:02 +00:00
1a296f6630 Revert "try renovate config"
This reverts commit 60fdb7794b.
2025-03-23 16:01:18 +01:00
aa7db1d91a update drone server 2025-03-23 15:57:25 +01:00
35dd82d3fa update drone 2025-03-23 15:50:29 +01:00
c2303473b5 update drone 2025-03-23 15:45:22 +01:00
a5a6194ef5 ignore secrets 2025-03-22 23:41:46 +01:00
60fdb7794b try renovate config 2025-03-22 23:39:19 +01:00
647c088918 fix renovate? 2025-03-22 23:26:40 +01:00
c35754b4ef add renovate 2025-03-22 23:23:31 +01:00
04df9f7d56 fix storage 2025-03-22 23:05:52 +01:00
0370e5fb11 fix storage 2025-03-22 23:05:11 +01:00
09f8a52a4a update storage 2025-03-22 23:04:10 +01:00
4a0a54eb6d use rabbitmq svc for host 2025-03-22 00:23:28 +01:00
0493c177af fix stuff 2025-03-21 22:52:46 +01:00
a2455e4b5b fix ver 2025-03-21 22:05:16 +01:00
cfd2a59b62 fix ver 2025-03-21 22:03:07 +01:00
d21f192a65 fix ver 2025-03-21 22:00:14 +01:00
eb53c0e663 try plane 2025-03-21 21:58:38 +01:00
12f7343c3b remove huly because it's terrible 2025-03-21 21:44:09 +01:00
1e8af651a1 fix minio 2025-03-21 21:14:31 +01:00
dbe81b336a Revert "use https"
This reverts commit 4eb385d134.
2025-03-21 20:51:36 +01:00
4eb385d134 use https 2025-03-21 20:44:25 +01:00
30a460fbc5 add namespace to huly 2025-03-21 20:31:38 +01:00
406a470489 implement huly 2025-03-21 20:26:53 +01:00
86d9b89769 scale drone runners 2025-03-20 03:22:20 +01:00
d1fd69888a fix oauth2 longhorn proxy 2025-03-20 02:56:32 +01:00
19 changed files with 276 additions and 98 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
**/secret.yaml

View File

@@ -13,9 +13,16 @@ spec:
labels:
app: deluge
spec:
securityContext:
runAsUser: 0
containers:
- name: deluge
image: lscr.io/linuxserver/deluge:latest
image: bottledpills/deluge-openvpn:v1.7
securityContext:
privileged: true # Often required for TUN/TAP devices
capabilities:
add:
- NET_ADMIN
ports:
- containerPort: 8112
protocol: TCP
@@ -26,19 +33,31 @@ spec:
- containerPort: 58846
protocol: TCP
env:
- name: PUID
value: "1000"
- name: PGID
value: "1000"
- name: TZ
value: Etc/UTC
- name: DELUGE_LOGLEVEL
value: "error"
- name: OPENVPN_PROVIDER
value: "nordvpn"
- name: OPENVPN_USERNAME
valueFrom:
secretKeyRef:
name: nordvpn-credentials
key: username
- name: OPENVPN_PASSWORD
valueFrom:
secretKeyRef:
name: nordvpn-credentials
key: password
- name: LOCAL_NETWORK
value: "10.10.10.0/24,10.244.0.0/24"
volumeMounts:
- name: config
mountPath: /config
- name: downloads
mountPath: /downloads
mountPath: /download
- name: dev-net-tun
mountPath: /dev/net/tun
volumes:
- name: config
persistentVolumeClaim:
@@ -46,3 +65,7 @@ spec:
- name: downloads
persistentVolumeClaim:
claimName: deluge-downloads
- name: dev-net-tun
hostPath:
path: /dev/net/tun
type: CharDevice

View File

@@ -0,0 +1,26 @@
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: drone
name: drone
rules:
- apiGroups: [""]
resources: ["secrets"]
verbs: ["create", "delete"]
- apiGroups: [""]
resources: ["pods", "pods/log"]
verbs: ["get", "create", "delete", "list", "watch", "update"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: drone
namespace: drone
subjects:
- kind: ServiceAccount
name: default
namespace: drone
roleRef:
kind: Role
name: drone
apiGroup: rbac.authorization.k8s.io

View File

@@ -0,0 +1,36 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: drone-runner-amd64
namespace: drone
spec:
replicas: 1
selector:
matchLabels:
app: drone-runner-amd64
template:
metadata:
labels:
app: drone-runner-amd64
spec:
nodeSelector:
kubernetes.io/arch: "amd64"
containers:
- name: drone-runner-amd64
image: drone/drone-runner-kube:latest
imagePullPolicy: Always
env:
- name: DRONE_RPC_HOST
value: "drone.beatrice.wtf"
- name: DRONE_RPC_PROTO
value: "https"
- name: DRONE_RPC_SECRET
value: "26a2221fd8090ea38720fc445eca6a45a39a63fcce3ba30712e7153b855f8"
- name: DRONE_RUNNER_CAPACITY
value: "3"
- name: DRONE_DEBUG
value: "true"
- name: DRONE_NAMESPACE_DEFAULT
value: "drone"
- name: DRONE_NODE_SELECTOR_DEFAULT
value: "kubernetes.io/arch:amd64"

View File

@@ -0,0 +1,36 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: drone-runner-arm64
namespace: drone
spec:
replicas: 1
selector:
matchLabels:
app: drone-runner-arm64
template:
metadata:
labels:
app: drone-runner-arm64
spec:
nodeSelector:
kubernetes.io/arch: "arm64"
containers:
- name: drone-runner-arm64
image: drone/drone-runner-kube:latest
imagePullPolicy: Always
env:
- name: DRONE_RPC_HOST
value: "drone.beatrice.wtf"
- name: DRONE_RPC_PROTO
value: "https"
- name: DRONE_RPC_SECRET
value: "26a2221fd8090ea38720fc445eca6a45a39a63fcce3ba30712e7153b855f8"
- name: DRONE_RUNNER_CAPACITY
value: "3"
- name: DRONE_DEBUG
value: "true"
- name: DRONE_NAMESPACE_DEFAULT
value: "drone"
- name: DRONE_NODE_SELECTOR_DEFAULT
value: "kubernetes.io/arch:arm64"

View File

@@ -1,46 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: drone-runner
namespace: drone
spec:
replicas: 1
selector:
matchLabels:
name: drone-runner
template:
metadata:
labels:
name: drone-runner
spec:
containers:
- name: drone-runner
image: drone/drone-runner-kube:latest
imagePullPolicy: Always
ports:
- containerPort: 3000
env:
- name: "DRONE_RPC_HOST"
value: "drone.beatrice.wtf"
- name: "DRONE_RPC_PROTO"
value: "https"
- name: "DRONE_RPC_SECRET"
value: "26a2221fd8090ea38720fc445eca6a45a39a63fcce3ba30712e7153b855f8"
- name: "DRONE_RUNNER_CAPACITY"
value: "5"
---
apiVersion: v1
kind: Service
metadata:
name: drone-runner
namespace: drone
labels:
name: drone-runner
spec:
type: ClusterIP
ports:
- protocol: TCP
port: 3000
targetPort: 3000
selector:
name: drone-runner

View File

@@ -19,23 +19,29 @@ spec:
imagePullPolicy: Always
env:
- name: "DRONE_GITEA_CLIENT_ID"
value: e6a4fb3b-e6b1-43dd-8f45-4def94742609
value: "e6a4fb3b-e6b1-43dd-8f45-4def94742609"
- name: "DRONE_GITEA_CLIENT_SECRET"
value: gto_4ggtzkrukdzsmheoa2b4wz5cza2jif6gpf7wunbrtxa74senlykq
value: "gto_4ggtzkrukdzsmheoa2b4wz5cza2jif6gpf7wunbrtxa74senlykq"
- name: "DRONE_GITEA_SERVER"
value: https://git.beatrice.wtf
value: "https://git.beatrice.wtf"
- name: "DRONE_GIT_ALWAYS_AUTH"
value: "false"
- name: "DRONE_RPC_SECRET"
value: 26a2221fd8090ea38720fc445eca6a45a39a63fcce3ba30712e7153b855f8
value: "26a2221fd8090ea38720fc445eca6a45a39a63fcce3ba30712e7153b855f8"
- name: "DRONE_WEBHOOK_SECRET"
value: 9329e50de8f250dc3c997571f395d09e
value: "9329e50de8f250dc3c997571f395d09e"
- name: "DRONE_SERVER_HOST"
value: drone.beatrice.wtf
value: "drone.beatrice.wtf"
- name: "DRONE_SERVER_PROTO"
value: https
value: "https"
- name: "DRONE_SERVER_PORT"
value: :80
value: ":80"
- name: "DRONE_SERVER_BUILD_LIMIT"
value: "9"
- name: "DRONE_ALLOW_PRIVILEGED"
value: "true"
- name: "DRONE_LOGS_DEBUG"
value: "true"
volumeMounts:
- mountPath: /var/lib/drone
name: drone-lib

View File

@@ -1,5 +1,7 @@
resources:
- drone-rbac.yaml
- drone-server.yaml
- drone-runner.yaml
- drone-runner-arm64.yaml
- drone-runner-amd64.yaml
- drone-ingress.yaml
- drone-pvc.yaml

View File

@@ -24,4 +24,4 @@ spec:
- ReadWriteMany
resources:
requests:
storage: 500Gi
storage: 1050Gi

View File

@@ -1,7 +0,0 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- longhorn-ingress.yaml
- oauth2-proxy-longhorn-svc.yaml
- oauth2-proxy-longhorn.yaml

View File

@@ -0,0 +1,27 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: longhorn-dashboard
namespace: longhorn-system
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt-prod
nginx.ingress.kubernetes.io/auth-signin: https://$host/oauth2/start?rd=$escaped_request_uri
nginx.ingress.kubernetes.io/auth-url: https://$host/oauth2/auth
spec:
tls:
- hosts:
- longhorn.panic.haus
secretName: longhorn-tls
rules:
- host: longhorn.panic.haus
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: longhorn-frontend
port:
number: 80

View File

@@ -6,28 +6,28 @@ metadata:
annotations:
kubernetes.io/ingress.class: "nginx"
cert-manager.io/cluster-issuer: "letsencrypt-prod"
nginx.ingress.kubernetes.io/auth-url: "https://longhorn.panic.haus/oauth2/auth"
nginx.ingress.kubernetes.io/auth-signin: "https://longhorn.panic.haus/oauth2/start?rd=$scheme://$host$request_uri"
nginx.ingress.kubernetes.io/auth-url: "http://oauth2-proxy-service.longhorn-system.svc.cluster.local:4180/oauth2/auth"
nginx.ingress.kubernetes.io/auth-signin: "https://longhorn.panic.haus/oauth2/start?rd=$escaped_request_uri"
spec:
tls:
- hosts:
- longhorn.panic.haus
secretName: longhorn-tls
- hosts:
- longhorn.panic.haus
secretName: longhorn-tls
rules:
- host: longhorn.panic.haus
http:
paths:
- path: /oauth2
pathType: Prefix
backend:
service:
name: oauth2-proxy
port:
number: 4180
- path: /
pathType: Prefix
backend:
service:
name: longhorn-frontend
port:
number: 80
- host: longhorn.panic.haus
http:
paths:
- path: /oauth2
pathType: Prefix
backend:
service:
name: oauth2-proxy-longhorn-service
port:
number: 4180
- path: /
pathType: Prefix
backend:
service:
name: longhorn-frontend
port:
number: 80

View File

@@ -0,0 +1,19 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: oauth2-proxy-longhorn-ingress
namespace: longhorn-system
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- host: longhorn.panic.haus
http:
paths:
- path: /oauth2
pathType: Prefix
backend:
service:
name: oauth2-proxy-longhorn-service
port:
number: 4180

View File

@@ -1,7 +1,7 @@
apiVersion: v1
kind: Service
metadata:
name: oauth2-proxy-longhorn
name: oauth2-proxy-longhorn-service
namespace: longhorn-system
spec:
ports:
@@ -10,4 +10,4 @@ spec:
protocol: TCP
name: http
selector:
app: oauth2-proxy-longhorn
app: oauth2-proxy-longhorn

View File

@@ -14,23 +14,23 @@ spec:
app: oauth2-proxy-longhorn
spec:
containers:
- name: oauth2-proxy
- name: oauth2-proxy-longhorn
image: quay.io/oauth2-proxy/oauth2-proxy:v7.8.1
args:
- --provider=keycloak
- --client-id=longhorn
- --client-secret=0U2QuP1QMAXln8bzwJ3aJMIvaH9t2QvJ
- --cookie-secret=lDE7du7SlDuG1UySIZUhcHfuk5HlgFlgDWdHD_PQ9UI=
- --oidc-issuer-url=https://sso.beatrice.wtf/realms/panic-haus
- --oidc-issuer-url=https://sso.beatrice.wtf/auth/realms/panic-haus
- --cookie-domain=longhorn.panic.haus
- --email-domain=*
- --http-address=0.0.0.0:4180
- --redirect-url=https://longhorn.panic.haus/oauth2/callback
- --upstream=http://longhorn-frontend.longhorn-system.svc.cluster.local:80
- --scope=openid
- --login-url=https://sso.beatrice.wtf/realms/panic-haus/protocol/openid-connect/auth
- --validate-url=https://sso.beatrice.wtf/realms/panic-haus/protocol/openid-connect/userinfo
- --redeem-url=https://sso.beatrice.wtf/realms/panic-haus/protocol/openid-connect/token
- --login-url=https://sso.beatrice.wtf/auth/realms/panic-haus/protocol/openid-connect/auth
- --validate-url=https://sso.beatrice.wtf/auth/realms/panic-haus/protocol/openid-connect/userinfo
- --redeem-url=https://sso.beatrice.wtf/auth/realms/panic-haus/protocol/openid-connect/token
- --skip-auth-regex=^(?:https?:\/\/)?longhorn\.panic\.haus\/(favicon\.ico|.*\.(?:js|css)(\.map)?)$|^\/(favicon\.ico|.*\.(?:js|css)(\.map)?)$
ports:
- name: http

View File

@@ -0,0 +1,24 @@
namespace: plane-ce
helmCharts:
- name: plane-ce
repo: https://helm.plane.so/
version: 1.1.0
releaseName: plane-app
valuesInline:
planeVersion: stable
postgres:
local_setup: false
servicePort: 5432
env:
pgdb_remote_url: postgresql://plane:w20t4g8h244ivjz0kef1hi10@postgres-base-rw.postgres.svc.cluster.local:5432/plane_db
certManager: true
ingress:
ingressClass: nginx
tls: true
appHost: plane.panic.haus
minioHost: minio.plane.panic.haus
rabbitmqHost: plane-app-rabbitmq
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
nginx.ingress.kubernetes.io/ssl-redirect: "true"

View File

@@ -0,0 +1,23 @@
apiVersion: batch/v1
kind: CronJob
metadata:
name: renovate
namespace: renovate
spec:
schedule: '@hourly'
concurrencyPolicy: Forbid
jobTemplate:
spec:
template:
spec:
containers:
- name: renovate
# Update the image if needed
image: renovate/renovate:39.211
env:
- name: LOG_LEVEL
value: debug
envFrom:
- secretRef:
name: renovate-env
restartPolicy: Never

View File

@@ -0,0 +1,5 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- cronjob.yaml

3
renovate.json Normal file
View File

@@ -0,0 +1,3 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json"
}