view modules/website/manifests/https/multitld.pp @ 236:4519b727cc4c puppet-3.6

Make Content-Security-Policy cleaner and easier to set
author IBBoard <dev@ibboard.co.uk>
date Wed, 18 Dec 2019 21:22:50 +0000
parents 060f81349dd6
children f99974dc0f1a
line wrap: on
line source

define website::https::multitld (
  $docroot         = undef,
  $ip              = $website::primary_ip,
  $priority        = undef,
  $base            = $name,
  $main_tld        = $website::tld,
  $extra_tlds      = $website::extra_tlds,
  $ssl_ca_chain    = undef,
  $letsencrypt_name = undef,
  $docroot_owner   = undef,
  $docroot_group   = undef,
  $custom_fragment = undef,
  $force_no_index  = undef,
  $force_no_www    = undef,
  $csp_override       = undef,
  $csp_report_override = undef,
  ) {

  if ! defined(Class['website']) {
    fail('You must include the website base class before using any website defined resources')
  }

  validate_array($extra_tlds)
  validate_re($main_tld, '^[a-z]+(\.[a-z]+)?', 'TLD must be in the form "com" or "co.uk"')
  $alias = domain_to_short_domain($base)

  $base_aliases = prefix($extra_tlds, "${base}.")
  if $base != $alias {
    $aliases = concat(concat($base_aliases, "${alias}.${main_tld}"),
      prefix($extra_tlds, "${alias}."))
  } else {
    $aliases = $base_aliases
  }

  $main_domain = "${base}.${main_tld}"
  website::https { $main_domain:
    priority        => $priority,
    ip              => $ip,
    serveraliases   => $aliases,
    docroot         => $docroot,
    docroot_owner   => $docroot_owner,
    docroot_group   => $docroot_group,
    ssl_ca_chain    => $ssl_ca_chain,
    letsencrypt_name => $letsencrypt_name,
    custom_fragment => $custom_fragment,
    force_no_index  => $force_no_index,
    force_no_www    => $force_no_www,
    csp_override    => $csp_override,
    csp_report_override => $csp_report_override,
  }
}