diff --git a/hieradata/common.yaml b/hieradata/common.yaml index fbdb03a..5c004ed 100644 --- a/hieradata/common.yaml +++ b/hieradata/common.yaml @@ -27,5 +27,8 @@ profiles::puppet::autosign::subnet_ranges: profiles::puppet::autosign::domains: - '*.main.unkin.net' +# profiles::puppet::autosign::nodes: +# - 'somenode.main.unkin.net' + profiles::puppet::enc::enc_repo: https://git.unkin.net/unkinben/puppet-enc.git profiles::puppet::r10k::r10k_repo: https://git.unkin.net/unkinben/puppet-r10k.git diff --git a/site/profiles/manifests/puppet/autosign.pp b/site/profiles/manifests/puppet/autosign.pp index 4a84d70..0c75d25 100644 --- a/site/profiles/manifests/puppet/autosign.pp +++ b/site/profiles/manifests/puppet/autosign.pp @@ -9,26 +9,34 @@ # - `subnet_ranges`: An array of IP subnet ranges in CIDR notation. # Nodes with IP addresses within these ranges will have their # certificates autosigned. +# Default: [] # Example: ['198.18.17.0/24'] # # - `domains`: An array of domain patterns. # Nodes with hostnames matching these patterns will have their # certificates autosigned. -# Default: ['*.main.unkin.net'] +# Default: [] # Example: ['*.main.unkin.net', '*.secondary.unkin.net'] # +# - `nodes`: An array of specific node names. +# Nodes with hostnames matching these will have their +# certificates autosigned. +# Default: [] +# Example: ['somenode.main.unkin.net', 'othernode.secondary.unkin.net'] # Usage: # # To include this class with custom parameters: # class { 'profiles::puppet::autosign': # subnet_ranges => ['198.18.17.0/24', '198.18.18.0/24'], # domains => ['*.main.unkin.net', '*.dev.unkin.net'], +# nodes => ['somenode.main.unkin.net', 'othernode.dev.unkin.net'], # } # # Alternatively, configure subnet ranges and domains through Hiera. class profiles::puppet::autosign ( - Array[Stdlib::IP::Address::V4::CIDR] $subnet_ranges, - Array[String[1]] $domains, + Array[Stdlib::IP::Address::V4::CIDR] $subnet_ranges = [], + Array[String[1]] $domains = [], + Array[String[1]] $nodes = [], ) { # Manage the autosign.conf file using the template diff --git a/site/profiles/templates/puppet/autosign/autosign.conf.erb b/site/profiles/templates/puppet/autosign/autosign.conf.erb index c533d8a..ccbc1dd 100644 --- a/site/profiles/templates/puppet/autosign/autosign.conf.erb +++ b/site/profiles/templates/puppet/autosign/autosign.conf.erb @@ -1,6 +1,12 @@ +# Autosign all nodes from these subnets <% @subnet_ranges.each do |subnet| -%> <%= subnet %> <% end -%> +# Autosign all nodes from these domains <% @domains.each do |domain| -%> <%= domain %> <% end -%> +# Autosign these specific nodes +<% @nodes.each do |node| -%> +<%= node %> +<% end -%>