summaryrefslogtreecommitdiff
path: root/manifests/template.pp
blob: 3c66b97df62ba81d7ba21350d1b9d47b64e30527 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
define nspawn::template (
  String $template_name = $name,
  Enum['debian', 'arch'] $os = $template_name.split('-')[0],
  Optional[String] $version = undef,
  String $puppet_server = $nspawn::puppet_server,
  String $template_dir = $nspawn::template_dir,
) {

  $template = "${template_name}.base"
  $root = "${template_dir}/${template}"

  case $os {
    'debian': {
      $real_version = if $version != undef {
        $version
      } else {
        # Oout of bounds indexing gives 'undef'
        $template_name.split('-')[1]
      }
      nspawn::os::debian { $template:
        os_version   => $real_version,
        template_dir => $template_dir,
        before       => Nspawn::Template_final[$template],
      }
    }
    'arch': {
      nspawn::os::arch { $template:
        template_dir => $template_dir,
        before       => Nspawn::Template_final[$template],
      }
    }
  }

  nspawn::template_final { $template:
    root          => $root,
    puppet_server => $puppet_server,
  }

}