summaryrefslogtreecommitdiff
path: root/global/overlay/etc/puppet/manifests/catlfish/frontend.pp
blob: c9ef122d15e6eb9daf4b2d3990a25a019a1d0c66 (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
40
41
42
43
define catlfish::frontend(
      $logname  = undef,
      $image    = 'docker.sunet.se/ctct/catlfish-dev',
      $version  = 'latest'
)
{
   $base = '/var/local/db'
   $db = ""${base}/${logname}"
   file {$base: ensure => directory } ->
   file {$db: ensure => directory } ->
   sunet::docker_run{"${name}_varnish":
      image    => "docker.sunet.se/varnish",
      imagetag => "latest",
      env      => ["BACKEND_PORT=tcp://${name}_frontend.docker:8080"],
      ports    => ["80:80"],
   } ->
   sunet::docker_run{"${name}_stud":
      image    => "docker.sunet.se/stud",
      imagetag => "latest",
      volumes  => ["/etc/ssl:/etc/ssl"],
      env      => ["BACKEND_PORT=tcp://${name}_varnish.docker:80"],
      ports    => ["443:443"]
   } ->
   sunet::docker_run {"${name}_catlfish":
       image    => $image,
       imagetag => $version,
       ports    => ["8080:8080","8082:8082"],
       volumes  => ["/usr/local/etc/catlfish:/usr/local/etc/catlfish:ro","${db}:/var/local/db/catlfish"],
       command  => ["frontend ${name} ${logname}"]
   } ->
   ufw::allow { "${name}-allow-http":
      ip   => 'any',
      port => 80
   } ->
   ufw::allow { "${name}-allow-https":
      ip   => 'any',
      port => 443
   } ->
   ufw:allow { "${name}-allow-8082-acl0":
      ip     => '130.242.125.0/24',
      port   => 8082
   }
}