| # 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}" |
| } |
| } |
| } |