feat: Initial commit

This commit is contained in:
Tanguy Herbron 2025-05-27 13:34:09 +02:00
commit 2dfce39acd
10 changed files with 176 additions and 0 deletions

2
README.md Normal file
View File

@ -0,0 +1,2 @@
# Minecraft

53
manifests/deployment.yaml Normal file
View File

@ -0,0 +1,53 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: minecraft
namespace: minecraft
spec:
replicas: 1
selector:
matchLabels:
app: minecraft
template:
metadata:
labels:
app: minecraft
spec:
hostname: minecraft
subdomain: minecraft
containers:
- name: minecraft
image: itzg/minecraft-server
ports:
- containerPort: 8123
- containerPort: 25565
- containerPort: 25585
name: metrics
env:
- name: MEMORY
value: 8G
- name: VERSION
value: "1.21.5"
- name: EULA
value: "true"
- name: TYPE
value: "FABRIC"
- name: MODRINTH_ALLOWED_VERSION_TYPE
value: "beta"
- name: MODRINTH_PROJECTS
value: "fabric-api,lithium,distanthorizons,fabricexporter,spark,chunky,chunky-player-pause"
- name: CURSEFORGE_FILES
value: "carpet:6347645,carpet-extra:6359324"
- name: CF_API_KEY
value: ""
- name: MODS
value: "https://git.halis.io/athens-school/Minecraft/raw/branch/master/mods/Dynmap-3.7-SNAPSHOT-fabric-1.21.5.jar"
volumeMounts:
- mountPath: "/data"
name: minecraft-data
resources:
volumes:
- name: minecraft-data
persistentVolumeClaim:
claimName: minecraft-pvc

26
manifests/ingress.yaml Normal file
View File

@ -0,0 +1,26 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: minecraft-ingress
namespace: minecraft
annotations:
cert-manager.io/cluster-issuer: letsencrypt-production
kubernetes.io/ingress.class: nginx-external
acme.cert-manager.io/http01-edit-in-place: "true"
spec:
tls:
- hosts:
- mc.halis.io
secretName: mc-halis-io-tls
ingressClassName: nginx-external
rules:
- host: mc.halis.io
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: minecraft-svc
port:
number: 8123

View File

@ -0,0 +1,11 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- namespace.yaml
- service.yaml
- servicemonitor.yaml
- ingress.yaml
- internal-ingress.yaml
- pvc.yaml
- deployment.yaml

4
manifests/namespace.yaml Normal file
View File

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

15
manifests/pvc.yaml Normal file
View File

@ -0,0 +1,15 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: minecraft-pvc
namespace: minecraft
labels:
recurring-job.longhorn.io/source: enabled
recurring-job-group.longhorn.io/standard-pvc: enabled
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 50Gi
storageClassName: redundant-storage-class

24
manifests/secrets.yaml Normal file
View File

@ -0,0 +1,24 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: vaultwarden-secrets
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: default
source:
repoURL: https://git.halis.io/athens-school/k3s-secrets.git
targetRevision: prod-migration
path: vaultwarden
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=false
- ApplyOutOfSyncOnly=true
- PruneLast=true
destination:
server: https://kubernetes.default.svc
namespace: vaultwarden

27
manifests/service.yaml Normal file
View File

@ -0,0 +1,27 @@
apiVersion: v1
kind: Service
metadata:
name: minecraft-svc
namespace: minecraft
labels:
app.kubernetes.io/name: minecraft
spec:
ports:
- name: minecraft-tcp
port: 25565
protocol: TCP
targetPort: 25565
- name: minecraft-udp
port: 25565
protocol: UDP
targetPort: 25565
- name: metrics
port: 25585
protocol: TCP
targetPort: 25585
- name: dynmap
port: 8123
protocol: TCP
targetPort: 8123
selector:
app: minecraft

View File

@ -0,0 +1,14 @@
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: minecraft
namespace: minecraft
labels:
team: core
spec:
selector:
matchLabels:
app.kubernetes.io/name: minecraft
endpoints:
- port: metrics
path: /

Binary file not shown.