Defined Type: psick::network::netplan

Defined in:
manifests/network/netplan.pp

Overview

Define psick::network::netplan

Define to manage a netplan configuration file

Parameters:

  • config_file_name (String) (defaults to: "50-${title}.yaml")
  • ensure (Enum['present','absent']) (defaults to: 'present')
  • renderer (String) (defaults to: 'networkd')
  • version (Numeric) (defaults to: 2)
  • config_dir_path (Stdlib::Absolutepath) (defaults to: '/etc/netplan')
  • ethernets (Hash) (defaults to: {})
  • wifis (Hash) (defaults to: {})
  • bridges (Hash) (defaults to: {})
  • bonds (Hash) (defaults to: {})
  • tunnels (Hash) (defaults to: {})
  • vlans (Hash) (defaults to: {})
  • file_content (Optional[String]) (defaults to: undef)
  • file_source (Optional[String]) (defaults to: undef)


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
44
45
46
47
# File 'manifests/network/netplan.pp', line 5

define psick::network::netplan (
  String $config_file_name = "50-${title}.yaml",
  Enum['present','absent'] $ensure = 'present',
  String $renderer = 'networkd',
  Numeric $version         = 2,

  Stdlib::Absolutepath $config_dir_path  = '/etc/netplan',

  Hash $ethernets          = {},
  Hash $wifis              = {},
  Hash $bridges            = {},
  Hash $bonds              = {},
  Hash $tunnels            = {},
  Hash $vlans              = {},

  Optional[String] $file_content = undef,
  Optional[String] $file_source  = undef,

) {
  $netplan_data = {
    'network' => {
      'version'   => $version,
      'renderer'  => $renderer,
      'ethernets' => $ethernets,
      'wifis'      => $wifis,
      'bridges'   => $bridges,
      'bonds'     => $bonds,
      'tunnels'   => $tunnels,
      'vlans'     => $vlans,
    },
  }

  $real_file_content = $file_source ? {
    undef   => pick($file_content,to_yaml($netplan_data)),
    default => undef,
  }

  file { "${config_dir_path}/${config_file_name}":
    ensure  => $ensure,
    content => $real_file_content,
    source  => $file_source,
  }
}