diff --git a/.travis/Gemfile b/.travis/Gemfile index 252d3963d..14023648b 100644 --- a/.travis/Gemfile +++ b/.travis/Gemfile @@ -2,7 +2,7 @@ source 'https://rubygems.org' group :rake do gem 'puppetlabs_spec_helper' - gem 'librarian-puppet' + gem 'librarian-puppet', '<1.1.0' gem 'open3_backport', :platforms => :ruby_18 gem 'json', :platforms => :ruby_18 end diff --git a/Gemfile b/Gemfile index 26c7d4a18..c8ff77b3b 100644 --- a/Gemfile +++ b/Gemfile @@ -7,7 +7,7 @@ group :rake do gem 'puppet-lint', '>=0.1.12' gem 'puppetlabs_spec_helper' gem 'puppet-blacksmith' - gem 'librarian-puppet' + gem 'librarian-puppet', '<1.1.0' gem 'rspec-system-puppet', :require => false gem 'rspec-system-serverspec', :require => false end diff --git a/manifests/resource/upstream.pp b/manifests/resource/upstream.pp index 7317201be..920aff98a 100644 --- a/manifests/resource/upstream.pp +++ b/manifests/resource/upstream.pp @@ -4,7 +4,6 @@ # # Parameters: # [*members*] - Array of member URIs for NGINX to connect to. Must follow valid NGINX syntax. -# If omitted, individual members should be defined with nginx::resource::upstream::member # [*ensure*] - Enables or disables the specified location (present|absent) # [*upstream_cfg_prepend*] - It expects a hash with custom directives to put before anything else inside upstream # [*upstream_fail_timeout*] - Set the fail_timeout for the upstream. Default is 10 seconds - As that is what Nginx does normally. @@ -39,58 +38,31 @@ # upstream_cfg_prepend => $my_config, # } define nginx::resource::upstream ( - $members = undef, + $members, $ensure = 'present', $upstream_cfg_prepend = undef, $upstream_fail_timeout = '10s', ) { - if $members != undef { - validate_array($members) - } + validate_array($members) validate_re($ensure, '^(present|absent)$', "${ensure} is not supported for ensure. Allowed values are 'present' and 'absent'.") if ($upstream_cfg_prepend != undef) { validate_hash($upstream_cfg_prepend) } - Concat { + File { owner => 'root', group => 'root', mode => '0644', } - concat { "/etc/nginx/conf.d/${name}-upstream.conf": + file { "/etc/nginx/conf.d/${name}-upstream.conf": ensure => $ensure ? { 'absent' => absent, - 'file' => present, - default => present, + default => 'file', }, + content => template('nginx/conf.d/upstream.erb'), notify => Class['nginx::service'], } - - # Uses: $name, $upstream_cfg_prepend - concat::fragment { "${name}_upstream_header": - target => "/etc/nginx/conf.d/${name}-upstream.conf", - order => 10, - content => template('nginx/conf.d/upstream_header.erb'), - } - - if $members != undef { - # Uses: $members, $upstream_fail_timeout - concat::fragment { "${name}_upstream_members": - target => "/etc/nginx/conf.d/${name}-upstream.conf", - order => 50, - content => template('nginx/conf.d/upstream_members.erb'), - } - } else { - # Collect exported members: - Nginx::Resource::Upstream::Member <<| upstream == $name |>> - } - - concat::fragment { "${name}_upstream_footer": - target => "/etc/nginx/conf.d/${name}-upstream.conf", - order => 90, - content => "}\n", - } } diff --git a/manifests/resource/upstream/member.pp b/manifests/resource/upstream/member.pp deleted file mode 100644 index f5f3e0a24..000000000 --- a/manifests/resource/upstream/member.pp +++ /dev/null @@ -1,48 +0,0 @@ -# Define: nginx::resources::upstream::member -# -# Creates an upstream member inside the upstream block. Export this resource -# in all upstream member servers and collect them on the NGINX server. -# -# -# Requirements: -# Requires storeconfigs on the Puppet Master to export and collect resources -# -# -# Parameters: -# [*upstream*] - The name of the upstream resource -# [*server*] - Hostname or IP of the upstream member server -# [*port*] - Port of the listening service on the upstream member -# [*upstream_fail_timeout*] - Set the fail_timeout for the upstream. Default is 10 seconds -# -# -# Examples: -# -# Exporting the resource on a upstream member server: -# -# @@nginx::resource::upstream::member { $::fqdn: -# upstream => 'proxypass', -# server => $::ipaddress, -# port => '3000', -# } -# -# -# Collecting the resource on the NGINX server: -# -# nginx::resource::upstream { 'proxypass': -# ensure => present, -# } -# -define nginx::resource::upstream::member ( - $upstream, - $server, - $port = '80', - $upstream_fail_timeout = '10s', -) { - - # Uses: $server, $port, $upstream_fail_timeout - concat::fragment { "${upstream}_upstream_member_${name}": - target => "/etc/nginx/conf.d/${upstream}-upstream.conf", - order => 40, - content => template('nginx/conf.d/upstream_member.erb'), - } -} diff --git a/templates/conf.d/upstream_header.erb b/templates/conf.d/upstream.erb similarity index 79% rename from templates/conf.d/upstream_header.erb rename to templates/conf.d/upstream.erb index 6b7f44883..a96121ab2 100644 --- a/templates/conf.d/upstream_header.erb +++ b/templates/conf.d/upstream.erb @@ -10,3 +10,6 @@ upstream <%= @name %> { <% end -%> <% end -%> <% end -%><% end -%> + <% @members.each do |i| %> + server <%= i %> fail_timeout=<%= @upstream_fail_timeout %>;<% end %> +} diff --git a/templates/conf.d/upstream_member.erb b/templates/conf.d/upstream_member.erb deleted file mode 100644 index 081177b7e..000000000 --- a/templates/conf.d/upstream_member.erb +++ /dev/null @@ -1 +0,0 @@ - server <%= @server %>:<%= @port %> fail_timeout=<%= @upstream_fail_timeout %>; diff --git a/templates/conf.d/upstream_members.erb b/templates/conf.d/upstream_members.erb deleted file mode 100644 index d7a2ddaf1..000000000 --- a/templates/conf.d/upstream_members.erb +++ /dev/null @@ -1,2 +0,0 @@ - <% @members.each do |i| %> - server <%= i %> fail_timeout=<%= @upstream_fail_timeout %>;<% end %>