Add yaml server config, restart server when ConfigMap changes

This commit is contained in:
chris
2020-08-03 16:35:41 -04:00
committed by Chris Marshall
parent ffca54fdb8
commit 1ce209bdbc
9 changed files with 326 additions and 149 deletions

View File

@ -8,35 +8,22 @@ import (
"sigs.k8s.io/yaml"
)
const expectedConfig = `seta fraglimit "25"
seta timelimit "15"
seta g_forcerespawn "0"
seta g_gametype "0"
seta g_inactivity "600"
seta g_log ""
seta g_motd "Welcome to Critical Stack"
seta g_quadfactor "3"
seta g_weaponrespawn "3"
seta sv_allowDownload "0"
seta sv_hostname "quakekube"
seta sv_maxclients "12"
seta rconpassword "changeme"
`
func TestConfigMarshal(t *testing.T) {
c := Default()
data, err := c.Marshal()
if err != nil {
t.Fatal(err)
}
fmt.Printf("data = %s\n", data)
if diff := cmp.Diff(string(data), expectedConfig); diff != "" {
t.Fatalf(diff)
}
}
const mapConfig = `- name: q3dm7
const config = `
fragLimit: 25
timeLimit: 15m
game:
motd: "Welcome to Critical Stack"
type: FreeForAll
forceRespawn: false
inactivity: 10m
quadFactor: 3
weaponRespawn: 3
server:
hostname: "quakekube"
maxClients: 12
password: "changeme"
maps:
- name: q3dm7
type: FreeForAll
- name: q3dm17
type: FreeForAll
@ -52,7 +39,24 @@ const mapConfig = `- name: q3dm7
type: Tournament
`
const expectedMapConfig = `set d0 "seta g_gametype 0 ; map q3dm7 ; set nextmap vstr d1"
const expectedConfig = `seta fraglimit "25"
seta g_forcerespawn "0"
seta g_gametype "0"
seta g_log ""
seta g_motd "Welcome to Critical Stack"
seta g_quadfactor "3"
seta g_weaponrespawn "3"
seta fs_basegame ""
seta fs_basepath ""
seta fs_copyfiles "0"
seta fs_debug "0"
seta fs_game ""
seta fs_homepath ""
seta sv_allowDownload "0"
seta sv_hostname "quakekube"
seta sv_maxclients "12"
seta rconpassword "changeme"
set d0 "seta g_gametype 0 ; map q3dm7 ; set nextmap vstr d1"
set d1 "seta g_gametype 0 ; map q3dm17 ; set nextmap vstr d2"
set d2 "seta g_gametype 4 ; capturelimit 8 ; map q3wctf1 ; set nextmap vstr d3"
set d3 "seta g_gametype 1 ; map q3tourney2 ; set nextmap vstr d4"
@ -60,21 +64,18 @@ set d4 "seta g_gametype 4 ; capturelimit 8 ; map q3wctf3 ; set nextmap vstr d5"
set d5 "seta g_gametype 1 ; map ztn3tourney1 ; set nextmap vstr d0"
vstr d0`
func TestMapRead(t *testing.T) {
var maps Maps
if err := yaml.Unmarshal([]byte(mapConfig), &maps); err != nil {
func TestConfigMarshal(t *testing.T) {
var cfg *Config
if err := yaml.Unmarshal([]byte(config), &cfg); err != nil {
t.Fatal(err)
}
for _, m := range maps {
fmt.Printf("m = %+v\n", m)
}
data, err := maps.Marshal()
data, err := cfg.Marshal()
if err != nil {
t.Fatal(err)
}
if diff := cmp.Diff(string(data), expectedMapConfig); diff != "" {
fmt.Printf("%s\n", data)
if diff := cmp.Diff(string(data), expectedConfig); diff != "" {
t.Fatalf(diff)
}
}