--- 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