blob: c2fa5075f0b64ccac951f4737b6eb7f709188af4 [file]
# Puppet config for Swarming device-bot hosts for CI
#
# Instructions to bootstrap/change swarming bot hosts at:
# https://g3doc.corp.google.com/chrome/dongle/test/catatester/g3doc/dev/lab_host_changes.md
class cast_builder::swarm_init($env = '', $cipd_env = 'live') {
# Set up Puppet execution stages
stage { 'last': }
Stage['main'] -> Stage['last']
case $env {
'lab_host': {
$user = 'gtvchrome'
$group = 'gtvchrome'
$home_dir = "/home/${user}"
class { 'cast_builder::swarm_host_base':
user => $user,
group => $group,
home_dir => $home_dir,
} ->
class { 'cast_builder::swarm_host_lab':
user => $user,
group => $group,
home_dir => $home_dir,
} ->
class { 'cast_builder::swarm_bot_home':
user => $user,
group => $group,
home_dir => $home_dir,
}
}
'gazoo_canary_host' : {
$user = 'gtvchrome'
$group = 'gtvchrome'
$home_dir = "/home/${user}"
class { 'cast_builder::gazoo_host_base':
user => $user,
group => $group,
home_dir => $home_dir,
}->
class { 'cast_builder::gazoo_host_lab':
user => $user,
group => $group,
home_dir => $home_dir,
ref_puppet => 'gazoo-staging',
}
}
'gazoo_staging_host' : {
$user = 'gtvchrome'
$group = 'gtvchrome'
$home_dir = "/home/${user}"
class { 'cast_builder::gazoo_host_base':
user => $user,
group => $group,
home_dir => $home_dir,
}->
class { 'cast_builder::gazoo_host_lab':
user => $user,
group => $group,
home_dir => $home_dir,
ref_puppet => 'gazoo-staging',
}
}
'gazoo_prod_host' : {
$user = 'gtvchrome'
$group = 'gtvchrome'
$home_dir = "/home/${user}"
class { 'cast_builder::gazoo_host_base':
user => $user,
group => $group,
home_dir => $home_dir,
}->
class { 'cast_builder::gazoo_host_lab':
user => $user,
group => $group,
home_dir => $home_dir,
ref_puppet => 'gazoo-prod',
}
}
'gotham_host': {
$user = 'gtvchrome'
$group = 'gtvchrome'
$home_dir = "/home/${user}"
class { 'cast_builder::swarm_host_base':
user => $user,
group => $group,
home_dir => $home_dir,
} ->
class { 'cast_builder::swarm_host_lab':
user => $user,
group => $group,
home_dir => $home_dir,
} ->
class { 'cast_builder::swarm_bot_gotham':
user => $user,
group => $group,
home_dir => $home_dir,
}
}
'corp_ganeti': {
$user = 'mosaic-role'
$group = 'mosaic-role'
$home_dir = "/usr/local/google/home/${user}"
class { 'cast_builder::swarm_host_base':
user => $user,
group => $group,
home_dir => $home_dir,
} ->
class { 'cast_builder::swarm_host_ganeti':
user => $user,
home_dir => $home_dir,
} ->
class { 'cast_builder::swarm_bot_home':
user => $user,
group => $group,
home_dir => $home_dir,
}
# Save last Puppet execution state after all other steps
# (only for goobuntu machines).
class { 'cast_builder::puppet_state':
stage => last,
}
}
default: {
fail "unknown host environment ${env}"
}
}
}