diff --git a/k8s/charts/valheim-server/.gitignore b/k8s/charts/valheim-server/.gitignore
deleted file mode 100644
index f1a5990..0000000
--- a/k8s/charts/valheim-server/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-custom-values.yaml
diff --git a/k8s/charts/valheim-server/.helmignore b/k8s/charts/valheim-server/.helmignore
deleted file mode 100644
index 0e8a0eb..0000000
--- a/k8s/charts/valheim-server/.helmignore
+++ /dev/null
@@ -1,23 +0,0 @@
-# Patterns to ignore when building packages.
-# This supports shell glob matching, relative path matching, and
-# negation (prefixed with !). Only one pattern per line.
-.DS_Store
-# Common VCS dirs
-.git/
-.gitignore
-.bzr/
-.bzrignore
-.hg/
-.hgignore
-.svn/
-# Common backup files
-*.swp
-*.bak
-*.tmp
-*.orig
-*~
-# Various IDEs
-.project
-.idea/
-*.tmproj
-.vscode/
diff --git a/k8s/charts/valheim-server/Chart.yaml b/k8s/charts/valheim-server/Chart.yaml
deleted file mode 100644
index 6c60582..0000000
--- a/k8s/charts/valheim-server/Chart.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
-apiVersion: v2
-name: valheim-server
-description: A Helm chart for deploying a Valheim dedicated server on Kubernetes
-type: application
-version: 1.0.0
-appVersion: "3.1.0"
-home: https://www.valheimgame.com/
-icon: https://cdn2.steamgriddb.com/icon/d17892563a6984845a0e23df7841f903/32/256x256.png
-maintainers:
- - name: kriegalex
- email: kriegalex@gmail.com
-keywords:
- - game
- - valheim
- - gameserver
- - dedicated-server
-sources:
- - https://github.com/mbround18/valheim-docker
- - https://github.com/kriegalex/k8s-charts/tree/main/charts/valheim-server
-deprecated: false
-annotations:
- artifacthub.io/links: |
- - name: Chart source
- url: https://github.com/kriegalex/k8s-charts/tree/main/charts/valheim-server
- - name: Docker image source
- url: https://github.com/mbround18/valheim-docker
- artifacthub.io/images: |
- - name: valheim
- image: mbround18/valheim:3.1.0
diff --git a/k8s/charts/valheim-server/README.md b/k8s/charts/valheim-server/README.md
deleted file mode 100644
index 1b42e06..0000000
--- a/k8s/charts/valheim-server/README.md
+++ /dev/null
@@ -1,193 +0,0 @@
-# valheim-server
-
-  
-
-A Helm chart for deploying a Valheim dedicated server on Kubernetes
-
-**Homepage:**
-
-## Maintainers
-
-| Name | Email | Url |
-| ---- | ------ | --- |
-| kriegalex | | |
-
-## Source Code
-
-*
-*
-
-## Overview
-
-This Helm chart deploys a Valheim dedicated server based on the [mbround18/valheim-docker](https://github.com/mbround18/valheim-docker) project.
-
-## Features
-
-- Configurable server settings
-- Automatic updates and backups
-- Discord webhook notifications
-- Persistent storage for game saves, server files, and backups
-- Resource management for Kubernetes
-
-## Prerequisites
-
-- Kubernetes 1.29+
-- Helm 3.16.0+
-- PV provisioner support in the underlying infrastructure (for persistent storage)
-- LoadBalancer support or an Ingress controller
-
-## TL;DR
-
-```bash
-helm repo add k8s-charts https://kriegalex.github.io/k8s-charts/
-helm install my-valheim-server k8s-charts/valheim-server
-```
-
-## Important Security Notice
-The default values for this chart include a placeholder password. For production use:
-
-1. Always specify a secure password
-2. Consider using Kubernetes secrets for sensitive values
-3. Restrict access to your server using appropriate network policies
-
-## Installation
-
-### Simple Install with Custom Password and Server Name
-
-```bash
-helm upgrade --install my-valheim-server \
- --set server.password="YourStrongPassword" \
- --set server.name="Your Awesome Valheim Server" \
- k8s-charts/valheim-server
-```
-
-### Custom Configuration File
-Create a YAML file with your custom values:
-
-```yaml
-server:
- name: "My Custom Valheim Server"
- password: "SuperSecretPassword"
- world: "MyWorld"
- public: 1
-
-persistence:
- saves:
- size: 5Gi
- backups:
- size: 20Gi
-
-automation:
- autoBackup: 1 # disabled by default
- autoBackupSchedule: "*/30 * * * *"
-
-resources:
- requests:
- memory: 4Gi
- cpu: 2000m
- limits:
- memory: 12Gi
- cpu: 4000m
-```
-
-Then install the chart:
-
-```bash
-helm install my-valheim-server -f my-values.yaml k8s-charts/valheim-server
-```
-
-## Updating
-
-```bash
-helm upgrade my-valheim-server k8s-charts/valheim-server
-```
-
-## Uninstallation
-
-```bash
-helm uninstall my-valheim-server
-```
-
-Note: This will not delete the Persistent Volume Claims. To delete them:
-
-```bash
-kubectl delete pvc -l app.kubernetes.io/instance=my-valheim-server
-```
-
-## Values
-
-| Key | Type | Default | Description |
-|-----|------|---------|-------------|
-| affinity | object | `{}` | Affinity for pod assignment |
-| automation.autoBackup | int | `0` | Enable automatic backups (1=enabled, 0=disabled) |
-| automation.autoBackupDaysToLive | int | `7` | Number of days to keep backups |
-| automation.autoBackupOnShutdown | int | `0` | Create backup on server shutdown (1=enabled, 0=disabled) |
-| automation.autoBackupOnUpdate | int | `1` | Create backup before updates (1=enabled, 0=disabled) |
-| automation.autoBackupRemoveOld | int | `1` | Remove old backups automatically (1=enabled, 0=disabled) |
-| automation.autoBackupSchedule | string | `"*/15 * * * *"` | Cron schedule for automatic backups |
-| automation.autoUpdate | int | `1` | Enable automatic updates (1=enabled, 0=disabled) |
-| automation.autoUpdateSchedule | string | `"0 1 * * *"` | Cron schedule for automatic updates |
-| automation.updateOnStartup | int | `0` | Update server when container starts (1=enabled, 0=disabled) |
-| extraEnv | list | `[]` | Additional environment variables for the Valheim server |
-| fullnameOverride | string | `""` | Provide a full name override for resources |
-| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy |
-| image.repository | string | `"mbround18/valheim"` | Docker repository to use |
-| image.tag | string | `""` | Docker tag to use - use "latest" for most current version |
-| initContainers | object | `{"args":[],"command":[],"enabled":false,"image":"busybox:latest"}` | Init container configuration for server preparation |
-| initContainers.args | list | `[]` | Init container arguments |
-| initContainers.command | list | `[]` | Init container command |
-| initContainers.enabled | bool | `false` | Enable init container |
-| initContainers.image | string | `"busybox:latest"` | Init container image |
-| livenessProbe.enabled | bool | `false` | Enable liveness probe |
-| livenessProbe.failureThreshold | int | 6 (allows up to 2 minutes for recovery) | Failure threshold |
-| livenessProbe.initialDelaySeconds | int | `60` | Initial delay seconds |
-| livenessProbe.periodSeconds | int | `20` | Period seconds |
-| livenessProbe.timeoutSeconds | int | `5` | Timeout seconds |
-| modding.bepInEx | int | `0` | Enable BepInEx for mods (1=enabled, 0=disabled) |
-| modding.modPath | string | `"/home/steam/valheim/BepInEx"` | Path to mounted mod directory |
-| modding.useConfigurationManager | bool | `false` | Enable mounting a ConfigurationManager config |
-| nameOverride | string | `""` | Provide a name override for resources |
-| nodeSelector | object | `{}` | Node selector for pod assignment |
-| notifications.includePublicIp | int | `0` | Include the server's public IP in notifications (1=enabled, 0=disabled) |
-| notifications.webhookUrl | string | `""` | Discord webhook URL for server notifications |
-| persistence.backups.accessMode | string | `"ReadWriteOnce"` | Access mode for the PVC |
-| persistence.backups.existingClaim | string | `""` | Existing claim to use (leave empty to create a new one) |
-| persistence.backups.size | string | `"10Gi"` | Size of PVC for backups |
-| persistence.enabled | bool | `true` | Enable persistent storage for server data |
-| persistence.saves.accessMode | string | `"ReadWriteOnce"` | Access mode for the PVC |
-| persistence.saves.existingClaim | string | `""` | Existing claim to use (leave empty to create a new one) |
-| persistence.saves.size | string | `"1Gi"` | Size of PVC for game saves |
-| persistence.server.accessMode | string | `"ReadWriteOnce"` | Access mode for the PVC |
-| persistence.server.existingClaim | string | `""` | Existing claim to use (leave empty to create a new one) |
-| persistence.server.size | string | `"4Gi"` | Size of PVC for server files |
-| persistence.storageClass | string | use default storage class | Storage class to use (use null for default or "" for no storage class) |
-| podSecurityContext.fsGroup | int | `1000` | File system group ID for volume mounts |
-| readinessProbe.enabled | bool | `true` | Enable readiness probe |
-| readinessProbe.failureThreshold | int | 20 (allows up to 5 minutes for readiness) | Failure threshold |
-| readinessProbe.initialDelaySeconds | int | `60` | Initial delay seconds |
-| readinessProbe.periodSeconds | int | `15` | Period seconds |
-| readinessProbe.timeoutSeconds | int | `5` | Timeout seconds |
-| replicaCount | int | `1` | Number of replicas to deploy (should typically stay at 1) |
-| resources | object | `{}` | Resource requests and limits |
-| securityContext.runAsGroup | int | `1000` | Group ID to run the container processes |
-| securityContext.runAsNonRoot | bool | `true` | Force the container to run as a non-root user |
-| securityContext.runAsUser | int | `111` | User ID to run the container processes. Should default to the steam user ID. |
-| server.name | string | `"Valheim Server with Helm"` | Server name as displayed in-game |
-| server.password | string | you MUST change this value | Server access password (minimum 5 characters) |
-| server.port | int | `2456` | UDP port for game server (will use PORT, PORT+1, and PORT+2) |
-| server.public | int | `0` | Set to 1 to make server visible publicly, 0 for private |
-| server.timezone | string | `"UTC"` | Timezone for the server |
-| server.world | string | `"Dedicated"` | World name used for save files |
-| service.annotations | object | `{}` | Annotations for the service |
-| service.loadBalancerIP | string | `""` | Set specific load balancer IP (depends on cloud provider support) |
-| service.loadBalancerSourceRanges | list | `[]` | External source IP ranges allowed to access the server |
-| service.type | string | `"LoadBalancer"` | Service type |
-| startupProbe.enabled | bool | `true` | Enable startup probe |
-| startupProbe.failureThreshold | int | 30 (allows up to 5 minutes for initial startup) | Failure threshold |
-| startupProbe.initialDelaySeconds | int | `30` | Initial delay seconds |
-| startupProbe.periodSeconds | int | `10` | Period seconds |
-| startupProbe.timeoutSeconds | int | `5` | Timeout seconds |
-| tolerations | list | `[]` | Tolerations for pod assignment |
-
-----------------------------------------------
-Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2)
diff --git a/k8s/charts/valheim-server/README.md.gotmpl b/k8s/charts/valheim-server/README.md.gotmpl
deleted file mode 100644
index 7199c29..0000000
--- a/k8s/charts/valheim-server/README.md.gotmpl
+++ /dev/null
@@ -1,115 +0,0 @@
-{{ template "chart.header" . }}
-{{ template "chart.deprecationWarning" . }}
-
-{{ template "chart.badgesSection" . }}
-
-{{ template "chart.description" . }}
-
-{{ template "chart.homepageLine" . }}
-
-{{ template "chart.maintainersSection" . }}
-
-{{ template "chart.sourcesSection" . }}
-
-## Overview
-
-This Helm chart deploys a Valheim dedicated server based on the [mbround18/valheim-docker](https://github.com/mbround18/valheim-docker) project.
-
-## Features
-
-- Configurable server settings
-- Automatic updates and backups
-- Discord webhook notifications
-- Persistent storage for game saves, server files, and backups
-- Resource management for Kubernetes
-
-## Prerequisites
-
-- Kubernetes 1.29+
-- Helm 3.16.0+
-- PV provisioner support in the underlying infrastructure (for persistent storage)
-- LoadBalancer support or an Ingress controller
-
-## TL;DR
-
-```bash
-helm repo add k8s-charts https://kriegalex.github.io/k8s-charts/
-helm install my-valheim-server k8s-charts/valheim-server
-```
-
-## Important Security Notice
-The default values for this chart include a placeholder password. For production use:
-
-1. Always specify a secure password
-2. Consider using Kubernetes secrets for sensitive values
-3. Restrict access to your server using appropriate network policies
-
-## Installation
-
-### Simple Install with Custom Password and Server Name
-
-```bash
-helm upgrade --install my-valheim-server \
- --set server.password="YourStrongPassword" \
- --set server.name="Your Awesome Valheim Server" \
- k8s-charts/valheim-server
-```
-
-### Custom Configuration File
-Create a YAML file with your custom values:
-
-```yaml
-server:
- name: "My Custom Valheim Server"
- password: "SuperSecretPassword"
- world: "MyWorld"
- public: 1
-
-persistence:
- saves:
- size: 5Gi
- backups:
- size: 20Gi
-
-automation:
- autoBackup: 1 # disabled by default
- autoBackupSchedule: "*/30 * * * *"
-
-resources:
- requests:
- memory: 4Gi
- cpu: 2000m
- limits:
- memory: 12Gi
- cpu: 4000m
-```
-
-Then install the chart:
-
-```bash
-helm install my-valheim-server -f my-values.yaml k8s-charts/valheim-server
-```
-
-## Updating
-
-```bash
-helm upgrade my-valheim-server k8s-charts/valheim-server
-```
-
-## Uninstallation
-
-```bash
-helm uninstall my-valheim-server
-```
-
-Note: This will not delete the Persistent Volume Claims. To delete them:
-
-```bash
-kubectl delete pvc -l app.kubernetes.io/instance=my-valheim-server
-```
-
-{{ template "chart.requirementsSection" . }}
-
-{{ template "chart.valuesSection" . }}
-
-{{ template "helm-docs.versionFooter" . }}
diff --git a/k8s/charts/valheim-server/templates/NOTES.txt b/k8s/charts/valheim-server/templates/NOTES.txt
deleted file mode 100644
index 95ed7db..0000000
--- a/k8s/charts/valheim-server/templates/NOTES.txt
+++ /dev/null
@@ -1,40 +0,0 @@
-Thank you for installing the Valheim Dedicated Server Helm chart!
-
-Your server should be starting up now with the following settings:
-
-Server Name: {{ .Values.server.name }}
-World: {{ .Values.server.world }}
-Game Port: {{ .Values.server.port }} (UDP)
-
-{{- if eq .Values.service.type "LoadBalancer" }}
-To connect to your server:
-
-1. Get the external IP address:
- kubectl get svc {{ include "valheim-server.fullname" . }} --namespace {{ .Release.Namespace }}
-
-2. In Valheim, select "Join Game" and add the server manually using:
- :{{ .Values.server.port }}
-
-3. Enter your server password when prompted.
-{{- else if eq .Values.service.type "NodePort" }}
-To connect to your server:
-
-1. Get the NodePort assigned to your service:
- kubectl get svc {{ include "valheim-server.fullname" . }} --namespace {{ .Release.Namespace }}
-
-2. In Valheim, select "Join Game" and add the server manually using:
- :
-
-3. Enter your server password when prompted.
-{{- else }}
-Note: You've deployed with service type "{{ .Values.service.type }}" which may not be accessible from outside the cluster.
-You might need to set up port forwarding or ingress to access your server.
-{{- end }}
-
-IMPORTANT SECURITY NOTES:
-- Make sure your server password is at least 5 characters long
-- Properly secure access to your Kubernetes cluster
-- Consider changing the default port if your server is public
-
-For more information and troubleshooting, please visit:
-{{ .Chart.Home }}
diff --git a/k8s/charts/valheim-server/templates/_helpers.tpl b/k8s/charts/valheim-server/templates/_helpers.tpl
deleted file mode 100644
index 50664a8..0000000
--- a/k8s/charts/valheim-server/templates/_helpers.tpl
+++ /dev/null
@@ -1,51 +0,0 @@
-{{/*
-Expand the name of the chart.
-*/}}
-{{- define "valheim-server.name" -}}
-{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
-{{- end }}
-
-{{/*
-Create a default fully qualified app name.
-We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
-If release name contains chart name it will be used as a full name.
-*/}}
-{{- define "valheim-server.fullname" -}}
-{{- if .Values.fullnameOverride }}
-{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
-{{- else }}
-{{- $name := default .Chart.Name .Values.nameOverride }}
-{{- if contains $name .Release.Name }}
-{{- .Release.Name | trunc 63 | trimSuffix "-" }}
-{{- else }}
-{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
-{{- end }}
-{{- end }}
-{{- end }}
-
-{{/*
-Create chart name and version as used by the chart label.
-*/}}
-{{- define "valheim-server.chart" -}}
-{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
-{{- end }}
-
-{{/*
-Common labels
-*/}}
-{{- define "valheim-server.labels" -}}
-helm.sh/chart: {{ include "valheim-server.chart" . }}
-{{ include "valheim-server.selectorLabels" . }}
-{{- if .Chart.AppVersion }}
-app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
-{{- end }}
-app.kubernetes.io/managed-by: {{ .Release.Service }}
-{{- end }}
-
-{{/*
-Selector labels
-*/}}
-{{- define "valheim-server.selectorLabels" -}}
-app.kubernetes.io/name: {{ include "valheim-server.name" . }}
-app.kubernetes.io/instance: {{ .Release.Name }}
-{{- end }}
diff --git a/k8s/charts/valheim-server/templates/deployment.yaml b/k8s/charts/valheim-server/templates/deployment.yaml
deleted file mode 100644
index 70a527e..0000000
--- a/k8s/charts/valheim-server/templates/deployment.yaml
+++ /dev/null
@@ -1,208 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: {{ include "valheim-server.fullname" . }}
- labels:
- {{- include "valheim-server.labels" . | nindent 4 }}
-spec:
- replicas: {{ .Values.replicaCount }}
- selector:
- matchLabels:
- {{- include "valheim-server.selectorLabels" . | nindent 6 }}
- strategy:
- type: Recreate
- template:
- metadata:
- labels:
- {{- include "valheim-server.selectorLabels" . | nindent 8 }}
- spec:
- securityContext:
- {{- toYaml .Values.podSecurityContext | nindent 8 }}
- {{- if .Values.initContainers.enabled }}
- initContainers:
- - name: init-valheim
- image: {{ .Values.initContainers.image }}
- {{- if .Values.initContainers.command }}
- command: {{ toYaml .Values.initContainers.command | nindent 12 }}
- {{- end }}
- {{- if .Values.initContainers.args }}
- args: {{ toYaml .Values.initContainers.args | nindent 12 }}
- {{- end }}
- volumeMounts:
- - name: saves
- mountPath: /home/steam/.config/unity3d/IronGate/Valheim
- - name: server
- mountPath: /home/steam/valheim
- - name: backups
- mountPath: /home/steam/backups
- {{- end }}
- containers:
- - name: {{ .Chart.Name }}
- securityContext:
- {{- toYaml .Values.securityContext | nindent 12 }}
- image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
- imagePullPolicy: {{ .Values.image.pullPolicy }}
- env:
- - name: PORT
- value: "{{ .Values.server.port }}"
- - name: NAME
- value: "{{ .Values.server.name }}"
- - name: WORLD
- value: "{{ .Values.server.world }}"
- - name: PASSWORD
- valueFrom:
- secretKeyRef:
- name: {{ .Values.secret.name }}
- key: {{ .Values.secret.key }}
- - name: TZ
- value: "{{ .Values.server.timezone }}"
- - name: PUID
- value: "{{ .Values.securityContext.runAsUser | default "111" }}"
- - name: PGID
- value: "{{ .Values.securityContext.runAsGroup | default "1000" }}"
- - name: PUBLIC
- value: "{{ .Values.server.public }}"
- - name: AUTO_UPDATE
- value: "{{ .Values.automation.autoUpdate }}"
- - name: AUTO_UPDATE_SCHEDULE
- value: "{{ .Values.automation.autoUpdateSchedule }}"
- - name: UPDATE_ON_STARTUP
- value: "{{ .Values.automation.updateOnStartup }}"
- - name: AUTO_BACKUP
- value: "{{ .Values.automation.autoBackup }}"
- - name: AUTO_BACKUP_SCHEDULE
- value: "{{ .Values.automation.autoBackupSchedule }}"
- - name: AUTO_BACKUP_REMOVE_OLD
- value: "{{ .Values.automation.autoBackupRemoveOld }}"
- - name: AUTO_BACKUP_DAYS_TO_LIVE
- value: "{{ .Values.automation.autoBackupDaysToLive }}"
- - name: AUTO_BACKUP_ON_UPDATE
- value: "{{ .Values.automation.autoBackupOnUpdate }}"
- - name: AUTO_BACKUP_ON_SHUTDOWN
- value: "{{ .Values.automation.autoBackupOnShutdown }}"
- {{- if .Values.notifications.webhookUrl }}
- - name: WEBHOOK_URL
- value: "{{ .Values.notifications.webhookUrl }}"
- - name: WEBHOOK_INCLUDE_PUBLIC_IP
- value: "{{ .Values.notifications.includePublicIp }}"
- {{- end }}
- {{- if eq (.Values.modding.bepInEx | toString) "1" }}
- - name: BEPINEX
- value: "1"
- {{- end }}
- {{- with .Values.extraEnv }}
- {{- toYaml . | nindent 12 }}
- {{- end }}
- ports:
- - name: game
- containerPort: {{ .Values.server.port }}
- protocol: UDP
- - name: game-1
- containerPort: {{ add .Values.server.port 1 }}
- protocol: UDP
- - name: game-2
- containerPort: {{ add .Values.server.port 2 }}
- protocol: UDP
- lifecycle:
- preStop:
- exec:
- command: [ "/bin/sh", "-c", "kill -SIGINT 1 && sleep 5" ]
- volumeMounts:
- - name: saves
- mountPath: /home/steam/.config/unity3d/IronGate/Valheim
- - name: server
- mountPath: /home/steam/valheim
- - name: backups
- mountPath: /home/steam/backups
- {{- if eq (.Values.modding.bepInEx | toString) "1" }}
- - name: mods
- mountPath: {{ .Values.modding.modPath }}
- {{- end }}
- resources:
- {{- toYaml .Values.resources | nindent 12 }}
- # Startup probe - wait for server to initialize
- {{- if .Values.startupProbe.enabled }}
- startupProbe:
- exec:
- command:
- - pgrep
- - -f
- - valheim_server
- initialDelaySeconds: {{ .Values.startupProbe.initialDelaySeconds }}
- periodSeconds: {{ .Values.startupProbe.periodSeconds }}
- timeoutSeconds: {{ .Values.startupProbe.timeoutSeconds }}
- failureThreshold: {{ .Values.startupProbe.failureThreshold }}
- {{- end }}
- # Readiness probe - verify is server is ready
- {{- if .Values.readinessProbe.enabled }}
- readinessProbe:
- exec:
- command:
- - pgrep
- - -f
- - valheim_server
- initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
- periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
- timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
- failureThreshold: {{ .Values.readinessProbe.failureThreshold }}
- {{- end }}
- # Liveness probe - check if server is running
- {{- if .Values.livenessProbe.enabled }}
- livenessProbe:
- exec:
- command:
- - pgrep
- - -f
- - valheim_server
- initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
- periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
- timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
- failureThreshold: {{ .Values.livenessProbe.failureThreshold }}
- {{- end }}
- volumes:
- - name: saves
- {{- if and .Values.persistence.enabled .Values.persistence.saves.existingClaim }}
- persistentVolumeClaim:
- claimName: {{ .Values.persistence.saves.existingClaim }}
- {{- else if .Values.persistence.enabled }}
- persistentVolumeClaim:
- claimName: {{ include "valheim-server.fullname" . }}-saves
- {{- else }}
- emptyDir: { }
- {{- end }}
- - name: server
- {{- if and .Values.persistence.enabled .Values.persistence.server.existingClaim }}
- persistentVolumeClaim:
- claimName: {{ .Values.persistence.server.existingClaim }}
- {{- else if .Values.persistence.enabled }}
- persistentVolumeClaim:
- claimName: {{ include "valheim-server.fullname" . }}-server
- {{- else }}
- emptyDir: { }
- {{- end }}
- - name: backups
- {{- if and .Values.persistence.enabled .Values.persistence.backups.existingClaim }}
- persistentVolumeClaim:
- claimName: {{ .Values.persistence.backups.existingClaim }}
- {{- else if .Values.persistence.enabled }}
- persistentVolumeClaim:
- claimName: {{ include "valheim-server.fullname" . }}-backups
- {{- else }}
- emptyDir: { }
- {{- end }}
- {{- if eq (.Values.modding.bepInEx | toString) "1" }}
- - name: mods
- emptyDir: { }
- {{- end }}
- {{- with .Values.nodeSelector }}
- nodeSelector:
- {{- toYaml . | nindent 8 }}
- {{- end }}
- {{- with .Values.affinity }}
- affinity:
- {{- toYaml . | nindent 8 }}
- {{- end }}
- {{- with .Values.tolerations }}
- tolerations:
- {{- toYaml . | nindent 8 }}
- {{- end }}
diff --git a/k8s/charts/valheim-server/templates/pvc.yaml b/k8s/charts/valheim-server/templates/pvc.yaml
deleted file mode 100644
index 57b1ced..0000000
--- a/k8s/charts/valheim-server/templates/pvc.yaml
+++ /dev/null
@@ -1,67 +0,0 @@
-{{- if and .Values.persistence.enabled (not .Values.persistence.saves.existingClaim) }}
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: {{ include "valheim-server.fullname" . }}-saves
- labels:
- {{- include "valheim-server.labels" . | nindent 4 }}
-spec:
- accessModes:
- - {{ .Values.persistence.saves.accessMode }}
- {{- if .Values.persistence.storageClass }}
- {{- if (eq "-" .Values.persistence.storageClass) }}
- storageClassName: ""
- {{- else }}
- storageClassName: "{{ .Values.persistence.storageClass }}"
- {{- end }}
- {{- end }}
- resources:
- requests:
- storage: {{ .Values.persistence.saves.size }}
-{{- end }}
-
-{{- if and .Values.persistence.enabled (not .Values.persistence.server.existingClaim) }}
----
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: {{ include "valheim-server.fullname" . }}-server
- labels:
- {{- include "valheim-server.labels" . | nindent 4 }}
-spec:
- accessModes:
- - {{ .Values.persistence.server.accessMode }}
- {{- if .Values.persistence.storageClass }}
- {{- if (eq "-" .Values.persistence.storageClass) }}
- storageClassName: ""
- {{- else }}
- storageClassName: "{{ .Values.persistence.storageClass }}"
- {{- end }}
- {{- end }}
- resources:
- requests:
- storage: {{ .Values.persistence.server.size }}
-{{- end }}
-
-{{- if and .Values.persistence.enabled (not .Values.persistence.backups.existingClaim) }}
----
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: {{ include "valheim-server.fullname" . }}-backups
- labels:
- {{- include "valheim-server.labels" . | nindent 4 }}
-spec:
- accessModes:
- - {{ .Values.persistence.backups.accessMode }}
- {{- if .Values.persistence.storageClass }}
- {{- if (eq "-" .Values.persistence.storageClass) }}
- storageClassName: ""
- {{- else }}
- storageClassName: "{{ .Values.persistence.storageClass }}"
- {{- end }}
- {{- end }}
- resources:
- requests:
- storage: {{ .Values.persistence.backups.size }}
-{{- end }}
diff --git a/k8s/charts/valheim-server/templates/service.yaml b/k8s/charts/valheim-server/templates/service.yaml
deleted file mode 100644
index 628c582..0000000
--- a/k8s/charts/valheim-server/templates/service.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: {{ include "valheim-server.fullname" . }}
- labels:
- {{- include "valheim-server.labels" . | nindent 4 }}
- {{- with .Values.service.annotations }}
- annotations:
- {{- toYaml . | nindent 4 }}
- {{- end }}
-spec:
- type: {{ .Values.service.type }}
- {{- if and (eq .Values.service.type "LoadBalancer") .Values.service.loadBalancerIP }}
- loadBalancerIP: {{ .Values.service.loadBalancerIP }}
- {{- end }}
- {{- if and (eq .Values.service.type "LoadBalancer") .Values.service.loadBalancerSourceRanges }}
- loadBalancerSourceRanges:
- {{- toYaml .Values.service.loadBalancerSourceRanges | nindent 4 }}
- {{- end }}
- ports:
- - port: {{ .Values.server.port }}
- targetPort: game
- protocol: UDP
- name: game
- - port: {{ add .Values.server.port 1 }}
- targetPort: game-1
- protocol: UDP
- name: game-1
- - port: {{ add .Values.server.port 2 }}
- targetPort: game-2
- protocol: UDP
- name: game-2
- selector:
- {{- include "valheim-server.selectorLabels" . | nindent 4 }}
diff --git a/k8s/charts/valheim-server/values.yaml b/k8s/charts/valheim-server/values.yaml
deleted file mode 100644
index 744d84c..0000000
--- a/k8s/charts/valheim-server/values.yaml
+++ /dev/null
@@ -1,227 +0,0 @@
-# Specify image settings for the Valheim server container
-image:
- # -- Docker repository to use
- repository: mbround18/valheim
- # -- Docker tag to use - use "latest" for most current version
- tag: "3.6"
- # -- Image pull policy
- pullPolicy: Always
-
-# -- Number of replicas to deploy (should typically stay at 1)
-replicaCount: 1
-
-# -- Provide a name override for resources
-nameOverride: ""
-
-# -- Provide a full name override for resources
-fullnameOverride: ""
-
-# Server configuration settings
-server:
- # -- UDP port for game server (will use PORT, PORT+1, and PORT+2)
- port: 2456
- # -- Server name as displayed in-game
- name: "Valheim Server with Helm"
- # -- World name used for save files
- world: "Dedicated"
- # -- Server access password (minimum 5 characters)
- # @default -- you MUST change this value
- password: "ChangeMe123!"
- # -- Set to 1 to make server visible publicly, 0 for private
- public: 0
- # -- Timezone for the server
- timezone: "UTC"
-
-secret:
- name: ""
- key: "server-password"
-
-# Automation configuration for the server
-automation:
- # -- Enable automatic updates (1=enabled, 0=disabled)
- autoUpdate: 1
- # -- Cron schedule for automatic updates
- autoUpdateSchedule: "0 1 * * *"
- # -- Update server when container starts (1=enabled, 0=disabled)
- updateOnStartup: 0
- # -- Enable automatic backups (1=enabled, 0=disabled)
- autoBackup: 0
- # -- Cron schedule for automatic backups
- autoBackupSchedule: "*/15 * * * *"
- # -- Remove old backups automatically (1=enabled, 0=disabled)
- autoBackupRemoveOld: 1
- # -- Number of days to keep backups
- autoBackupDaysToLive: 7
- # -- Create backup before updates (1=enabled, 0=disabled)
- autoBackupOnUpdate: 1
- # -- Create backup on server shutdown (1=enabled, 0=disabled)
- autoBackupOnShutdown: 0
-
-# Notification settings for server events
-notifications:
- # -- Discord webhook URL for server notifications
- webhookUrl: ""
- # -- Include the server's public IP in notifications (1=enabled, 0=disabled)
- includePublicIp: 0
-
-# Kubernetes service configuration
-service:
- # -- Service type
- type: LoadBalancer
- # -- Set specific load balancer IP (depends on cloud provider support)
- loadBalancerIP: ""
- # -- Annotations for the service
- annotations: { }
- # -- External source IP ranges allowed to access the server
- loadBalancerSourceRanges: [ ]
-
-# Storage configuration for server data
-persistence:
- # -- Enable persistent storage for server data
- enabled: true
- # -- Storage class to use (use null for default or "" for no storage class)
- # @default -- use default storage class
- storageClass: null
-
- # Data volume configuration for game saves
- saves:
- # -- Size of PVC for game saves
- size: 1Gi
- # -- Access mode for the PVC
- accessMode: ReadWriteOnce
- # -- Existing claim to use (leave empty to create a new one)
- existingClaim: ""
-
- # Data volume configuration for server files
- server:
- # -- Size of PVC for server files
- size: 4Gi
- # -- Access mode for the PVC
- accessMode: ReadWriteOnce
- # -- Existing claim to use (leave empty to create a new one)
- existingClaim: ""
-
- # Data volume configuration for backups. Requires "autoBackup: 1".
- backups:
- # -- Size of PVC for backups
- size: 10Gi
- # -- Access mode for the PVC
- accessMode: ReadWriteOnce
- # -- Existing claim to use (leave empty to create a new one)
- existingClaim: ""
-
-# -- Resource requests and limits
-resources: { }
- # We usually recommend not to specify default resources and to leave this as a conscious
- # choice for the user. This also increases chances charts run on environments with little
- # resources, such as Minikube.
- # requests:
- # # -- Memory request for the server
- # memory: 2Gi
- # # -- CPU request for the server
- # cpu: 1000m
- # # -- Resource limits
- # limits:
- # # -- Memory limit for the server
-# memory: 4Gi
-# # -- CPU limit for the server
-# cpu: 2000m
-
-# -- Node selector for pod assignment
-nodeSelector: { }
-
-# -- Tolerations for pod assignment
-tolerations: [ ]
-
-# -- Affinity for pod assignment
-affinity: { }
-
-# -- Additional environment variables for the Valheim server
-extraEnv: [ ]
-# - name: EXAMPLE_VAR
-# value: "example value"
-
-# -- Init container configuration for server preparation
-initContainers:
- # -- Enable init container
- enabled: false
- # -- Init container image
- image: busybox:latest
- # -- Init container command
- command: [ ]
- # -- Init container arguments
- args: [ ]
-
-# Modding configuration
-modding:
- # -- Enable BepInEx for mods (1=enabled, 0=disabled)
- bepInEx: 0
- # -- Path to mounted mod directory
- modPath: "/home/steam/valheim/BepInEx"
- # -- Enable mounting a ConfigurationManager config
- useConfigurationManager: false
-
-# Pod security context settings
-# @descriptionStart
-# Security context settings applied at the pod level.
-# The fsGroup setting ensures that mounted volumes have the proper permissions for the Valheim user.
-# @descriptionEnd
-podSecurityContext:
- # -- File system group ID for volume mounts
- fsGroup: 1000
-
-# Container security context settings
-# @descriptionStart
-# Security context settings applied at the container level.
-# These settings ensure the container runs as a non-root user for better security.
-# The user/group IDs must match those used in the container image.
-# @descriptionEnd
-securityContext:
- # -- User ID to run the container processes. Should default to the steam user ID.
- runAsUser: 111
- # -- Group ID to run the container processes
- runAsGroup: 1000
- # -- Force the container to run as a non-root user
- runAsNonRoot: true
-
-# Kubernetes startup probe configuration
-startupProbe:
- # -- Enable startup probe
- enabled: true
- # -- Initial delay seconds
- initialDelaySeconds: 30
- # -- Period seconds
- periodSeconds: 10
- # -- Timeout seconds
- timeoutSeconds: 5
- # -- Failure threshold
- # @default -- 30 (allows up to 5 minutes for initial startup)
- failureThreshold: 30
-
-# Kubernetes readiness probe configuration
-readinessProbe:
- # -- Enable readiness probe
- enabled: true
- # -- Initial delay seconds
- initialDelaySeconds: 60
- # -- Period seconds
- periodSeconds: 15
- # -- Timeout seconds
- timeoutSeconds: 5
- # -- Failure threshold
- # @default -- 20 (allows up to 5 minutes for readiness)
- failureThreshold: 20
-
-# Kubernetes liveness probe configuration
-livenessProbe:
- # -- Enable liveness probe
- enabled: false
- # -- Initial delay seconds
- initialDelaySeconds: 60
- # -- Period seconds
- periodSeconds: 20
- # -- Timeout seconds
- timeoutSeconds: 5
- # -- Failure threshold
- # @default -- 6 (allows up to 2 minutes for recovery)
- failureThreshold: 6