> [!file]+ 25-configmap.yaml
> ```yaml
> apiVersion: v1
> kind: ConfigMap
> metadata:
> name: smp-164-config
> namespace: mcd
> labels:
> app: mcd
> style: smp # gamemode=0
> version: 1.6.4
> data:
> server.properties: |
> allow-flight=false
> allow-nether=true
> difficulty=1
> enable-query=false
> enable-rcon=true
> force-gamemode=false
> gamemode=0
> generate-structures=true
> generator-settings=
> hardcore=false
> level-name=world
> level-seed=
> level-type=DEFAULT
> max-build-height=256
> max-players=20
> motd=the revolution will not be televised
> online-mode=true
> player-idle-timeout=0
> pvp=true
> rcon.password=eebydeeby
> rcon.port=25575
> server-ip=
> server-port=25565
> snooper-enabled=true
> spawn-animals=true
> spawn-monsters=true
> spawn-npcs=true
> spawn-protection=16
> texture-pack=
> view-distance=10
> white-list=false
> ```
As you can see, the bulk of this file is not yaml, or even meant for k8s: it is a Minecraft `server.properties` file. What's it doing here?
This yaml declares a ConfigMap, which is a read-only form of small storage meant for supplying config data to a pod. The field `server.properties` inside the `data` section is treated as a file name, and everything after the pipe is considered the contents of that file. We can mount this ConfigMap in our pods the same way we mount a PVC.
But watch out! Files specified in a ConfigMap are read-only. As it turns out, the Minecraft server process attempts to write to this file on startup. We'll do some tomfoolery to work around this in the next step, the Deployment.