From a5a0087f42b98900d65f472f30cf578bbc8b028d Mon Sep 17 00:00:00 2001 From: jklein Date: Sun, 22 Feb 2026 13:10:06 +0100 Subject: [PATCH] feat(teamspeak-server): added initial chart --- teamspeak-server/.helmignore | 23 ++++++++ teamspeak-server/Chart.yaml | 8 +++ .../templates/teamspeak-server.service.yaml | 19 ++++++ .../templates/teamspeak-server.sfs.yaml | 59 +++++++++++++++++++ teamspeak-server/templates/teamspeak.pvc.yaml | 12 ++++ teamspeak-server/values.yaml | 3 + 6 files changed, 124 insertions(+) create mode 100644 teamspeak-server/.helmignore create mode 100644 teamspeak-server/Chart.yaml create mode 100644 teamspeak-server/templates/teamspeak-server.service.yaml create mode 100644 teamspeak-server/templates/teamspeak-server.sfs.yaml create mode 100644 teamspeak-server/templates/teamspeak.pvc.yaml create mode 100644 teamspeak-server/values.yaml diff --git a/teamspeak-server/.helmignore b/teamspeak-server/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/teamspeak-server/.helmignore @@ -0,0 +1,23 @@ +# 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/teamspeak-server/Chart.yaml b/teamspeak-server/Chart.yaml new file mode 100644 index 0000000..32f09e1 --- /dev/null +++ b/teamspeak-server/Chart.yaml @@ -0,0 +1,8 @@ +apiVersion: v2 +name: teamspeak-server +description: A Helm chart for deploying a teamspeak-server on Kubernetes + +type: application + +version: 1.2.0-release-v6-0-0-beta8 +appVersion: "v6.0.0-beta8" diff --git a/teamspeak-server/templates/teamspeak-server.service.yaml b/teamspeak-server/templates/teamspeak-server.service.yaml new file mode 100644 index 0000000..b3298a2 --- /dev/null +++ b/teamspeak-server/templates/teamspeak-server.service.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ .Release.Name }}-service +spec: + selector: + app: {{ .Release.Name }}-server-sfs + ports: + - port: 30987 + name: voice-port + targetPort: voice-port + protocol: UDP + nodePort: 30987 + - port: 30033 + name: file-transfer + targetPort: file-transfer + protocol: TCP + nodePort: 30033 + type: NodePort diff --git a/teamspeak-server/templates/teamspeak-server.sfs.yaml b/teamspeak-server/templates/teamspeak-server.sfs.yaml new file mode 100644 index 0000000..fd64f9e --- /dev/null +++ b/teamspeak-server/templates/teamspeak-server.sfs.yaml @@ -0,0 +1,59 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: {{ .Release.Name }}-server-sfs + labels: + app: {{ .Release.Name }} +spec: + replicas: 1 + selector: + matchLabels: + app: {{ .Release.Name }}-server-sfs + template: + metadata: + name: {{ .Release.Name }}-server-sfs + labels: + app: {{ .Release.Name }}-server-sfs + spec: + automountServiceAccountToken: false + containers: + - name: {{ .Release.Name }}-ts-server-container + image: "teamspeaksystems/teamspeak6-server:{{ .Chart.AppVersion }}" + imagePullPolicy: IfNotPresent + ports: + - name: voice-port + containerPort: 30987 + protocol: UDP + - name: file-transfer + containerPort: 30033 + protocol: TCP + - name: web-query + containerPort: 10080 + protocol: TCP + env: + - name: TSSERVER_LICENSE_ACCEPTED + value: "accept" + - name: TSSERVER_DEFAULT_PORT + value: "30987" + resources: + requests: + cpu: "0.2" + memory: "100Mi" + ephemeral-storage: "100Mi" + limits: + cpu: "0.5" + memory: "200Mi" + ephemeral-storage: "200Mi" + volumeMounts: + - name: "teamspeak-volume" + mountPath: /var/tsserver/ + restartPolicy: Always + securityContext: + fsGroup: 9987 + volumes: + - name: "teamspeak-volume" + persistentVolumeClaim: + claimName: {{ .Release.Name }}-teamspeak-volume-claim + serviceName: {{ .Release.Name }}-service + + diff --git a/teamspeak-server/templates/teamspeak.pvc.yaml b/teamspeak-server/templates/teamspeak.pvc.yaml new file mode 100644 index 0000000..6be33e1 --- /dev/null +++ b/teamspeak-server/templates/teamspeak.pvc.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ .Release.Name }}-teamspeak-volume-claim +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: {{ .Values.storage.size }} + + storageClassName: {{ .Values.storage.storageClass }} diff --git a/teamspeak-server/values.yaml b/teamspeak-server/values.yaml new file mode 100644 index 0000000..c98112d --- /dev/null +++ b/teamspeak-server/values.yaml @@ -0,0 +1,3 @@ +storage: + size: 25Gi + storageClass: longhorn \ No newline at end of file