REFACTOR(crafty): use craftycontroller chart

- Replace custom manifests with craftycontroller Helm chart
- Update ArgoCD application source configuration
This commit is contained in:
2026-01-06 16:59:42 +09:00
parent d65596309b
commit 2aab61539b
4 changed files with 78 additions and 66 deletions

View File

@@ -8,9 +8,9 @@ metadata:
spec: spec:
project: default project: default
sources: sources:
- repoURL: https://bjw-s-labs.github.io/helm-charts - repoURL: https://drewburr-labs.github.io/helm-charts
chart: app-template chart: craftycontroller
targetRevision: 3.6.1 targetRevision: 0.1.7
helm: helm:
valueFiles: valueFiles:
- $values/crafty/helm-values.yaml - $values/crafty/helm-values.yaml

View File

@@ -1,67 +1,78 @@
# crafty - bjw-s/app-template values # craftycontroller Helm chart values
# Minecraft server manager # Minecraft server manager - https://craftycontrol.com/
defaultPodOptions: fullnameOverride: crafty
securityContext:
fsGroup: 0
controllers: image:
main:
strategy: Recreate
initContainers:
init-permissions:
image:
repository: busybox
tag: latest
command:
- sh
- -c
- "chown -R 1000:0 /crafty && chmod -R g+rwX /crafty"
securityContext:
runAsUser: 0
containers:
main:
image:
repository: registry.gitlab.com/crafty-controller/crafty-4 repository: registry.gitlab.com/crafty-controller/crafty-4
tag: latest tag: latest
env: pullPolicy: Always
TZ: Asia/Seoul
resources: resources:
requests: requests:
cpu: 250m cpu: 250m
memory: 512Mi memory: 512Mi
limits: limits:
memory: 2Gi memory: 2Gi
securityContext:
allowPrivilegeEscalation: false
service: # Disable default probes (Crafty HTTPS needs time to initialize)
main: livenessProbe:
controller: main initialDelaySeconds: 60
ports: httpGet:
https: path: /
port: 8443 port: https
dynmap: scheme: HTTPS
port: 8123 readinessProbe:
initialDelaySeconds: 60
periodSeconds: 10
failureThreshold: 30
httpGet:
path: /
port: https
scheme: HTTPS
# Use existing PVCs (don't create new ones by omitting requests)
persistence: persistence:
servers: crafty-app-config:
enabled: false # Using additionalVolumes for existing PVC
crafty-servers:
enabled: true enabled: true
type: persistentVolumeClaim # No requests = don't create PVC, use existing one
existingClaim: crafty-servers
advancedMounts: # Mount existing crafty-config PVC
main: additionalVolumes:
init-permissions: - name: crafty-config
- path: /crafty/servers persistentVolumeClaim:
main: claimName: crafty-config
- path: /crafty/servers
config: additionalVolumeMounts:
enabled: true - name: crafty-config
type: persistentVolumeClaim mountPath: /crafty/app/config
existingClaim: crafty-config
advancedMounts: # Services
main: services:
init-permissions: https:
- path: /crafty/app/config type: ClusterIP
main: ports:
- path: /crafty/app/config - name: https
port: 8443
protocol: TCP
- name: dynmap
port: 8123
protocol: TCP
# Minecraft service defined in manifests/minecraft-service.yaml (LoadBalancer)
minecraft:
type: ClusterIP
ports:
- name: minecraft
port: 25565
protocol: TCP
# Security context
podSecurityContext:
fsGroup: 0
securityContext:
runAsNonRoot: true
runAsUser: 1000
runAsGroup: 0

View File

@@ -10,7 +10,7 @@ spec:
- match: Host(`crafty0213.kro.kr`) - match: Host(`crafty0213.kro.kr`)
kind: Rule kind: Rule
services: services:
- name: crafty - name: crafty-https
port: 8443 port: 8443
scheme: https scheme: https
serversTransport: crafty-insecure serversTransport: crafty-insecure

View File

@@ -8,7 +8,8 @@ metadata:
spec: spec:
type: LoadBalancer type: LoadBalancer
selector: selector:
app.kubernetes.io/name: crafty app.kubernetes.io/name: craftycontroller
app.kubernetes.io/instance: crafty
ports: ports:
- name: bedrock - name: bedrock
port: 19132 port: 19132