Compare commits

...

6 Commits

Author SHA1 Message Date
Gitea Actions Bot
adf4c7764b Auto-update README with current k8s applications
All checks were successful
Terraform / Terraform (pull_request) Successful in 1m3s
Generated by CI/CD workflow on 2026-04-19 13:25:05

This PR updates the README.md file with the current list of applications found in the k8s/ directory structure.
2026-04-19 13:25:05 +00:00
AB
7d322103cf Merge branch 'main' of ssh://gt.hexor.cy:30022/ab/homelab
All checks were successful
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 13s
Check with kubeconform / lint (push) Successful in 58s
Auto-update README / Generate README and Create MR (push) Successful in 11s
2026-04-19 16:22:59 +03:00
AB
f7e763b3c2 Added wedding site 2026-04-19 16:22:25 +03:00
Ultradesu
69fff5bc1f Added teamspeak
All checks were successful
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 13s
Check with kubeconform / lint (push) Successful in 9s
Auto-update README / Generate README and Create MR (push) Successful in 10s
2026-04-15 12:54:48 +03:00
ab
75a61a1889 Update k8s/games/minecraft/deployments.yaml
All checks were successful
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 27s
Check with kubeconform / lint (push) Successful in 32s
Auto-update README / Generate README and Create MR (push) Successful in 8s
2026-04-14 20:12:37 +00:00
ab
06ec36d718 Merge pull request 'Auto-update README with k8s applications' (#293) from auto-update-readme-20260412-115128 into main
All checks were successful
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 10s
Reviewed-on: #293
2026-04-12 14:25:45 +00:00
13 changed files with 283 additions and 1 deletions

View File

@@ -62,9 +62,11 @@ ArgoCD homelab project
| **sonarr-stack** | [![sonarr-stack](https://ag.hexor.cy/api/badge?name=sonarr-stack&revision=true)](https://ag.hexor.cy/applications/argocd/sonarr-stack) |
| **stirling-pdf** | [![stirling-pdf](https://ag.hexor.cy/api/badge?name=stirling-pdf&revision=true)](https://ag.hexor.cy/applications/argocd/stirling-pdf) |
| **syncthing** | [![syncthing](https://ag.hexor.cy/api/badge?name=syncthing&revision=true)](https://ag.hexor.cy/applications/argocd/syncthing) |
| **teamspeak** | [![teamspeak](https://ag.hexor.cy/api/badge?name=teamspeak&revision=true)](https://ag.hexor.cy/applications/argocd/teamspeak) |
| **tg-bots** | [![tg-bots](https://ag.hexor.cy/api/badge?name=tg-bots&revision=true)](https://ag.hexor.cy/applications/argocd/tg-bots) |
| **vaultwarden** | [![vaultwarden](https://ag.hexor.cy/api/badge?name=vaultwarden&revision=true)](https://ag.hexor.cy/applications/argocd/vaultwarden) |
| **vpn** | [![vpn](https://ag.hexor.cy/api/badge?name=vpn&revision=true)](https://ag.hexor.cy/applications/argocd/vpn) |
| **wedding** | [![wedding](https://ag.hexor.cy/api/badge?name=wedding&revision=true)](https://ag.hexor.cy/applications/argocd/wedding) |
| **xandikos** | [![xandikos](https://ag.hexor.cy/api/badge?name=xandikos&revision=true)](https://ag.hexor.cy/applications/argocd/xandikos) |
</td>

View File

@@ -0,0 +1,20 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: teamspeak
namespace: argocd
spec:
project: apps
destination:
namespace: teamspeak
server: https://kubernetes.default.svc
source:
repoURL: ssh://git@gt.hexor.cy:30022/ab/homelab.git
targetRevision: HEAD
path: k8s/apps/teamspeak
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true

View File

@@ -0,0 +1,49 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: teamspeak
labels:
app: teamspeak
spec:
selector:
matchLabels:
app: teamspeak
replicas: 1
strategy:
type: Recreate
template:
metadata:
labels:
app: teamspeak
spec:
volumes:
- name: data
persistentVolumeClaim:
claimName: teamspeak-data
containers:
- name: teamspeak
image: 'teamspeak:latest'
env:
- name: TS3SERVER_LICENSE
value: "accept"
resources:
requests:
memory: "256Mi"
cpu: "100m"
limits:
memory: "512Mi"
cpu: "1000m"
ports:
- name: voice
containerPort: 9987
protocol: UDP
- name: filetransfer
containerPort: 30033
protocol: TCP
- name: serverquery
containerPort: 10011
protocol: TCP
volumeMounts:
- name: data
mountPath: /var/ts3server

View File

@@ -0,0 +1,8 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- app.yaml
- storage.yaml
- deployment.yaml
- service.yaml

View File

@@ -0,0 +1,22 @@
---
apiVersion: v1
kind: Service
metadata:
name: teamspeak
spec:
type: LoadBalancer
selector:
app: teamspeak
ports:
- name: voice
protocol: UDP
port: 9987
targetPort: 9987
- name: filetransfer
protocol: TCP
port: 30033
targetPort: 30033
- name: serverquery
protocol: TCP
port: 10011
targetPort: 10011

View File

@@ -0,0 +1,12 @@
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: teamspeak-data
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 5Gi

20
k8s/apps/wedding/app.yaml Normal file
View File

@@ -0,0 +1,20 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: wedding
namespace: argocd
spec:
project: apps
destination:
namespace: wedding
server: https://kubernetes.default.svc
source:
repoURL: ssh://git@gt.hexor.cy:30022/ab/homelab.git
targetRevision: HEAD
path: k8s/apps/wedding
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true

View File

@@ -0,0 +1,60 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wedding
labels:
app: wedding
spec:
replicas: 1
selector:
matchLabels:
app: wedding
template:
metadata:
labels:
app: wedding
spec:
initContainers:
- name: git-clone
image: alpine/git:latest
command:
- sh
- -c
- git clone --depth 1 https://gt.hexor.cy/ab/wedding.git /src
volumeMounts:
- name: source
mountPath: /src
- name: zola-build
image: ghcr.io/getzola/zola:v0.19.2
command:
- sh
- -c
- cd /src && zola build --output-dir /public
volumeMounts:
- name: source
mountPath: /src
- name: public
mountPath: /public
containers:
- name: nginx
image: nginx:alpine
ports:
- containerPort: 80
protocol: TCP
volumeMounts:
- name: public
mountPath: /usr/share/nginx/html
readOnly: true
resources:
requests:
memory: 32Mi
cpu: 10m
limits:
memory: 64Mi
cpu: 100m
volumes:
- name: source
emptyDir: {}
- name: public
emptyDir: {}

View File

@@ -0,0 +1,26 @@
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: wedding-tls-ingress
annotations:
ingressClassName: traefik
cert-manager.io/cluster-issuer: letsencrypt
traefik.ingress.kubernetes.io/router.middlewares: kube-system-https-redirect@kubernetescrd
acme.cert-manager.io/http01-edit-in-place: "true"
spec:
rules:
- host: wedding.hexor.cy
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: wedding
port:
number: 80
tls:
- secretName: wedding-tls
hosts:
- wedding.hexor.cy

View File

@@ -0,0 +1,9 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- app.yaml
- rbac.yaml
- deployment.yaml
- service.yaml
- ingress.yaml

View File

@@ -0,0 +1,42 @@
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: wedding-deployer
namespace: wedding
---
apiVersion: v1
kind: Secret
metadata:
name: wedding-deployer-token
namespace: wedding
annotations:
kubernetes.io/service-account.name: wedding-deployer
type: kubernetes.io/service-account-token
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: wedding-restart
namespace: wedding
rules:
- apiGroups: ["apps"]
resources: ["deployments"]
verbs: ["get", "patch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: wedding-deployer-restart
namespace: wedding
subjects:
- kind: ServiceAccount
name: wedding-deployer
namespace: wedding
roleRef:
kind: Role
name: wedding-restart
apiGroup: rbac.authorization.k8s.io

View File

@@ -0,0 +1,12 @@
---
apiVersion: v1
kind: Service
metadata:
name: wedding
spec:
selector:
app: wedding
ports:
- port: 80
targetPort: 80
protocol: TCP

View File

@@ -35,7 +35,7 @@ spec:
terminationGracePeriodSeconds: 10
containers:
- name: minecraft
image: 'openjdk:8-jdk-alpine'
image: 'eclipse-temurin:8-jdk-ubi10-minimal'
command: ["java"]
args:
- -Xms4G