TS-6 Helm Chart

Just a little Helm chart for the new TS6 Server

View the Project on GitHub Sidler1/ts6-server-chart

TeamSpeak 6 Server Helm Chart

Version License Artifact Hub

A Kubernetes Helm chart for deploying TeamSpeak 6 Server with optional MariaDB persistence, ingress support, autoscaling, and network policies.

Introduction

This Helm chart deploys a stateful TeamSpeak 6 Server instance on Kubernetes. It includes:

Designed for production-like setups, with configurable persistence via PVC.

Features

Prerequisites

Installation

Add the repo (if hosted) and install:

# Add repository (replace with actual repo URL if published)
helm repo add sidler1 https://sidler1.github.io/teamspeak-helm-chart
helm repo update

# Install the chart
helm install my-teamspeak . -n teamspeak --create-namespace -f values.yaml

# Or with custom values
helm install my-teamspeak . -n teamspeak --create-namespace --set mariadb.enabled=true,mariadb.auth.rootPassword=securepass

Verify deployment:

kubectl get sts -n teamspeak
kubectl get svc -n teamspeak
kubectl get pvc -n teamspeak  # If persistence enabled

Post-install notes will display automatically (or view with helm get notes my-teamspeak -n teamspeak).

Configuration

Key values in values.yaml:

Parameter Description Default
replicaCount Number of replicas 1
image.repository TeamSpeak image repo teamspeaksystems/teamspeak6-server
image.tag Image tag (falls back to appVersion) ""
service.type Service type (ClusterIP/NodePort/LoadBalancer) LoadBalancer
voice.port Voice UDP port 9987
filetransfer.port File transfer TCP port 30033
webquery.port Query HTTP port 10080
persistence.enabled Enable PVC for data true
persistence.size PVC size 8Gi
mariadb.enabled Enable MariaDB backend false
mariadb.auth.database MariaDB DB name teamspeak
mariadb.auth.username MariaDB user ts
mariadb.auth.password MariaDB password (set securely!) tspass
autoscaling.enabled Enable HPA false
networkPolicy.enabled Enable NetworkPolicies false
ingress.enabled Enable Ingress for query false
licenseAccepted Accept EULA in config true
customer Custom label "sidler1"

For full config, see values.yaml.

Override via --set or custom YAML:

# Custom values example
mariadb:
  enabled: true
  auth:
    rootPassword: "supersecret"
    password: "supersecret"
persistence:
  size: 10Gi

Upgrade:

helm upgrade my-teamspeak . -n teamspeak -f custom-values.yaml

Usage

Accessing the Server

Database

Uninstall

helm uninstall my-teamspeak -n teamspeak
kubectl delete namespace teamspeak  # If created via chart

Warning: This deletes PVCs and data unless --keep-history is used.

Contributing

  1. Fork the repo.
  2. Create a feature branch (git checkout -b feature/AmazingFeature).
  3. Commit changes (git commit -m 'Add some AmazingFeature').
  4. Push (git push origin feature/AmazingFeature).
  5. Open a Pull Request.

Lint and test:

helm lint .
helm template . --debug

License

Apache 2.0 - see LICENSE.

Credits

For issues or support: @Sidler12 on X or Mail.