/ manifest.yaml
manifest.yaml
  1  ---
  2  apiVersion: v1
  3  kind: Namespace
  4  metadata:
  5    name: minecraft
  6    labels:
  7      app.kubernetes.io/name: minecraft
  8  # TEMPLATE FOR SECRET
  9  # ---
 10  # apiVersion: v1
 11  # kind: Secret
 12  # type: Opaque
 13  # metadata:
 14  #   name: player-config
 15  #   namespace: minecraft
 16  #   labels:
 17  #     app.kubernetes.io/name: minecraft
 18  # stringData:
 19  #   banned-ips.json: "[]"
 20  #   banned-players.json: "[]"
 21  #   ops.json: "[]"
 22  #   whitelist.json: "[]"
 23  ---
 24  apiVersion: v1
 25  kind: ConfigMap
 26  metadata:
 27    name: env-vars
 28    namespace: minecraft
 29    labels:
 30      app.kubernetes.io/name: minecraft
 31  data:
 32    MINECRAFT_SERVER_ID: "minecraft"
 33    JAVA_INITIAL_MEM: "256M"
 34    JAVA_MAX_MEM: "3G"
 35    OPENTELEMETRY_AGENT: "0"
 36    MAINTENANCE_MODE: "0"
 37  ---
 38  apiVersion: v1
 39  kind: ConfigMap
 40  metadata:
 41    name: mod-config
 42    namespace: minecraft
 43    labels:
 44      app.kubernetes.io/name: minecraft
 45  data:
 46    indigo-renderer.properties: |
 47      always-tesselate-blocks=auto
 48      ambient-occlusion-mode=hybrid
 49      debug-compare-lighting=auto
 50      fix-exterior-vertex-lighting=auto
 51      fix-luminous-block-ambient-occlusion=auto
 52      fix-mean-light-calculation=auto
 53      fix-smooth-lighting-offset=auto
 54    # Docs: https://luckperms.net/wiki
 55    luckperms.conf: |
 56      server = "global"
 57      use-server-uuid-cache = false
 58      storage-method = "h2"
 59      data {
 60        address = "localhost"
 61        database = "minecraft"
 62        username = "root"
 63        password = ""
 64        pool-settings {
 65          maximum-pool-size = 10
 66          minimum-idle = 10
 67          maximum-lifetime = 1800000 # 30 minutes
 68          keepalive-time = 0
 69          connection-timeout = 5000 # 5 seconds
 70          properties {
 71            useUnicode = true
 72            characterEncoding = "utf8"
 73          }
 74        }
 75        table-prefix = "luckperms_"
 76        mongodb-collection-prefix = ""
 77        mongodb-connection-uri = ""
 78      }
 79      split-storage {
 80        enabled = false
 81        methods {
 82          user = "h2"
 83          group = "h2"
 84          track = "h2"
 85          uuid = "h2"
 86          log = "h2"
 87        }
 88      }
 89      sync-minutes = -1
 90      watch-files = true
 91      messaging-service = "auto"
 92      auto-push-updates = true
 93      push-log-entries = true
 94      broadcast-received-log-entries = true
 95      redis {
 96        enabled = false
 97        address = "localhost"
 98        username = ""
 99        password = ""
100      }
101      nats {
102        enabled = false
103        address = "localhost"
104        username = ""
105        password = ""
106      }
107      rabbitmq {
108        enabled = false
109        address = "localhost"
110        vhost = "/"
111        username = "guest"
112        password = "guest"
113      }
114      temporary-add-behaviour = "deny"
115      primary-group-calculation = "parents-by-weight"
116      argument-based-command-permissions = false
117      require-sender-group-membership-to-modify = false
118      log-notify = true
119      log-notify-filtered-descriptions = []
120      auto-install-translations = true
121      meta-formatting {
122        prefix {
123          format = ["highest"]
124          duplicates = "first-only"
125          start-spacer = ""
126          middle-spacer = " "
127          end-spacer = ""
128        }
129        suffix {
130          format = ["highest"]
131          duplicates = "first-only"
132          start-spacer = ""
133          middle-spacer = " "
134          end-spacer = ""
135        }
136      }
137      inheritance-traversal-algorithm = "depth-first-pre-order"
138      post-traversal-inheritance-sort = false
139      context-satisfy-mode = "at-least-one-value-per-key"
140      disabled-contexts = []
141      include-global = true
142      include-global-world = true
143      apply-global-groups = true
144      apply-global-world-groups = true
145      meta-value-selection-default = "inheritance"
146      meta-value-selection {}
147      apply-wildcards = true
148      apply-sponge-implicit-wildcards = true
149      apply-regex = true
150      apply-shorthand = true
151      integrated-server-owner-bypasses-checks = true
152      disabled-context-calculators = []
153      world-rewrite {}
154      group-weight {}
155      enable-ops = true
156      auto-op = false
157      debug-logins = false
158      allow-invalid-usernames = false
159      skip-bulkupdate-confirmation = false
160      disable-bulkupdate = false
161      prevent-primary-group-removal = false
162      update-client-command-list = true
163      resolve-command-selectors = false
164    auto-host.json: |
165      {
166        "_c1": "Enables Polymer's ResourcePack Auto Hosting",
167        "enabled": true,
168        "_c2": "Marks resource pack as required",
169        "required": true,
170        "_c7": "Mods may override the above setting and make the resource pack required, set this to false to disable that.",
171        "mod_override": true,
172        "_c3": "Type of resource pack provider. Default: 'polymer:automatic'",
173        "type": "polymer:automatic",
174        "_c4": "Configuration of type, see provider's source for more details",
175        "settings": {
176          "forced_address": ""
177        },
178        "_c5": "Message sent to clients before pack is loaded",
179        "message": "This server uses resource pack to enhance gameplay with custom textures and models. It might be unplayable without them.",
180        "_c6": "Disconnect message in case of failure",
181        "disconnect_message": "Couldn't apply server resourcepack!",
182        "_c8": "Allows to define more external resource packs. It's an object with 'id' for uuid, 'url' for the pack url and 'hash' for the SHA1 hash.",
183        "external_resource_packs": [],
184        "_c9": "Moves resource pack generation earlier when running on server. Might break some mods.",
185        "setup_early": false
186      }
187    client.json: |
188      {
189        "_c4": "Toggles visibility of F3 debug info",
190        "displayF3Info": true,
191        "_c5": "Enables logging of invalid registry ids (BlockStates, Blocks, Items, etc) sent by server",
192        "logInvalidServerEntryIds": false,
193        "_c6": "Disables Polymer's QoL changes that effects non-visual things",
194        "disableNonVisualQualityOfLifeChanges": false,
195        "_c7": "Enables experimental support for less standard modded containers, allowing them to display polymer items",
196        "experimentalModdedContainerSupport": true,
197        "_c11": "Makes polymer report time it's handshake took",
198        "logHandshakeTime": false
199      }
200    common.json: |
201      {
202        "_c1": "Keep this one at 0, unless you credit this library in another way",
203        "coreCommandOperatorLevel": 0,
204        "_c2": "Enabled developer utilities",
205        "enableDevTools": false,
206        "_c3": "Uses simpler about display for /polymer command",
207        "minimalisticAbout": false,
208        "_c4": "Logs warnings while creating template/filter entities",
209        "enableTemplateEntityWarnings": true,
210        "_c5": "Enables logging of more exceptions. Useful when debugging",
211        "logAllExceptions": false,
212        "_c6": "Forces all player resource pack checks to always return true (detect resource pack on client)",
213        "force_resource_pack_state_to_enabled": false
214      }
215    resource-pack.json: |
216      {
217        "_c0": "UUID of default/main resource pack.",
218        "main_uuid": "bd7d6411-0723-43b2-9b51-b04ceb160262",
219        "_c1": "Marks resource pack as required, only effects clients and mods using api to check it",
220        "markResourcePackAsRequiredByDefault": false,
221        "_c5": "Included resource packs from mods!",
222        "include_mod_assets": [],
223        "_c6": "Included resource packs from zips!",
224        "include_zips": [
225          "world/resources.zip"
226        ],
227        "_c7": "Path used for creation of default resourcepack!",
228        "resource_pack_location": "polymer/resource_pack.zip",
229        "_c8": "Prevents selected paths from being added to resource pack, if they start with provided text.",
230        "prevent_path_with": []
231      }
232    server.json: |
233      {
234        "_c7": "Displays vanilla/modded creatives tabs in /polymer creative",
235        "displayNonPolymerCreativeTabs": true,
236        "_c9": "Makes server send additional block updates around clicked area",
237        "sendBlocksAroundClicked": true,
238        "_c11": "Makes polymer report time it's handshake took",
239        "logHandshakeTime": false,
240        "_c12": "Enables logging of BlockState ids rebuilds",
241        "logBlockStateRebuilds": true,
242        "_c1": "Enables syncing of non-polymer entries as polymer ones, when PolyMc is present",
243        "polyMcSyncModdedEntries": true,
244        "_c2": "Delay from last light updates to syncing it to clients, in ticks",
245        "lightUpdateTickDelay": 1,
246        "_c14": "Amount of recipes that get split into seperate packets instead of being sent all at once. Should help avoiding packet size limit. -1 disables it",
247        "split_recipe_book_packet_amount": -1,
248        "_c15": "Changes stonecutter a bit to fix custom recipes not working with it.",
249        "force_enable_stonecutter_fix": false,
250        "_c13": "Replaces PolyMc's block and item interaction handling with Polymer ones",
251        "override_polymc_mining_check": false
252      }
253    AdvancedBackups-client.properties: |
254      config.advancedbackups.showProgress=true
255      config.advancedbackups.colours.progress.red=82
256      config.advancedbackups.colours.progress.green=255
257      config.advancedbackups.colours.progress.blue=82
258      config.advancedbackups.colours.error.red=255
259      config.advancedbackups.colours.error.green=50
260      config.advancedbackups.colours.error.blue=50
261      config.advancedbackups.darkToasts=true
262      config.advancedbackups.colours.bar.red=88
263      config.advancedbackups.colours.bar.green=242
264      config.advancedbackups.colours.bar.blue=82
265      config.advancedbackups.colours.background.red=255
266      config.advancedbackups.colours.background.green=255
267      config.advancedbackups.colours.background.blue=255
268    AdvancedBackups.properties: |
269      config.advancedbackups.enabled=true
270      config.advancedbackups.save=true
271      config.advancedbackups.togglesave=true
272      config.advancedbackups.buffer=1048576
273      config.advancedbackups.flush=false
274      config.advancedbackups.activity=true
275      config.advancedbackups.type=differential
276      config.advancedbackups.blacklist=session.lock,*_old
277      config.advancedbackups.path=./backups
278      config.advancedbackups.frequency.min=0.25
279      config.advancedbackups.frequency.max=24.0
280      config.advancedbackups.frequency.uptime=true
281      config.advancedbackups.frequency.schedule=1:00
282      config.advancedbackups.frequency.shutdown=false
283      config.advancedbackups.frequency.startup=false
284      config.advancedbackups.frequency.delay=30
285      config.advancedbackups.logging.clients=ops
286      config.advancedbackups.logging.clientfrequency=500
287      config.advancedbackups.logging.console=true
288      config.advancedbackups.logging.consolefrequency=5000
289      config.advancedbackups.purge.size=0
290      config.advancedbackups.purge.days=7
291      config.advancedbackups.purge.count=0
292      config.advancedbackups.purge.incrementals=true
293      config.advancedbackups.purge.incrementalchains=1
294      config.advancedbackups.zips.compression=4
295      config.advancedbackups.chains.length=7
296      config.advancedbackups.chains.compress=true
297      config.advancedbackups.chains.smart=true
298      config.advancedbackups.chains.maxpercent=50.0
299    ArcanaNovum.properties: |
300      doConcentrationDamage = true
301      announceAchievements = true
302      ingredientReduction = 1
303      xpStormcallerAltarActivate = 1000
304      xpCelestialAltarActivate = 1000
305      xpStarpathAltarActivate = 1000
306      xpIgneousColliderProduce = 10
307      xpContinuumAnchorPerMinute = 15
308      xpFractalSpongeAbsorbBlock = 1
309      xpWingsOfEnderiaFly = 2
310      xpRadiantFletcheryTipArrows = 100
311      xpStellarCoreSalvage = 100
312      xpStellarCoreSmelt = 1
313      xpPickaxeOfCeptyusMineBlock = 1
314      xpPickaxeOfCeptyusVeinMineBlock = 5
315      xpRunicArrowShoot = 50
316      xpShieldOfFortitudeAbsorbDamage = 10
317      xpTotemOfVengeanceActivate = 1000
318      xpTotemOfVengeanceSurvive = 4000
319      xpDamageAmpPer10 = 10
320      xpDamageAmpCap = 200
321      xpAlchemicalArbalestShoot = 25
322      xpTransmutationAltarTransmute = 100
323      xpTransmutationAltarTransmutePerItem = 10
324      xpMidnightEnchanterDisenchantPerEssence = 10
325      xpStardustInfusionPerStardust = 10
326      xpTwilightAnvilPer10 = 10
327      xpTwilightAnvilCap = 1000
328      xpAncientDowsingRodPerDebris = 15
329      xpAncientDowsingRodCap = 1500
330      xpAquaticEversourceUse = 1
331      xpMagmaticEversourceUse = 25
332      xpBrainJarMendPerXp = 5
333      xpChestTranslocatorUse = 25
334      xpContainmentCircletUse = 10
335      xpEssenceEggSpawn = 2500
336      xpEssenceEggConvert = 500
337      xpEverlastingRocketUse = 100
338      xpLevitationHarnessPerSecond = 25
339      xpNulMementoDeallocate = 50000
340      xpNulMementoProtect = 5000
341      xpPearlOfRecallUse = 1000
342      xpPlaneshifterUse = 1000
343      xpStasisPearlUse = 250
344      xpQuiverRefill = 50
345      xpShadowStalkersGlaiveStalk = 500
346      xpShadowStalkersGlaiveBlink = 100
347      xpShulkerCorePerSoul = 50
348      xpSojournersBootsRunPerSecond = 10
349      xpSoulstoneLevelUpPerSoul = 50
350      xpSpawnerHarnessUse = 20000
351      xpTelescopingBeaconPerBlock = 1
352      xpCindersCharmIgniteBlock = 15
353      xpCindersCharmIgniteTNT = 50
354      xpCindersCharmIgniteEntity = 15
355      xpCindersCharmIgniteCreeper = 50
356      xpCindersCharmLightBlock = 15
357      xpCindersCharmSmeltPerCinder = 4
358      xpCindersCharmConePerTarget = 5
359      xpCindersCharmPyroblastPerTarget = 5
360      xpCindersCharmWebPerTarget = 5
361      xpFeastingCharmPerFoodValue = 50
362      xpLightCharmNovaPerLight = 1
363      xpLightCharmAutomatic = 10
364      xpLightCharmManual = 15
365      xpMagnetismCharmPerItem = 2
366      xpMagnetismCharmPerItemCap = 25
367      xpWildGrowthCharm = 25
368      xpWildGrowthCharmPerReapedCrop = 1
369      xpWildGrowthCharmPassive = 1
370      xpFelidaeCharmFall = 10
371      xpFelidaeCharmFallCap = 1000
372      xpFelidaeCharmScarePhantom = 2
373      xpFelidaeCharmScareCreeper = 10
374      xpWingsOfEnderiaCushion = 10
375      xpWingsOfEnderiaCushionCap = 1000
376      xpAequalisScientiaCatalystTransmute = 1000
377      xpAequalisScientiaSkillTransmute = 1000
378      xpAequalisScientiaAttunedTransmute = 500
379      xpBinaryBladesMaxEnergyPerSecond = 50
380      xpCetaceaCharmPerSecond = 10
381      xpCleansingCharmCleanse = 150
382      xpGravitonMaulImpactDamage = 5
383      xpGravitonMaulImpactDamageCap = 250
384      xpGreavesOfGaialtusRefillBlock = 5
385      xpSpearOfTenbrousImpale = 50
386    c2me.toml: |
387      version = 3
388      defaultGlobalExecutorParallelismExpression = "default"
389      threadPoolPriority = "default"
390      globalExecutorParallelism = "default"
391      [fixes]
392      disableLoggingShutdownHook = "default"
393      enforceSafeWorldRandomAccess = "default"
394      [noTickViewDistance]
395      enabled = "default"
396      maxConcurrentChunkLoads = "default"
397      compatibilityMode = "default"
398      enableExtRenderDistanceProtocol = "default"
399      ensureChunkCorrectness = "default"
400      [ioSystem]
401      chunkDataCacheSoftLimit = "default"
402      chunkDataCacheLimit = "default"
403      gcFreeChunkSerializer = "default"
404      replaceImpl = "default"
405      [vanillaWorldGenOptimizations]
406      useDensityFunctionCompiler = "default"
407      optimizeAquifer = "default"
408      useEndBiomeCache = "default"
409      optimizeStructureWeightSampler = "default"
410      [generalOptimizations]
411      midTickChunkTasksInterval = "default"
412      [generalOptimizations.autoSave]
413      mode = "default"
414      [chunkSystem]
415      asyncSerialization = "default"
416      recoverFromErrors = "default"
417      allowPOIUnloading = "default"
418      suppressGhostMushrooms = "default"
419      syncPlayerTickets = "default"
420      fluidPostProcessingToScheduledTick = "default"
421      lowMemoryMode = "default"
422    cardinal-components-api.properties: |
423      log-deserialization-warnings = true
424      max-deserialization-warnings = 5
425      config-version = 2
426    dynamiclights.json: |
427      {
428        "enable": "WORLD",
429        "enable_on_fire": "WORLD",
430        "enable_glowing": "WORLD",
431        "enable_ghast": "WORLD",
432        "enable_enchanted_items": "WORLD",
433        "enable_amethyst_trimmed": "WORLD",
434        "enable_fire_aspect": "WORLD",
435        "enable_riptide": "WORLD",
436        "enable_channeling": "WORLD",
437        "enable_water_sensitive": "WORLD",
438        "enable_sound": "WORLD",
439        "enable_rain_sensitive": "WORLD"
440      }
441    ferritecore.mixin.properties: |
442      replaceNeighborLookup = true
443      replacePropertyMap = true
444      cacheMultipartPredicates = true
445      modelResourceLocations = true
446      multipartDeduplication = true
447      blockstateCacheDeduplication = true
448      bakedQuadDeduplication = true
449      modelSides = true
450      useSmallThreadingDetector = false
451      compactFastMap = false
452      populateNeighborTable = false
453    forgeconfigapiport.toml: |
454      disableConfigWatcher = false
455      logUntranslatedConfigurationWarnings = true
456      defaultConfigsPath = "defaultconfigs"
457    getoffmylawn.json: |
458      {
459        "makeshiftRadius": 10,
460        "reinforcedRadius": 25,
461        "glisteningRadius": 50,
462        "crystalRadius": 75,
463        "emeradicRadius": 125,
464        "witheredRadius": 200,
465        "maxClaimsPerPlayer": -1,
466        "enablePvPinClaims": false,
467        "allowDamagingUnnamedHostileMobs": true,
468        "allowDamagingNamedHostileMobs": false,
469        "claimProtectsFullWorldHeight": false,
470        "claimAreaHeightMultiplier": 1.0,
471        "makeClaimAreaChunkBound": false,
472        "allowClaimOverlappingIfSameOwner": false,
473        "allowFakePlayersToModify": false,
474        "protectAgainstHostileExplosionsActivatedByTrustedPlayers": false,
475        "dimensionBlacklist": [],
476        "regionBlacklist": {},
477        "enabledAugments": {
478          "goml:angelic_aura": true,
479          "goml:heaven_wings": true,
480          "goml:chaos_zone": true,
481          "goml:explosion_controller": true,
482          "goml:withering_seal": true,
483          "goml:lake_spirit_grace": true,
484          "goml:greeter": true,
485          "goml:pvp_arena": true,
486          "goml:ender_binding": true,
487          "goml:force_field": true,
488          "goml:village_core": true
489        },
490        "allowedBlockInteraction": [],
491        "allowedEntityInteraction": [],
492        "messagePrefix": "<dark_gray>[<#a1ff59>GOML</color>]",
493        "placeholderNoClaimInfo": "<gray><italic>Wilderness",
494        "placeholderNoClaimOwners": "<gray><italic>Nobody",
495        "placeholderNoClaimTrusted": "<gray><italic>Nobody",
496        "placeholderClaimCanBuildInfo": "${owners} <gray>(<green>${anchor}</green>)",
497        "placeholderClaimCantBuildInfo": "${owners} <gray>(<red>${anchor}</red>)",
498        "claimColorSource": "location"
499      }
500    leavesbegone-server.toml: |
501      maximum_decay_ticks = 20
502      minimum_decay_ticks = 5
503      ignore_other_leave_types = false
504    letmedespawn.json: |
505      {
506        "mobNames": [
507          "corpse:corpse"
508        ],
509        "persistenceEnablers": []
510      }
511    lithostitched.json: |
512      {
513        "breaks_seed_parity": false
514      }
515    midnightlib.json: |
516      {
517        "config_screen_list": "TRUE"
518      }
519    pal.properties: |
520      alwaysLogTamperWarnings=false
521    polydex.json: |
522      {
523        "enable_search": true,
524        "enable_language_support_in_search": true,
525        "enable_hover_display": true,
526        "hover_display_update_rate": 4,
527        "hover_display_entity_absorption": true,
528        "default_hover_settings": {
529          "display_type": "polydex:bossbar",
530          "display_mode": "TARGET",
531          "visible_components": {
532            "polydex:fuel": "NEVER",
533            "polyfactory:debug_data": "NEVER",
534            "polydex:input": "NEVER",
535            "polydex:progress": "ALWAYS",
536            "polydex:name": "ALWAYS",
537            "polyfactory:filled_amount": "ALWAYS",
538            "polydex:mod_source": "NEVER",
539            "polydex:armor": "ALWAYS",
540            "polydex:raw_id": "NEVER",
541            "polyfactory:machine_state": "ALWAYS",
542            "polydex:effects": "ALWAYS",
543            "polydex:output": "NEVER",
544            "polydex:health": "ALWAYS"
545          }
546        },
547        "disabled_hover_information": [],
548        "display_can_show_requirement": {
549          "type": "has_player"
550        },
551        "displayCantMine": true,
552        "displayModSource": true,
553        "displayAdditional": true,
554        "displayMiningProgress": true,
555        "displayEntity": true,
556        "displayEntityHealth": true
557      }
558    polyfactory.json: |
559      {
560        "use_fast_stete_limited_blocks": true
561      }
562    sessility.properties: |
563      detect-action=true
564      detect-rotation=true
565      hide-sessile-in-server-list=false
566      hide-sessile-in-tab-list=false
567      message-motile=
568      message-sessile=
569      sessile-display-color=gray
570      sessile-timeout=240
571      skip-sessile-in-player-count=false
572      skip-sessile-in-sleep-count=true
573    stackdeobf.json: |
574      {
575        "config-version-dont-touch-this": 2,
576        "inject-logger": true,
577        "rewrite-every-log-message": false,
578        "mapping-type": "yarn"
579      }
580    tectonic.json: |
581      {
582        "enabled": true,
583        "feature_toggles": {
584          "desert_dunes": true,
585          "increased_height": false,
586          "lava_rivers": true,
587          "monument_offset": true,
588          "underground_rivers": true
589        },
590        "snow_start_offset": 128,
591        "terrain_scales": {
592          "deep_ocean_depth": -0.45,
593          "erosion_scale": 0.25,
594          "ocean_depth": -0.15,
595          "vertical_multiplier": 1.125
596        }
597      }
598  ---
599  apiVersion: v1
600  kind: ConfigMap
601  metadata:
602    name: server-config
603    namespace: minecraft
604    labels:
605      app.kubernetes.io/name: minecraft
606  data:
607    eula.txt: |
608      eula=true
609    server.properties: |
610      accepts-transfers=false
611      allow-flight=false
612      allow-nether=true
613      broadcast-console-to-ops=true
614      broadcast-rcon-to-ops=true
615      bug-report-link=https://github.com/nausicaea/dvergr/issues
616      debug=false
617      difficulty=easy
618      enable-command-block=false
619      enable-jmx-monitoring=false
620      enable-query=true
621      enable-rcon=false
622      enable-status=true
623      enforce-secure-profile=true
624      enforce-whitelist=true
625      entity-broadcast-range-percentage=100
626      force-gamemode=false
627      function-permission-level=2
628      gamemode=survival
629      generate-structures=true
630      generator-settings={}
631      hardcore=false
632      hide-online-players=false
633      initial-disabled-packs=
634      initial-enabled-packs=vanilla
635      level-name=world
636      level-seed=-3866381874430228132
637      level-type=minecraft\:normal
638      log-ips=true
639      max-chained-neighbor-updates=1000000
640      max-players=10
641      max-tick-time=60000
642      max-world-size=29999984
643      motd=Dive into other Worlds
644      network-compression-threshold=256
645      online-mode=true
646      op-permission-level=4
647      player-idle-timeout=0
648      prevent-proxy-connections=false
649      pvp=true
650      query.port=25566
651      rate-limit=0
652      rcon.password=
653      rcon.port=
654      region-file-compression=deflate
655      require-resource-pack=false
656      resource-pack=
657      resource-pack-id=
658      resource-pack-prompt=
659      resource-pack-sha1=
660      server-ip=0.0.0.0
661      server-port=25565
662      simulation-distance=10
663      spawn-animals=true
664      spawn-monsters=true
665      spawn-npcs=true
666      spawn-protection=16
667      sync-chunk-writes=true
668      text-filtering-config=
669      use-native-transport=true
670      view-distance=10
671      white-list=true
672    opentelemetry.properties: |
673      otel.service.name=minecraft
674      otel.javaagent.debug=false
675      otel.javaagent.logging=simple
676      otel.exporter.otlp.protocol=grpc
677      otel.exporter.otlp.endpoint=http://localhost:4317
678      otel.traces.exporter=otlp
679      otel.metrics.exporter=otlp
680      otel.logs.exporter=otlp
681    log4j2.xml: |
682      <?xml version="1.0" encoding="UTF-8"?>
683      <Configuration>
684          <Appenders>
685              <Console name="console" target="SYSTEM_ERR">
686                  <PatternLayout pattern="[%level] [%logger{1}] [%class{1.}] %msg%n" />
687              </Console>
688              <OpenTelemetry name="OpenTelemetryAppender"/>
689          </Appenders>
690          <Loggers>
691              <Root level="debug">
692                  <AppenderRef ref="console" level="info"/>
693                  <AppenderRef ref="OpenTelemetryAppender" level="all"/>
694              </Root>
695          </Loggers>
696      </Configuration>
697  ---
698  apiVersion: v1
699  kind: Service
700  metadata:
701    name: minecraft-sts
702    namespace: minecraft
703    labels:
704      app.kubernetes.io/name: minecraft
705  spec:
706    selector:
707      app.kubernetes.io/name: minecraft
708    clusterIP: None
709  ---
710  apiVersion: v1
711  kind: Service
712  metadata:
713    name: minecraft
714    namespace: minecraft
715    labels:
716      app.kubernetes.io/name: minecraft
717  spec:
718    selector:
719      app.kubernetes.io/name: minecraft
720    type: ClusterIP
721    ports:
722      - name: minecraft
723        port: 25565
724        protocol: TCP
725        targetPort: minecraft
726      - name: query
727        port: 25566
728        protocol: UDP
729        targetPort: query
730  ---
731  apiVersion: apps/v1
732  kind: StatefulSet
733  metadata:
734    name: minecraft
735    namespace: minecraft
736    labels:
737      app.kubernetes.io/name: minecraft
738  spec:
739    serviceName: minecraft-sts
740    replicas: 1
741    selector:
742      matchLabels:
743        app.kubernetes.io/name: minecraft
744    volumeClaimTemplates:
745      - metadata:
746          name: persistent
747        spec:
748          accessModes: [ReadWriteOnce]
749          resources:
750            requests:
751              storage: 20Gi
752    template:
753      metadata:
754        labels:
755          app.kubernetes.io/name: minecraft
756      spec:
757        volumes:
758          - name: emptydir-config
759            emptyDir: {}
760          - name: emptydir-cache
761            emptyDir: {}
762          - name: emptydir-log
763            emptyDir: {}
764          - name: config
765            projected:
766              sources:
767                - configMap:
768                    name: server-config
769                    items:
770                      - key: server.properties
771                        path: server/server.properties
772                      - key: eula.txt
773                        path: server/eula.txt
774                      - key: opentelemetry.properties
775                        path: server/opentelemetry.properties
776                      - key: log4j2.xml
777                        path: server/log4j2.xml
778                - secret:
779                    name: player-config
780                    items:
781                      - key: banned-ips.json
782                        path: player/banned-ips.json
783                      - key: banned-players.json
784                        path: player/banned-players.json
785                      - key: ops.json
786                        path: player/ops.json
787                      - key: whitelist.json
788                        path: player/whitelist.json
789                - configMap:
790                    name: mod-config
791                    items:
792                      - key: indigo-renderer.properties
793                        path: mods/fabric/indigo-renderer.properties
794                      - key: luckperms.conf
795                        path: mods/luckperms/luckperms.conf
796                      - key: auto-host.json
797                        path: mods/polymer/auto-host.json
798                      - key: client.json
799                        path: mods/polymer/client.json
800                      - key: common.json
801                        path: mods/polymer/common.json
802                      - key: resource-pack.json
803                        path: mods/polymer/resource-pack.json
804                      - key: server.json
805                        path: mods/polymer/server.json
806                      - key: AdvancedBackups-client.properties
807                        path: mods/AdvancedBackups-client.properties
808                      - key: AdvancedBackups.properties
809                        path: mods/AdvancedBackups.properties
810                      - key: ArcanaNovum.properties
811                        path: mods/ArcanaNovum.properties
812                      - key: c2me.toml
813                        path: mods/c2me.toml
814                      - key: cardinal-components-api.properties
815                        path: mods/cardinal-components-api.properties
816                      - key: dynamiclights.json
817                        path: mods/dynamiclights.json
818                      - key: ferritecore.mixin.properties
819                        path: mods/ferritecore.mixin.properties
820                      - key: forgeconfigapiport.toml
821                        path: mods/forgeconfigapiport.toml
822                      - key: getoffmylawn.json
823                        path: mods/getoffmylawn.json
824                      - key: leavesbegone-server.toml
825                        path: mods/leavesbegone-server.toml
826                      - key: letmedespawn.json
827                        path: mods/letmedespawn.json
828                      - key: lithostitched.json
829                        path: mods/lithostitched.json
830                      - key: midnightlib.json
831                        path: mods/midnightlib.json
832                      - key: pal.properties
833                        path: mods/pal.properties
834                      - key: polydex.json
835                        path: mods/polydex.json
836                      - key: polyfactory.json
837                        path: mods/polyfactory.json
838                      - key: sessility.properties
839                        path: mods/sessility.properties
840                      - key: stackdeobf.json
841                        path: mods/stackdeobf.json
842                      - key: tectonic.json
843                        path: mods/tectonic.json
844        initContainers:
845          - name: init
846            image: &minecraft_img ghcr.io/nausicaea/dvergr:v0.1.0-1_21_4
847            securityContext:
848              runAsUser: 0
849              runAsGroup: 0
850            command: ["/bin/sh", "-c"]
851            args:
852              - |
853                set -xe;
854                cd /tmp/minecraft/etc;
855                mkdir -vp default server player mods/luckperms/translations mods/messages;
856                cp -vr /tmp/config-src/server/* server/;
857                cp -vr /tmp/config-src/player/* player/;
858                cp -vr /tmp/config-src/mods/* mods/;
859                cp -vr /etc/minecraft/mods/luckperms/translations/* mods/luckperms/translations/;
860                cp -vr /etc/minecraft/mods/messages/* mods/messages/;
861  
862                cd /tmp/minecraft/cache;
863                mkdir -v .cache .fabric .polydex cache libraries polymer stackdeobf_mappings versions;
864  
865                cd /tmp/minecraft/log;
866                mkdir -v crash-reports;
867  
868                cd /tmp/minecraft/persistent;
869                mkdir -vp backups luckperms universe/world/datapacks;
870                cp -vr /var/lib/minecraft/persistent/universe/world/datapacks/*.zip universe/world/datapacks/;
871  
872                chown -vR 10001:10001 /tmp/minecraft;
873  
874            volumeMounts:
875              - name: config
876                mountPath: /tmp/config-src
877                readOnly: true
878              - name: persistent
879                mountPath: /tmp/minecraft/persistent
880              - name: emptydir-config
881                mountPath: /tmp/minecraft/etc
882              - name: emptydir-cache
883                mountPath: /tmp/minecraft/cache
884              - name: emptydir-log
885                mountPath: /tmp/minecraft/log
886        containers:
887          - name: main
888            image: *minecraft_img
889            envFrom:
890              - configMapRef:
891                  name: env-vars
892            resources:
893              requests:
894                cpu: "6"
895                memory: 3Gi
896              limits:
897                cpu: "6"
898                memory: 3.5Gi
899            stdin: true
900            tty: true
901            volumeMounts:
902              - name: persistent
903                mountPath: /var/lib/minecraft/persistent
904              - name: emptydir-config
905                mountPath: /etc/minecraft
906              - name: emptydir-cache
907                mountPath: /var/cache/minecraft
908              - name: emptydir-log
909                mountPath: /var/log/minecraft
910            ports:
911              - name: minecraft
912                containerPort: 25565
913                protocol: TCP
914              - name: query
915                containerPort: 25566
916                protocol: UDP
917            livenessProbe:
918              exec:
919                command:
920                  - /usr/local/bin/healthcheck
921              periodSeconds: 30
922              failureThreshold: 3
923            startupProbe:
924              exec:
925                command:
926                  - /usr/local/bin/healthcheck
927              periodSeconds: 5
928              failureThreshold: 70