view modules/website/manifests/https/multitld.pp @ 263:f99974dc0f1a

Add a way to skip setting CSP NextCloud manages CSP itself, so we don't need the header in the PIM subdomain causing confusion and incorrect results
author IBBoard <dev@ibboard.co.uk>
date Sun, 29 Dec 2019 16:43:55 +0000
parents 4519b727cc4c
children 13825cc1ec57
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             = true,
  $csp_override    = undef,
  $csp_report      = true,
  $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             => $csp,
    csp_override    => $csp_override,
    csp_report      => $csp_report,
    csp_report_override => $csp_report_override,
  }
}