234 lines
7.3 KiB
YAML
234 lines
7.3 KiB
YAML
---
|
|
workload:
|
|
kind: Deployment
|
|
containers:
|
|
tf2:
|
|
image:
|
|
registry: docker.io
|
|
repository: cm2network/tf2
|
|
tag:
|
|
pullPolicy: Always
|
|
ports:
|
|
- tf2
|
|
- rcon
|
|
- tv
|
|
mounts:
|
|
storage:
|
|
data:
|
|
path: /home/steam/tf-dedicated/
|
|
extraVolumes:
|
|
steam:
|
|
path: /Steam
|
|
envFrom:
|
|
- environment
|
|
- secrets
|
|
initContainers:
|
|
0-prepare-config:
|
|
image:
|
|
registry: docker.io
|
|
repository: alpine
|
|
tag: latest
|
|
pullPolicy: Always
|
|
mounts:
|
|
storage:
|
|
data:
|
|
path: /tf-data
|
|
files:
|
|
server-cfg:
|
|
mode: 420
|
|
path: /src/server.cfg
|
|
subPath: server.cfg
|
|
command:
|
|
- sh
|
|
args:
|
|
- -c
|
|
- mkdir -p /tf-data/tf/cfg && cp /src/server.cfg /tf-data/tf/cfg/server.cfg
|
|
|
|
service:
|
|
type: ClusterIP
|
|
ports:
|
|
tf2:
|
|
port: 27015
|
|
targetPort: 27015
|
|
protocol: UDP
|
|
tv:
|
|
port: 27020
|
|
targetPort: 27020
|
|
protocol: TCP
|
|
rcon:
|
|
port: 27015
|
|
targetPort: 27015
|
|
protocol: TCP
|
|
|
|
traefik:
|
|
udpRoutes:
|
|
tf2:
|
|
routes:
|
|
- services:
|
|
- name: "{{ .Release.Name }}"
|
|
port: 27015
|
|
weight: 10
|
|
nativeLB: false
|
|
|
|
tcpRoutes:
|
|
rcon:
|
|
routes:
|
|
- match: HostSNI(`*`)
|
|
services:
|
|
- name: "{{ .Release.Name }}"
|
|
port: 27015
|
|
nativeLB: true
|
|
storage:
|
|
data:
|
|
storageClassName: default
|
|
size: 45G
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
env:
|
|
environment:
|
|
sensitive: false
|
|
data:
|
|
SRCDS_PORT: "27015"
|
|
SRCDS_TV_PORT: "27020"
|
|
SRCDS_IP: "0"
|
|
SRCDS_FPSMAX: "300"
|
|
SRCDS_TICKRATE: "66"
|
|
SRCDS_MAXPLAYERS: "14"
|
|
SRCDS_REGION: "3"
|
|
SRCDS_STARTMAP: "ctf_2fort"
|
|
SRCDS_HOSTNAME: "New TF Server" # -- first launch only
|
|
SRCDS_CFG: "server.cfg"
|
|
SRCDS_MAPCYCLE: "mapcycle_default.txt" # -- value can be overwritten by tf/cfg/server.cfg
|
|
SRCDS_SECURED: "1" # -- 0 to start the server as insecured
|
|
secrets:
|
|
sensitive: true
|
|
data:
|
|
SRCDS_TOKEN: "" # -- value is is required to be listed & reachable, retrieve token here (AppID 440): https://steamcommunity.com/dev/managegameservers
|
|
extraVolumes:
|
|
# -- Because by default the fs is read-only, we need to add an emtpy dir volume
|
|
steam:
|
|
emptyDir: {}
|
|
files:
|
|
server-cfg:
|
|
sensitive: true
|
|
data:
|
|
server.cfg: |-
|
|
// General Settings //
|
|
// Hostname for server.
|
|
hostname "Team Fortress 2 Server"
|
|
// Overrides the max players reported to prospective clients
|
|
sv_visiblemaxplayers 24
|
|
// Maximum number of rounds to play before server changes maps
|
|
mp_maxrounds 5
|
|
// Set to lock per-frame time elapse
|
|
host_framerate 0
|
|
// Set the pause state of the server
|
|
setpause 0
|
|
// Control where the client gets content from
|
|
// 0 = anywhere, 1 = anywhere listed in white list, 2 = steam official content only
|
|
sv_pure 0
|
|
// Is the server pausable
|
|
sv_pausable 0
|
|
// Type of server 0=internet 1=lan
|
|
sv_lan 0
|
|
// Collect CPU usage stats
|
|
sv_stats 1
|
|
// Server password
|
|
sv_password "qwertyu9"
|
|
// Execute Banned Users //
|
|
exec banned_user.cfg
|
|
exec banned_ip.cfg
|
|
writeid
|
|
writeip
|
|
// Contact & Region //
|
|
// Contact email for server sysop
|
|
sv_contact test@example.com
|
|
// The region of the world to report this server in.
|
|
// -1 is the world, 0 is USA east coast, 1 is USA west coast
|
|
// 2 south america, 3 europe, 4 asia, 5 australia, 6 middle east, 7 africa
|
|
sv_region -1
|
|
// Rcon Settings //
|
|
// Password for rcon authentication (Remote CONtrol)
|
|
rcon_password "12345"
|
|
// Number of minutes to ban users who fail rcon authentication
|
|
sv_rcon_banpenalty 1440
|
|
// Max number of times a user can fail rcon authentication before being banned
|
|
sv_rcon_maxfailures 5
|
|
// Log Settings //
|
|
// Enables logging to file, console, and udp < on | off >.
|
|
log on
|
|
// Log server information to only one file.
|
|
sv_log_onefile 0
|
|
// Log server information in the log file.
|
|
sv_logfile 1
|
|
// Log server bans in the server logs.
|
|
sv_logbans 1
|
|
// Echo log information to the console.
|
|
sv_logecho 1
|
|
// Rate Settings //
|
|
// Frame rate limiter
|
|
fps_max 600
|
|
// Min bandwidth rate allowed on server, 0 == unlimited
|
|
sv_minrate 0
|
|
// Max bandwidth rate allowed on server, 0 == unlimited
|
|
sv_maxrate 20000
|
|
// Minimum updates per second that the server will allow
|
|
sv_minupdaterate 66
|
|
// Maximum updates per second that the server will allow
|
|
sv_maxupdaterate 66
|
|
// Download Settings //
|
|
// Allow clients to upload customizations files
|
|
sv_allowupload 1
|
|
// Allow clients to download files
|
|
sv_allowdownload 1
|
|
// Maximum allowed file size for uploading in MB
|
|
net_maxfilesize 15
|
|
// Team Balancing //
|
|
// Enable team balancing
|
|
mp_autoteambalance 1
|
|
// Time after the teams become unbalanced to attempt to switch players.
|
|
mp_autoteambalance_delay 60
|
|
// Time after the teams become unbalanced to print a balance warning
|
|
mp_autoteambalance_warning_delay 30
|
|
// Teams are unbalanced when one team has this many more players than the other team. (0 disables check)
|
|
mp_teams_unbalance_limit 1
|
|
// Round and Game Times //
|
|
// Enable timers to wait between rounds. WARNING: Setting this to 0 has been known to cause a bug with setup times lasting 5:20 (5 minutes 20 seconds) on some servers!
|
|
mp_enableroundwaittime 1
|
|
// Time after round win until round restarts
|
|
mp_bonusroundtime 8
|
|
// If non-zero, the current round will restart in the specified number of seconds
|
|
mp_restartround 0
|
|
// Enable sudden death
|
|
mp_stalemate_enable 1
|
|
// Timelimit (in seconds) of the stalemate round.
|
|
mp_stalemate_timelimit 300
|
|
// Game time per map in minutes
|
|
mp_timelimit 35
|
|
// Client CVars //
|
|
// Restricts spectator modes for dead players
|
|
mp_forcecamera 0
|
|
// Toggles whether the server allows spectator mode or not
|
|
mp_allowspectators 1
|
|
// Toggles footstep sounds
|
|
mp_footsteps 1
|
|
// Toggles game cheats
|
|
sv_cheats 0
|
|
// After this many seconds without a message from a client, the client is dropped
|
|
sv_timeout 900
|
|
// Maximum time a player is allowed to be idle (in minutes), made this and sv_timeout equal same time?
|
|
mp_idlemaxtime 15
|
|
// Deals with idle players 1=send to spectator 2=kick
|
|
mp_idledealmethod 2
|
|
// Time (seconds) between decal sprays
|
|
decalfrequency 30
|
|
// Communications //
|
|
// enable voice communications
|
|
sv_voiceenable 1
|
|
// Players can hear all other players, no team restrictions 0=off 1=on
|
|
sv_alltalk 0
|
|
// Amount of time players can chat after the game is over
|
|
mp_chattime 10
|
|
// Enable party mode
|
|
tf_birthday 0
|