This add the cname_lookup middleware for swift proxy.
This commit add the manifest to install and use the cname_lookup middleware for swift proxy pipeline. It includes the cname_lookup middleware parameters available in swift-proxy configuration file. It also install the required dependency python-dnspython. Change-Id: If68511fb97bae688e0201fb32928acc9cf68cafc
This commit is contained in:
		 Simeon Gourlin
					Simeon Gourlin
				
			
				
					committed by
					
						 Takashi Kajinami
						Takashi Kajinami
					
				
			
			
				
	
			
			
			 Takashi Kajinami
						Takashi Kajinami
					
				
			
						parent
						
							e2b35f10a4
						
					
				
				
					commit
					fe039b7a04
				
			| @@ -6,8 +6,9 @@ class swift::params { | |||||||
|   include openstacklib::defaults |   include openstacklib::defaults | ||||||
|   $pyvers = $::openstacklib::defaults::pyvers |   $pyvers = $::openstacklib::defaults::pyvers | ||||||
|  |  | ||||||
|   $client_package   = "python${pyvers}-swiftclient" |   $client_package        = "python${pyvers}-swiftclient" | ||||||
|   $service_provider = undef |   $dnspython_pakage_name = "python${pyvers}-dnspython" | ||||||
|  |   $service_provider      = undef | ||||||
|  |  | ||||||
|   case $::osfamily { |   case $::osfamily { | ||||||
|     'Debian': { |     'Debian': { | ||||||
|   | |||||||
							
								
								
									
										80
									
								
								manifests/proxy/cname_lookup.pp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								manifests/proxy/cname_lookup.pp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,80 @@ | |||||||
|  | # == Class: swift::proxy::cname_lookup | ||||||
|  | # | ||||||
|  | # Configure CNAME Lookup middleware for swift | ||||||
|  | # | ||||||
|  | # === Parameters | ||||||
|  | # | ||||||
|  | # [*log_name*] | ||||||
|  | # The log name of cname_lookup. | ||||||
|  | # Default to $::os_service_default | ||||||
|  | # | ||||||
|  | # [*log_facility*] | ||||||
|  | # The log facility of cname_lookup. | ||||||
|  | # Default to $::os_service_default | ||||||
|  | # | ||||||
|  | # [*log_level*] | ||||||
|  | # The log level of cname_lookup. | ||||||
|  | # Default to $::os_service_default | ||||||
|  | # | ||||||
|  | # [*log_headers*] | ||||||
|  | # The log headers of cname_lookup. | ||||||
|  | # Default to $::os_service_default | ||||||
|  | # | ||||||
|  | # [*log_address*] | ||||||
|  | # The log address of cname_lookup. | ||||||
|  | # Default to $::os_service_default | ||||||
|  | # | ||||||
|  | # [*storage_domain*] | ||||||
|  | # Specify the storage_domain that match your cloud, multiple domains | ||||||
|  | # can be specified separated by a comma. | ||||||
|  | # Default to $::os_service_default | ||||||
|  | # | ||||||
|  | # [*lookup_depth*] | ||||||
|  | # Because CNAMES can be recursive, specifies the number of levels | ||||||
|  | # through which to search. | ||||||
|  | # Default to $::os_service_default | ||||||
|  | # | ||||||
|  | # [*nameservers*] | ||||||
|  | # Specify the nameservers to use to do the CNAME resolution. If unset, the | ||||||
|  | # system configuration is used. Multiple nameservers can be specified | ||||||
|  | # separated by a comma. Default port 53 can be overridden. IPv6 is accepted. | ||||||
|  | # Example: 127.0.0.1, 127.0.0.2, 127.0.0.3:5353, [::1], [::1]:5353 | ||||||
|  | # Default to $::os_service_default | ||||||
|  | # | ||||||
|  | # | ||||||
|  | class swift::proxy::cname_lookup( | ||||||
|  |   $log_name       = $::os_service_default, | ||||||
|  |   $log_facility   = $::os_service_default, | ||||||
|  |   $log_level      = $::os_service_default, | ||||||
|  |   $log_headers    = $::os_service_default, | ||||||
|  |   $log_address    = $::os_service_default, | ||||||
|  |   $storage_domain = $::os_service_default, | ||||||
|  |   $lookup_depth   = $::os_service_default, | ||||||
|  |   $nameservers    = $::os_service_default, | ||||||
|  | ) { | ||||||
|  |  | ||||||
|  |   include swift::deps | ||||||
|  |   include swift::params | ||||||
|  |  | ||||||
|  |   if defined(Service['swift-proxy-server']) { | ||||||
|  |     Package['python3-dnspython'] -> Service['swift-proxy-server'] | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   swift_proxy_config { | ||||||
|  |     'filter:cname_lookup/use':              value => 'egg:swift#cname_lookup'; | ||||||
|  |     'filter:cname_lookup/set log_name':     value => $log_name; | ||||||
|  |     'filter:cname_lookup/set log_facility': value => $log_facility; | ||||||
|  |     'filter:cname_lookup/set log_level':    value => $log_level; | ||||||
|  |     'filter:cname_lookup/set log_headers':  value => $log_headers; | ||||||
|  |     'filter:cname_lookup/set log_address':  value => $log_address; | ||||||
|  |     'filter:cname_lookup/storage_domain' :  value => $storage_domain; | ||||||
|  |     'filter:cname_lookup/lookup_depth' :    value => $lookup_depth; | ||||||
|  |     'filter:cname_lookup/nameservers' :     value => $nameservers; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   package { 'python-dnspython': | ||||||
|  |     ensure => 'present', | ||||||
|  |     name   => $::swift::params::dnspython_pakage_name, | ||||||
|  |     tag    => ['openstack', 'swift-support-package'], | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										4
									
								
								releasenotes/notes/cname_lookup-a545519cb21e37cd.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								releasenotes/notes/cname_lookup-a545519cb21e37cd.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | --- | ||||||
|  | features: | ||||||
|  |   - | | ||||||
|  |     Support for the cname_lookup middlehware has been added. | ||||||
							
								
								
									
										74
									
								
								spec/classes/swift_proxy_cname_lookup_spec.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								spec/classes/swift_proxy_cname_lookup_spec.rb
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,74 @@ | |||||||
|  | require 'spec_helper' | ||||||
|  |  | ||||||
|  | describe 'swift::proxy::cname_lookup' do | ||||||
|  |   shared_examples 'swift::proxy::cname_lookup' do | ||||||
|  |     describe "when using default parameters" do | ||||||
|  |       it { is_expected.to contain_swift_proxy_config('filter:cname_lookup/set log_name').with_value('<SERVICE DEFAULT>') } | ||||||
|  |       it { is_expected.to contain_swift_proxy_config('filter:cname_lookup/set log_facility').with_value('<SERVICE DEFAULT>') } | ||||||
|  |       it { is_expected.to contain_swift_proxy_config('filter:cname_lookup/set log_level').with_value('<SERVICE DEFAULT>') } | ||||||
|  |       it { is_expected.to contain_swift_proxy_config('filter:cname_lookup/set log_headers').with_value('<SERVICE DEFAULT>') } | ||||||
|  |       it { is_expected.to contain_swift_proxy_config('filter:cname_lookup/set log_address').with_value('<SERVICE DEFAULT>') } | ||||||
|  |       it { is_expected.to contain_swift_proxy_config('filter:cname_lookup/storage_domain').with_value('<SERVICE DEFAULT>') } | ||||||
|  |       it { is_expected.to contain_swift_proxy_config('filter:cname_lookup/lookup_depth').with_value('<SERVICE DEFAULT>') } | ||||||
|  |       it { is_expected.to contain_swift_proxy_config('filter:cname_lookup/nameservers').with_value('<SERVICE DEFAULT>') } | ||||||
|  |       it { is_expected.to contain_package('python-dnspython').with( | ||||||
|  |         :name   => platform_params[:dnspython_package_name], | ||||||
|  |         :ensure => 'present', | ||||||
|  |         :tag    => ['openstack','swift-support-package'], | ||||||
|  |       ) } | ||||||
|  |     end | ||||||
|  |  | ||||||
|  |     describe "when overriding default parameters" do | ||||||
|  |       let :params do | ||||||
|  |         { | ||||||
|  |           :log_name       => 'newcname_lookup', | ||||||
|  |           :log_facility   => 'LOG_LOCAL3', | ||||||
|  |           :log_level      => 'WARN', | ||||||
|  |           :log_headers    => 'True', | ||||||
|  |           :log_address    => '/var/log', | ||||||
|  |           :storage_domain => 'example.com', | ||||||
|  |           :lookup_depth   => '2', | ||||||
|  |           :nameservers    => '8.8.8.8', | ||||||
|  |         } | ||||||
|  |       end | ||||||
|  |  | ||||||
|  |       it { is_expected.to contain_swift_proxy_config('filter:cname_lookup/set log_name').with_value('newcname_lookup') } | ||||||
|  |       it { is_expected.to contain_swift_proxy_config('filter:cname_lookup/set log_facility').with_value('LOG_LOCAL3') } | ||||||
|  |       it { is_expected.to contain_swift_proxy_config('filter:cname_lookup/set log_level').with_value('WARN') } | ||||||
|  |       it { is_expected.to contain_swift_proxy_config('filter:cname_lookup/set log_headers').with_value('True') } | ||||||
|  |       it { is_expected.to contain_swift_proxy_config('filter:cname_lookup/set log_address').with_value('/var/log') } | ||||||
|  |       it { is_expected.to contain_swift_proxy_config('filter:cname_lookup/storage_domain').with_value('example.com') } | ||||||
|  |       it { is_expected.to contain_swift_proxy_config('filter:cname_lookup/lookup_depth').with_value('2') } | ||||||
|  |       it { is_expected.to contain_swift_proxy_config('filter:cname_lookup/nameservers').with_value('8.8.8.8') } | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  |  | ||||||
|  |   on_supported_os({ | ||||||
|  |     :supported_os => OSDefaults.get_supported_os | ||||||
|  |   }).each do |os,facts| | ||||||
|  |     context "on #{os}" do | ||||||
|  |       let (:facts) do | ||||||
|  |         facts.merge(OSDefaults.get_facts()) | ||||||
|  |       end | ||||||
|  |  | ||||||
|  |       let(:platform_params) do | ||||||
|  |         case facts[:osfamily] | ||||||
|  |         when 'Debian' | ||||||
|  |           { :dnspython_package_name => 'python3-dnspython' } | ||||||
|  |         when 'RedHat' | ||||||
|  |           if facts[:operatingsystem] == 'Fedora' | ||||||
|  |             { :dnspython_package_name => 'python3-dnspython' } | ||||||
|  |           else | ||||||
|  |             if facts[:operatingsystemmajrelease] > '7' | ||||||
|  |               { :dnspython_package_name => 'python3-dnspython' } | ||||||
|  |             else | ||||||
|  |               { :dnspython_package_name => 'python-dnspython' } | ||||||
|  |             end | ||||||
|  |           end | ||||||
|  |         end | ||||||
|  |       end | ||||||
|  |  | ||||||
|  |       it_configures 'swift::proxy::cname_lookup' | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | end | ||||||
		Reference in New Issue
	
	Block a user