-
Notifications
You must be signed in to change notification settings - Fork 147
/
Copy pathvalues.yaml
587 lines (534 loc) · 19.6 KB
/
values.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
# ref: https://hub.docker.com/r/itzg/minecraft-server/
image:
repository: itzg/minecraft-server
tag: latest
pullPolicy: Always
pullSecret: ""
# ### WARNING ###
# Minecraft is not horizontally scalable, adjusting this will most likely break your setup.
# ### WARNING ###
replicaCount: 1
nameOverride: ""
fullnameOverride: ""
## Configure resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources:
requests:
memory: 512Mi
cpu: 500m
lifecycle:
postStart: []
preStop: []
# If true the workload is defined as a StatefulSet instead of a Deployment.
# Make sure to also update the strategyType!
# All configuration options for the Deployment (e.g. annotations) are used for the StatefulSet.
# Regarding persistence: When an existing PVC is provided it will be shared between all Pods.
# Otherwise the PVC configuration is used as a template to create PVCs for each replica.
workloadAsStatefulSet: false
# upgrade strategy type, depending on workload type:
# - for Deployment sets strategy: Recreate or RollingUpdate
# - for StatefulSet sets updateStrategy: OnDelete or RollingUpdate
strategyType: Recreate
nodeSelector: {}
tolerations: []
affinity: {}
podSecurityContext:
runAsUser: 1000
runAsGroup: 3000
runAsNonRoot: true
fsGroup: 2000
seccompProfile:
type: RuntimeDefault
securityContext:
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
# Most of these map to environment variables. See Minecraft for details:
# https://hub.docker.com/r/itzg/minecraft-server/
livenessProbe:
command:
- mc-health
initialDelaySeconds: 30
periodSeconds: 5
failureThreshold: 20
successThreshold: 1
timeoutSeconds: 1
readinessProbe:
command:
- mc-health
initialDelaySeconds: 30
periodSeconds: 5
failureThreshold: 20
successThreshold: 1
timeoutSeconds: 1
startupProbe:
command:
- mc-health
enabled: false
failureThreshold: 30
periodSeconds: 10
## Array of initContainers to add to include in deployment (supports templating)
##
# initContainers:
# - name: do-something
# image: busybox
# command: ['do', 'something']
# volumeMounts:
# - name: nfs
# mountPath: /mnt/volume
# readOnly: true
# - |
# name: {{ template "minecraft.fullname" . }}-init
# image: busybox
# command: ['do', 'something']
# volumeMounts:
# - name: nfs
# mountPath: /mnt/volume
# readOnly: true
initContainers: []
## Array of additional sidecards to include in the deployment (supports templating)
##
# sidecarContainers:
# - name: do-something
# image: busybox
# command: ['do', 'something']
# volumeMounts:
# - name: nfs
# mountPath: /mnt/volume
# readOnly: true
# - |
# name: {{ template "minecraft.fullname" . }}-sidecar
# image: busybox
# command: ['do', 'something', 'with', 'rcon']
# env:
# - name: RCON_PASSWORD
# valueFrom:
# secretKeyRef:
# name: '{{ .Values.minecraftServer.rcon.existingSecret | default (printf "%s-rcon" (include "minecraft.fullname" .)) }}'
# key: "{{ .Values.minecraftServer.rcon.secretKey | default "rcon-password" }}"
sidecarContainers: []
# extraVolumes:
# - volumeMounts:
# - name: nfs
# mountPath: /mnt/volume
# readOnly: true
# volumes:
# - name: nfs
# nfs:
# server: some.nfs.server.com
# path: /
# mountOptions:
# - port=2049
# - hard
# - vers=4
extraVolumes: []
## Array of extra objects to deploy with the release
##
# extraDeploy:
# - |
# apiVersion: v1
# kind: ConfigMap
# metadata:
# name: {{ template "minecraft.fullname" . }}-extra-cm
# data:
# key: |-
# {
# "key": "value"
# }
extraDeploy: []
## Extra fields to set on the pod
##
## Fields set here will be added to the end of the Pod spec
## Can include any fields from https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#PodSpec
## that are not already set by the chart.
##
## The value of the field will be interpretted as a template.
##
# extraPodSpec:
# priorityClassName: 'my-priority-class'
extraPodSpec: {}
minecraftServer:
# This must be overridden, since we can't accept this for the user.
eula: "FALSE"
# One of: LATEST, SNAPSHOT, or a specific version (ie: "1.7.9").
version: "LATEST"
## The type of Minecraft server to run, check for related settings below
## Common types: "VANILLA", "FABRIC", "FORGE", "SPIGOT", "BUKKIT", "PAPER",
## "FTBA", "SPONGEVANILLA", "AUTO_CURSEFORGE"
## ref: https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms
type: "VANILLA"
# If type is set to FORGE, this sets the version; this is ignored if forgeInstallerUrl is set
forgeVersion:
# If type is set to FORGE, this sets the URL to download the Forge installer
forgeInstallerUrl:
# If type is set to SPONGEVANILLA, this sets the version
spongeVersion:
# If type is set to BUKKIT, this sets the URL to download the Bukkit package
bukkitDownloadUrl:
# If type is set to SPIGOT, this sets the URL to download the Spigot package
spigotDownloadUrl:
# If type is set to PAPER, this sets the URL to download the PaperSpigot package
paperDownloadUrl:
# If type is set to FTBA, this sets the modpack to run
ftbModpackId:
# If type is set to FTBA and a modpack is set, this sets the version to run
ftbModpackVersionId:
# If type is set to CURSEFORGE, this sets the server mod to run. Can also provide url to curseforge package.
cfServerMod:
## If type is set to FABRIC, this sets the version of fabric server launcher
## to use. Defaults to latest available for minecraftServer.version.
##
## For a custom launcher, see: https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/server-types/fabric/
fabricLauncherVersion:
## If type is set to FABRIC, this sets the version of fabric-loader to use.
## Defaults to latest available for minecraftServer.version.
fabricLoaderVersion:
# Set to true if running Feed The Beast and get an error like "unable to launch forgemodloader"
ftbLegacyJavaFixer: default
# One of: peaceful, easy, normal, and hard
difficulty: easy
# A comma-separated list of player names to whitelist.
whitelist:
# A comma-separated list of player names who should be admins.
ops:
# A server icon URL for server listings. Auto-scaled and transcoded.
icon:
# Max connected players.
maxPlayers: default
# This sets the maximum possible size in blocks, expressed as a radius, that the world border can obtain.
maxWorldSize: default
# Allows players to travel to the Nether.
allowNether: default
# Allows server to announce when a player gets an achievement.
announcePlayerAchievements: default
# Enables command blocks.
enableCommandBlock: default
# If true, players will always join in the default gameMode even if they were previously set to something else.
forcegameMode: default
# Defines whether structures (such as villages) will be generated.
generateStructures: default
# If set to true, players will be set to spectator mode if they die.
hardcore: default
# The maximum height in which building is allowed.
maxBuildHeight: default
# The maximum number of milliseconds a single tick may take before the server watchdog stops the server with the message. -1 disables this entirely.
maxTickTime: default
# Determines if animals will be able to spawn.
spawnAnimals: default
# Determines if monsters will be spawned.
spawnMonsters: default
# Determines if villagers will be spawned.
spawnNPCs: default
# Sets the area that non-ops can not edit (0 to disable)
spawnProtection: default
# Max view distance (in chunks).
viewDistance: default
# Define this if you want a specific map generation seed.
levelSeed:
# One of: creative, survival, adventure, spectator
gameMode: survival
# Message of the Day
motd: "Welcome to Minecraft on Kubernetes!"
# If true, enable player-vs-player damage.
pvp: default
# One of: DEFAULT, FLAT, LARGEBIOMES, AMPLIFIED, CUSTOMIZED
levelType: DEFAULT
# When levelType == FLAT or CUSTOMIZED, this can be used to further customize map generation.
# ref: https://hub.docker.com/r/itzg/minecraft-server/
generatorSettings:
worldSaveName: world
# If set, this URL will be downloaded at startup and used as a starting point
downloadWorldUrl:
# force re-download of server file
forceReDownload: false
# If set, the modpack at this URL will be downloaded at startup
downloadModpackUrl:
# If true, old versions of downloaded mods will be replaced with new ones from downloadModpackUrl
removeOldMods: false
# A list of VanillaTweaks Share Codes to download. (https://vanillatweaks.net/share#wUq1iz => "wUq1iz")
vanillaTweaksShareCodes: []
# Optional URI to a resource pack. The player may choose to use it.
resourcePackUrl:
# Optional SHA-1 digest of the resource pack, in lowercase hexadecimal.
# It is recommended to specify this, because it is used to verify the integrity of the resource pack.
resourcePackSha:
# When true, players will be prompted for a response and will be disconnected if they decline the required pack
resourcePackEnforce: false
# Check accounts against Minecraft account service.
onlineMode: default
# Require public key to be signed by Mojang to join
enforceSecureProfile: default
# If you adjust this, you may need to adjust resources.requests above to match.
memory: 1024M
# General JVM options to be passed to the Minecraft server invocation
jvmOpts: ""
# Options like -X that need to proceed general JVM options
jvmXXOpts: ""
overrideServerProperties: default
# DEPRECATED: use top-level rconServiceAnnotations instead
serviceAnnotations: {}
serviceType: ClusterIP
## Set the port used if the serviceType is NodePort
nodePort:
# Set the external port of the service, usefull when using the LoadBalancer service type
servicePort: 25565
clusterIP:
loadBalancerClass:
loadBalancerIP:
# loadBalancerSourceRanges: []
## Set the externalTrafficPolicy in the Service to either Cluster or Local
# externalTrafficPolicy: Cluster
externalIPs:
# List with URLs and paths to jar files, additionally may be a directory with jars
# This works for both mods and plugins depending on server type
modUrls: []
pluginUrls: []
# A list of Spigot resources/plugins IDs to download.
spigetResources: []
# Additional service specs to be defined
extraServiceSpec: {}
# A list of Modrinth project slugs with optional version after colon
modrinth:
projects: []
# Specifies whether to download Modrinth dependencies. The allowed values are: none, required, optional
downloadDependencies: none
# The version type is used to determine the newest version to use from each project. The allowed values are: release, beta, alpha
allowedVersionType: default
# Config for AUTO_CURSEFORGE server type
autoCurseForge:
# CurseForge API key obtained from developer console
apiKey:
key: "CHANGEME!"
existingSecret: ""
secretKey: cf-api-key
# Link to modpack in general or a specific file
# NOTE: In case of specific file - do not point at server file
pageUrl: ""
# Unique id of modpack, can be used instead of url
slug: ""
# Id used to specify which exact modpack file needs to be downloaded
# NOTE: Do not use server file id
fileId: ""
# Less restrictive way of specifying modpack version, uses substring match
filenameMatcher: ""
# List of project slugs or IDs to be excluded from modpack, useful if mod is incorrectly marked as server side
excludeMods: []
# List of project slugs or IDs to be included in modpack, useful if mod is incorrectly marked as client side only
includeMods: []
# Path to file with rules for including and excluding mods. If null - use bundled file, if empty - disable it
excludeIncludeFile: null
# Reevaluate exclude and include rules
forceSynchronize: false
# Can be set to either WORLD_FILE or OVERRIDES to specify where to get LEVEL
setLevelFrom: ""
# Sets limit to how many mods can be downloaded in parallel
parallelDownloads: 4
# Set to skip files in modpack "overrides" folder that would replace existing files
# NOTE: World data is always skipped if present
overridesSkipExisting: false
rcon:
# If you enable this, make SURE to change your password below.
enabled: false
# By default, the container will generate a random password at startup
# to ensure internal RCON tooling, including a backup container,
# can be used, but the password is secure.
withGeneratedPassword: false
port: 25575
password: "CHANGEME!"
existingSecret:
secretKey: rcon-password
serviceType: ClusterIP
## Set the external port if the rcon serviceType is NodePort
nodePort:
clusterIP:
loadBalancerClass:
loadBalancerIP:
# loadBalancerSourceRanges: []
## Set the externalTrafficPolicy in the Service to either Cluster or Local
# externalTrafficPolicy: Cluster
## set this to false to not have colorized logs
tty: true
extraPorts:
[]
# These options allow you to expose another port from the Minecraft server, plugins such
# as dynmap (8123) and bluemap (8100) will require this for access to their web interfaces
#
# - name: map
# containerPort: 8123
# protocol: TCP
# service:
# enabled: false
# embedded: false
# annotations: {}
# type: ClusterIP
# ## Set the external port if the rcon serviceType is NodePort
## nodePort:
# loadBalancerIP: ""
# loadBalancerSourceRanges: []
# externalTrafficPolicy: Cluster
# port: 8123
# ingress:
# ingressClassName: nginx
# enabled: false
# annotations:
## Deprecated way for specifying the ingressClass. Kube.version < 1.18
## kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
# hosts:
# - name: map.local
# path: /
# tls:
# - secretName: map-tls
# hosts:
# - map.local
query:
# If you enable this, your server will be "published" to Gamespy
enabled: false
port: 25565
## Additional minecraft container environment variables
## Values can be either variable values or `valueFrom` yaml
##
extraEnv:
{}
# some_variable: some value
# another_variable:
# valueFrom:
# fieldRef:
# fieldPath: status.hostIP
## Additional environment variables to add to the minecraft container from
## ConfigMaps and Secrets
##
envFrom: []
persistence:
labels: {}
annotations: {}
## specify an alternative volume to be mounted to /data instead of datadir.
# altDataVolumeName: ""
## minecraft data Persistent Volume Storage Class
## If defined, storageClassName: <storageClass>
## If set to "-", storageClassName: "", which disables dynamic provisioning
## If undefined (the default) or set to null, no storageClassName spec is
## set, choosing the default provisioner. (gp2 on AWS, standard on
## GKE, AWS & OpenStack)
##
# storageClass: "-"
dataDir:
# Set this to false if you don't care to persist state between restarts.
enabled: false
Size: 1Gi
accessModes:
- ReadWriteOnce
# existingClaim: nil
## specify a subpath in the volume where the data is. Useful when sharing volumes with other apps.
# subPath: /path/to/dataDir
podAnnotations: {}
podLabels: {}
deploymentAnnotations: {}
deploymentLabels: {}
serviceAnnotations: {}
serviceLabels: {}
rconServiceAnnotations: {}
rconServiceLabels: {}
# PLEASE NOTE! rcon must be enabled above! It does NOT require a nodePort or loadBalancerIP
mcbackup:
enabled: false
image:
repository: itzg/mc-backup
tag: latest
pullPolicy: IfNotPresent
# wait 2 minutes before starting
initialDelay: 2m
# ***set to 0 or smaller, script will run once and exit. DO NOT SET TO 0 or smaller, this will cause K8s to kill your pod!***
# backupInterval="1.5d" -> backup every one and a half days (36 hours)
# backupInterval="2h 30m" -> backup every two and a half hours
backupInterval: 24h
# option lets you pause backups if no players are online.
pauseIfNoPlayers: "false"
# is set to a positive number, it'll delete old .tgz backup files from DEST_DIR. By default deletes backups older than a week.
pruneBackupsDays: 7
# Set to a negative value to retry indefinitely
rconRetries: 5
rconRetryInterval: 10s
# is a comma-separated list of glob(3) patterns to exclude from backups. By default excludes all jar files (plugins, server files),
# logs folder and cache (used by i.e. PaperMC server).
excludes: "*.jar,cache,logs"
# backup methods, see https://github.com/itzg/docker-mc-backup e.g. tar, rclone, restic, rsync
backupMethod: tar
# tar and rclone methods
destDir: /backups
# is a true/false flag that creates a symbolic link to the latest backup
linkLatest: "false"
# is the compression method used by tar. Valid value: gzip bzip2 zstd
compressMethod: "gzip"
# sets the parameters for zstd compression. The --long parameter affects RAM requirements for both compression and decompression
# (the default of 25 means 2^25 bytes = 32 MB).
zstdParameters: "-3 --long=25 --single-thread"
# the name of the remote you've configured in your rclone.conf
rcloneRemote:
rcloneDestDir:
rcloneCompressMethod: gzip
# see https://rclone.org/ for details
# this value is evaluated as a template
rcloneConfig:
# [remote]
# type = google cloud storage
# client_id =
# client_secret =
# token = {"AccessToken":"super","RefreshToken":"secret","Expiry":"date","Extra":null}
# project_number = 12345678
# object_acl = private
# bucket_acl = private
# if you prefer to create a secret from file (e.g. kubectl create secret generic my-rclone-config --from-file=~/.config/rclone/rclone.conf)
# rcloneConfigExistingSecret: my-rclone-config
resticRepository: ""
# variable to define a space separated list of additional restic tags. see https://hub.docker.com/r/itzg/mc-backup
resticAdditionalTags: "mc_backups"
# see https://restic.readthedocs.io/en/latest/060_forget.html
pruneResticRetention: "--keep-daily 7 --keep-weekly 5 --keep-monthly 12 --keep-yearly 75"
# At least one of RESTIC_PASSWORD* env variables need to be defined, see https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html
resticEnvs:
{}
# RESTIC_PASSWORD: restic-password
## Additional minecraft container environment variables
## Values can be either variable values or `valueFrom` yaml
##
extraEnv:
{}
# some_variable: some value
# another_variable:
# valueFrom:
# fieldRef:
# fieldPath: status.hostIP
## Additional environment variables to add to the mc-backup container from
## ConfigMaps and Secrets
##
envFrom: []
resources:
requests:
memory: 512Mi
cpu: 500m
persistence:
annotations: {}
## minecraft data Persistent Volume Storage Class
## If defined, storageClassName: <storageClass>
## If set to "-", storageClassName: "", which disables dynamic provisioning
## If undefined (the default) or set to null, no storageClassName spec is
## set, choosing the default provisioner. (gp2 on AWS, standard on
## GKE, AWS & OpenStack)
##
# storageClass: "-"
backupDir:
# Set this to false if you don't care to persist state between restarts.
enabled: false
# existingClaim: nil
Size: 1Gi
accessModes:
- ReadWriteOnce
# dnsPolicy: ClusterFirst
# dnsConfig:
# options:
# - name: ndots
# value: '1'