19 Commits

Author SHA1 Message Date
ab96719964 small fixes 2024-05-15 17:57:15 +02:00
0215ecaf87 add (broken) deployment 2024-05-13 14:27:34 +02:00
0eaa9fe774 empty line removed 2024-05-13 14:26:53 +02:00
192e2e869f minecraft 2024-05-13 14:25:49 +02:00
0fd9936db5 gitea runner improvements 2024-05-13 14:25:49 +02:00
1a9d0fc00c Merge pull request 'Update jellyfin/jellyfin Docker tag to v10.9.0' (#94) from renovate/jellyfin-jellyfin-10.x into main
Reviewed-on: #94
2024-05-12 11:07:57 +00:00
a8dfca3c43 Update jellyfin/jellyfin Docker tag to v10.9.0 2024-05-11 19:01:08 +00:00
42e2bc35a5 Merge pull request 'Update ghcr.io/gethomepage/homepage Docker tag to v0.8.13' (#90) from renovate/ghcr.io-gethomepage-homepage-0.x into main
Reviewed-on: #90
2024-05-10 08:46:45 +00:00
7e2e5a56db Merge branch 'main' into renovate/ghcr.io-gethomepage-homepage-0.x 2024-05-10 08:45:47 +00:00
01279dd023 Merge pull request 'Update octodns/octodns Docker tag to v2024.05' (#91) from renovate/octodns-octodns-2024.x into main
Reviewed-on: #91
2024-05-08 13:29:51 +00:00
d6ce07a8a0 Merge pull request 'Update ghcr.io/mealie-recipes/mealie Docker tag to v1.6.0' (#92) from renovate/ghcr.io-mealie-recipes-mealie-1.x into main
Reviewed-on: #92
2024-05-08 13:28:59 +00:00
6eb617086a Update ghcr.io/mealie-recipes/mealie Docker tag to v1.6.0 2024-05-07 12:00:58 +00:00
8137bf8f1b Update apps/immich/kustomization.yaml 2024-05-06 17:59:00 +00:00
5f1dcaabba Update octodns/octodns Docker tag to v2024.05 2024-05-06 15:30:45 +00:00
37bdb32f43 Update ghcr.io/gethomepage/homepage Docker tag to v0.8.13 2024-05-06 05:30:44 +00:00
ca15a6497c Add apps/media/ingress.yaml 2024-05-04 12:10:12 +00:00
095d2d6392 remove limits 2024-05-04 12:47:10 +02:00
b2993c9395 Merge pull request 'Update homeassistant/home-assistant Docker tag to v2024.5' (#86) from renovate/homeassistant-home-assistant-2024.x into main
Reviewed-on: #86
2024-05-04 09:06:57 +00:00
0700609568 Update homeassistant/home-assistant Docker tag to v2024.5 2024-05-01 19:30:44 +00:00
24 changed files with 374 additions and 15 deletions

View File

@@ -0,0 +1,58 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: affine
spec:
selector:
matchLabels:
app: affine
template:
metadata:
labels:
app: affine
spec:
containers:
- name: affine
image: affine
resources:
limits:
memory: "512Mi"
cpu: "1"
env:
- name: AFFINE_SERVER_HOST
value: "affine.kluster.moll.re"
- name: AFFINE_SERVER_PORT
value: "443"
- name: AFFINE_SERVER_HTTPS
value: "true"
- name: AFFINE_CONFIG_PATH
value: "/root/.affine/config"
- name: AFFINE_ADMIN_EMAIL
value: "me@moll.re"
- name: AFFINE_ADMIN_PASSWORD
value: "password"
- name: TELEMETRY_ENABLE
value: "false"
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: postgres-credentials
key: url
- name: NODE_OPTIONS
value: "--import=./scripts/register.js"
- name: NODE_ENV
value: "production"
ports:
- containerPort: 3010
volumeMounts:
- name: affine-data
mountPath: /root/.affine/storage
- name: affine-config
mountPath: /root/.affine/config
volumes:
- name: affine-data
persistentVolumeClaim:
claimName: affine-data
- name: affine-config
persistentVolumeClaim:
claimName: affine-config

15
apps/affine/ingress.yaml Normal file
View File

@@ -0,0 +1,15 @@
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: affine-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`affine.kluster.moll.re`)
kind: Rule
services:
- name: affine-web
port: 3010
tls:
certResolver: default-tls

View File

@@ -0,0 +1,20 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: affine
resources:
- namespace.yaml
- deployment.yaml
- service.yaml
- ingress.yaml
- postgres.yaml
- pvc.yaml
- postgres-credentials.secret.yaml
images:
- name: affine
newName: ghcr.io/toeverything/affine-graphql
newTag: stable

View File

@@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: placeholder

20
apps/affine/postgres.yaml Normal file
View File

@@ -0,0 +1,20 @@
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: affine-postgres
spec:
instances: 1
bootstrap:
initdb:
owner: affine
database: affine
secret:
name: postgres-credentials
storage:
size: 1Gi
pvcTemplate:
storageClassName: "nfs-client"
resources:
requests:
storage: "1Gi"

23
apps/affine/pvc.yaml Normal file
View File

@@ -0,0 +1,23 @@
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: affine-data
spec:
storageClassName: "nfs-client"
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 15Gi
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: affine-config
spec:
storageClassName: "nfs-client"
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi

10
apps/affine/service.yaml Normal file
View File

@@ -0,0 +1,10 @@
apiVersion: v1
kind: Service
metadata:
name: affine-web
spec:
selector:
app: affine
ports:
- port: 3010
targetPort: 3010

View File

@@ -15,4 +15,4 @@ resources:
images:
- name: homeassistant/home-assistant
newName: homeassistant/home-assistant
newTag: "2024.4"
newTag: "2024.5"

View File

@@ -14,4 +14,4 @@ resources:
images:
- name: homepage
newName: ghcr.io/gethomepage/homepage
newTag: v0.8.12
newTag: v0.8.13

View File

@@ -19,7 +19,6 @@ helmCharts:
images:
- name: ghcr.io/immich-app/immich-machine-learning
newTag: v1.102.3
newTag: v1.103.1
- name: ghcr.io/immich-app/immich-server
newTag: v1.102.3
newTag: v1.103.1

View File

@@ -1,4 +1,3 @@
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:

63
apps/media/ingress.yaml Normal file
View File

@@ -0,0 +1,63 @@
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: jellyfin-vue-ingress
namespace: media
spec:
entryPoints:
- websecure
routes:
- match: Host(`media.kluster.moll.re`)
middlewares:
- name: jellyfin-websocket
kind: Rule
services:
- name: jellyfin-web
port: 80
tls:
certResolver: default-tls
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: jellyfin-backend-ingress
namespace: media
spec:
entryPoints:
- websecure
routes:
- match: Host(`media-backend.kluster.moll.re`) && !Path(`/metrics`)
middlewares:
- name: jellyfin-websocket
- name: jellyfin-server-headers
kind: Rule
services:
- name: jellyfin-server
port: 8096
tls:
certResolver: default-tls
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: jellyfin-websocket
namespace: media
spec:
headers:
customRequestHeaders:
Connection: keep-alive, Upgrade
Upgrade: WebSocket
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: jellyfin-server-headers
namespace: media
spec:
headers:
accessControlAllowCredentials: true
accessControlAllowHeaders: [ "Authorization","Content-Type" ] # "Accept","Origin"
accessControlAllowMethods: [ "GET","HEAD","OPTIONS" ] # "POST","PUT"
accessControlAllowOriginList:
- "*"
accessControlMaxAge: 100

View File

@@ -14,7 +14,7 @@ resources:
images:
- name: jellyfin/jellyfin
newName: jellyfin/jellyfin
newTag: 10.8.13
newTag: 10.9.0
- name: ghcr.io/jellyfin/jellyfin-vue
newName: ghcr.io/jellyfin/jellyfin-vue
newTag: stable-rc.0.3.1

7
apps/minecraft/README.md Normal file
View File

@@ -0,0 +1,7 @@
## Sending a command
```
kubectl exec -it -n minecraft deploy/minecraft-server -- /bin/bash
mc-send-to-console /help
# or directly
kubectl exec -it -n minecraft deploy/minecraft-server -- mc-send-to-console /help
```

View File

@@ -0,0 +1,56 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: minecraft-server
spec:
selector:
matchLabels:
app: minecraft-server
template:
metadata:
labels:
app: minecraft-server
spec:
containers:
- name: minecraft-server
image: minecraft
resources:
limits:
memory: "4000Mi"
cpu: "2500m"
requests:
memory: "1000Mi"
cpu: "500m"
ports:
- containerPort: 25565
env:
- name: EULA
value: "TRUE"
- name: MODPACK
value: "https://www.curseforge.com/api/v1/mods/711537/files/5076228/download"
- name: VERSION
value: "1.18.2"
# - name: VERSION
# value: "1.16.5"
# - name: MODPACK
# value: "https://mediafilez.forgecdn.net/files/3602/5/VaultHunters-OfficialModpack-1.12.1-Server.zip"
- name: INIT_MEMORY
value: "1G"
- name: MAX_MEMORY
value: "3G"
- name: MOTD
value: "VaultHunters baby!"
- name: ENABLE_RCON
value: "false"
- name: CREATE_CONSOLE_IN_PIPE
value: "true"
- name: ONLINE_MODE
value: "true"
volumeMounts:
- name: minecraft-data
mountPath: /data
volumes:
- name: minecraft-data
persistentVolumeClaim:
claimName: minecraft-data

View File

@@ -0,0 +1,15 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: minecraft
resources:
- namespace.yaml
- pvc.yaml
- deployment.yaml
- service.yaml
images:
- name: minecraft
newName: itzg/minecraft-server
newTag: java21

View File

@@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: placeholder

11
apps/minecraft/pvc.yaml Normal file
View File

@@ -0,0 +1,11 @@
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: minecraft-data
spec:
storageClassName: "nfs-client"
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi

View File

@@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: minecraft-server
spec:
selector:
app: minecraft-server
ports:
- port: 25565
targetPort: 25565
type: LoadBalancer
loadBalancerIP: 192.168.3.4

View File

@@ -12,5 +12,5 @@ resources:
images:
- name: mealie
newTag: v1.5.1
newTag: v1.6.0
newName: ghcr.io/mealie-recipes/mealie

View File

@@ -11,7 +11,7 @@ resources:
images:
- name: octodns
newName: octodns/octodns # has all plugins
newTag: "2024.04"
newTag: "2024.05"
- name: git
newName: alpine/git

View File

@@ -11,19 +11,15 @@ spec:
labels:
app: actions-runner
spec:
hostname: kube-runner
serviceAccountName: actions-runner
containers:
- name: actions-runner
hostname: kube-runner
image: actions-runner
securityContext:
privileged: true # Add this line to allow running Docker
resources:
requests:
memory: "128Mi"
cpu: "500m"
limits:
memory: "256Mi"
cpu: "1000m"
env:
- name: GITEA_INSTANCE_URL
value: "https://git.kluster.moll.re"
@@ -34,3 +30,10 @@ spec:
key: runner-token
- name: GITEA_RUNNER_LABELS
value: k8s
volumeMounts:
- name: runner-data
mountPath: /data
volumes:
- name: runner-data
emptyDir: {}

View File

@@ -0,0 +1,38 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: actions-runner
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: actions-role
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "create", "delete"]
- apiGroups: [""]
resources: ["pods/exec"]
verbs: ["get", "create"]
- apiGroups: [""]
resources: ["pods/log"]
verbs: ["get", "list", "watch",]
- apiGroups: ["batch"]
resources: ["jobs"]
verbs: ["get", "list", "create", "delete"]
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get", "list", "create", "delete"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: actions-role-binding
subjects:
- kind: ServiceAccount
name: actions-runner
apiGroup: ""
roleRef:
kind: Role
name: actions-role
apiGroup: rbac.authorization.k8s.io

View File

@@ -10,6 +10,8 @@ resources:
- drone-server.sealedsecret.yaml
- actions.deployment.yaml
- actions.sealedsecret.yaml
- actions.rbac.yaml
namespace: gitea