forked from ab/homelab
Added minecraft
This commit is contained in:
21
k8s/games/minecraft/app.yaml
Normal file
21
k8s/games/minecraft/app.yaml
Normal file
@ -0,0 +1,21 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: minecraft
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: games
|
||||
destination:
|
||||
namespace: minecraft
|
||||
server: https://kubernetes.default.svc
|
||||
source:
|
||||
repoURL: ssh://git@gt.hexor.cy:30022/ab/homelab.git
|
||||
targetRevision: HEAD
|
||||
path: k8s/games/minecraft
|
||||
syncPolicy:
|
||||
automated:
|
||||
selfHeal: true
|
||||
prune: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
|
140
k8s/games/minecraft/deployments.yaml
Normal file
140
k8s/games/minecraft/deployments.yaml
Normal file
@ -0,0 +1,140 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: nginx-config
|
||||
namespace: minecraft
|
||||
data:
|
||||
nginx.conf: |
|
||||
user nginx;
|
||||
worker_processes 1;
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
http {
|
||||
server {
|
||||
listen 80;
|
||||
|
||||
location / {
|
||||
proxy_pass http://localhost:8123;
|
||||
sub_filter 'Minecraft Dynamic Map' "Hexor's MC server";
|
||||
sub_filter "</body>" '<p style="background-color: #CEC6CB; color: black; padding: 10px 10px; text-align: center; font-size: large; text-decoration: none; display: inline-block; border-radius: 4px; position: absolute; top: 10px; left: 150px;">Get <a href="https://prismlauncher.org/" >Prism Launcher</a> and <a href="/clients/1.12.2.zip" >client.zip</a> for this server</p></body>';
|
||||
sub_filter_once off;
|
||||
}
|
||||
location /clients/ {
|
||||
types { }
|
||||
sendfile on;
|
||||
tcp_nopush on;
|
||||
tcp_nodelay on;
|
||||
keepalive_timeout 65;
|
||||
sendfile_max_chunk 1m;
|
||||
default_type application/zip;
|
||||
add_header Content-Disposition "attachment";
|
||||
alias /mc/clients/;
|
||||
autoindex on;
|
||||
}
|
||||
}
|
||||
}
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: minecraft
|
||||
namespace: minecraft
|
||||
labels:
|
||||
app: minecraft
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: minecraft
|
||||
replicas: 1
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: minecraft
|
||||
spec:
|
||||
nodeSelector:
|
||||
kubernetes.io/hostname: master.tail2fe2d.ts.net
|
||||
volumes:
|
||||
- name: storage
|
||||
hostPath:
|
||||
path: /k8s/mc-server/
|
||||
type: Directory
|
||||
- name: nginx-config
|
||||
configMap:
|
||||
name: nginx-config
|
||||
|
||||
terminationGracePeriodSeconds: 10
|
||||
containers:
|
||||
- name: nginx
|
||||
image: nginx:latest
|
||||
ports:
|
||||
- containerPort: 80
|
||||
volumeMounts:
|
||||
- name: nginx-config
|
||||
mountPath: /etc/nginx/nginx.conf
|
||||
subPath: nginx.conf
|
||||
- name: storage
|
||||
mountPath: /mc
|
||||
- name: minecraft
|
||||
image: 'openjdk:8-jdk-alpine'
|
||||
command: ["java"]
|
||||
args:
|
||||
- -Xms12G
|
||||
- -Xmx12G
|
||||
- -XX:+UseG1GC
|
||||
- -XX:+ParallelRefProcEnabled
|
||||
- -XX:MaxGCPauseMillis=200
|
||||
- -XX:+UnlockExperimentalVMOptions
|
||||
- -XX:+DisableExplicitGC
|
||||
- -XX:+AlwaysPreTouch
|
||||
- -XX:G1NewSizePercent=30
|
||||
- -XX:G1MaxNewSizePercent=40
|
||||
- -XX:G1HeapRegionSize=8M
|
||||
- -XX:G1ReservePercent=20
|
||||
- -XX:G1HeapWastePercent=5
|
||||
- -XX:G1MixedGCCountTarget=4
|
||||
- -XX:InitiatingHeapOccupancyPercent=15
|
||||
- -XX:G1MixedGCLiveThresholdPercent=90
|
||||
- -XX:G1RSetUpdatingPauseTimePercent=5
|
||||
- -XX:SurvivorRatio=32
|
||||
- -XX:+PerfDisableSharedMem
|
||||
- -XX:MaxTenuringThreshold=1
|
||||
- -jar
|
||||
- forge-1.12.2-14.23.5.2854.jar
|
||||
- nogui
|
||||
workingDir: /mc/
|
||||
resources:
|
||||
limits:
|
||||
memory: 15Gi
|
||||
#cpu: 1
|
||||
requests:
|
||||
memory: 10Gi
|
||||
#cpu: 100m
|
||||
ports:
|
||||
- name: game
|
||||
containerPort: 25565
|
||||
protocol: TCP
|
||||
- name: dynmap
|
||||
containerPort: 8123
|
||||
protocol: TCP
|
||||
volumeMounts:
|
||||
- name: storage
|
||||
mountPath: /mc
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: minecraft-exporter
|
||||
namespace: minecraft
|
||||
spec:
|
||||
selector:
|
||||
app: minecraft
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 19565
|
||||
targetPort: 19565
|
||||
|
8
k8s/games/minecraft/kustomization.yaml
Normal file
8
k8s/games/minecraft/kustomization.yaml
Normal file
@ -0,0 +1,8 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- app.yaml
|
||||
- deployments.yaml
|
||||
- services.yaml
|
||||
|
28
k8s/games/minecraft/services.yaml
Normal file
28
k8s/games/minecraft/services.yaml
Normal file
@ -0,0 +1,28 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: minecraft-dynmap
|
||||
namespace: minecraft
|
||||
spec:
|
||||
selector:
|
||||
app: minecraft
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 80
|
||||
targetPort: 80
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: minecraft-game
|
||||
namespace: minecraft
|
||||
spec:
|
||||
type: LoadBalancer
|
||||
ports:
|
||||
- port: 30565
|
||||
targetPort: 25565
|
||||
selector:
|
||||
app: minecraft
|
||||
|
Reference in New Issue
Block a user