Configuration¶
This section covers the configuration of Minecraft Operator's Custom Resource Definitions (CRDs).
Custom Resources¶
The operator defines two main CRDs:
| Resource | API Group | Description |
|---|---|---|
| PaperMCServer | mc.k8s.lex.la/v1alpha1 | Defines a Minecraft server instance |
| Plugin | mc.k8s.lex.la/v1alpha1 | Defines a plugin for matched servers |
Resource Relationship¶
graph LR
P1[Plugin A] -->|instanceSelector| S1[PaperMCServer 1]
P1 -->|instanceSelector| S2[PaperMCServer 2]
P2[Plugin B] -->|instanceSelector| S1
P3[Plugin C] -->|instanceSelector| S2
subgraph "Constraint Solver"
S1 --> V1[Version Resolution]
S2 --> V2[Version Resolution]
end Plugins are matched to servers via label selectors. The constraint solver ensures all plugins are compatible with the selected Paper version.
Sections¶
-
PaperMCServer
Complete reference for PaperMCServer CRD fields
-
Plugin
Complete reference for Plugin CRD fields
-
Update Strategies
Detailed guide to version management strategies
Quick Reference¶
PaperMCServer Update Strategies¶
| Strategy | Description | Use Case |
|---|---|---|
latest | Always newest Paper version | Testing, bleeding edge |
auto | Solver picks best compatible version | Recommended for production |
pin | Fixed version, auto-update builds | Stability with security updates |
build-pin | Fully pinned version and build | Maximum stability |
Plugin Update Strategies¶
| Strategy | Description | Use Case |
|---|---|---|
latest | Always newest plugin version | Most plugins |
pinned | Fixed version, no auto-updates | Known stable versions |
Example Configurations¶
Production Server with Plugins¶
apiVersion: mc.k8s.lex.la/v1alpha1
kind: PaperMCServer
metadata:
name: production
labels:
environment: production
spec:
updateStrategy: "auto"
updateSchedule:
checkCron: "0 3 * * *"
maintenanceWindow:
enabled: true
cron: "0 4 * * 0"
---
apiVersion: mc.k8s.lex.la/v1alpha1
kind: Plugin
metadata:
name: essentialsx
spec:
source:
type: hangar
project: "EssentialsX/Essentials"
updateStrategy: "latest"
instanceSelector:
matchLabels:
environment: production
Pinned Version for Stability¶
apiVersion: mc.k8s.lex.la/v1alpha1
kind: PaperMCServer
metadata:
name: stable
spec:
updateStrategy: "pin"
version: "1.21.1" # Pinned Minecraft version
updateSchedule:
checkCron: "0 3 * * *"
Next Steps¶
- PaperMCServer Reference — All server configuration options
- Plugin Reference — All plugin configuration options
- Update Strategies — Deep dive into version management