Skip to content

Commit

Permalink
Fixes #37835 - Add user and netapi to Salt config
Browse files Browse the repository at this point in the history
* Set user for running Salt Master service due to 3006 changes
  https://docs.saltproject.io/en/3006/topics/releases/3006.0.html#linux-packaging-salt-master-salt-user-and-group

Salt API

* Add netapi_enable_clients explicitly due to 3006 changes
  https://docs.saltproject.io/en/master/topics/netapi/netapi-enable-clients.html#select-client-interfaces-to-enable
* Add api_interfaces parameter to enable configuration of API
  accessibility. However, smart_proxy_salt utilizes only
  the "runner" API interface.
  • Loading branch information
bastian-src committed Sep 20, 2024
1 parent 32de4bd commit fbd5204
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 0 deletions.
3 changes: 3 additions & 0 deletions manifests/plugin/salt.pp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
#
# $api_password:: Salt API password
#
# $api_interfaces:: Salt API interfaces
#
# $saltfile:: Path to Saltfile
#
# === Advanced parameters:
Expand All @@ -42,6 +44,7 @@
String $api_auth = $foreman_proxy::plugin::salt::params::api_auth,
String $api_username = $foreman_proxy::plugin::salt::params::api_username,
String $api_password = $foreman_proxy::plugin::salt::params::api_password,
Array[String] $api_interfaces = $foreman_proxy::plugin::salt::params::api_interfaces,
Optional[Stdlib::Absolutepath] $saltfile = $foreman_proxy::plugin::salt::params::saltfile,
) inherits foreman_proxy::plugin::salt::params {
$foreman_ssl_cert = pick($foreman_proxy::foreman_ssl_cert, $foreman_proxy::ssl_cert)
Expand Down
1 change: 1 addition & 0 deletions manifests/plugin/salt/params.pp
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,6 @@
$api_auth = 'pam'
$api_username = 'saltuser'
$api_password = 'saltpassword'
$api_interfaces = ['runner']
$saltfile = undef
}
20 changes: 20 additions & 0 deletions spec/classes/foreman_proxy__plugin__salt_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,15 @@
:content => /:enabled: https/
})
end

it 'should configure master.d/foreman.conf' do

Check failure on line 22 in spec/classes/foreman_proxy__plugin__salt_spec.rb

View workflow job for this annotation

GitHub Actions / Puppet / 8 (Ruby 3.2)

foreman_proxy::plugin::salt on debian-11-x86_64 with default settings should configure master.d/foreman.conf Failure/Error: should contain_file('/etc/salt/master.d/foreman.conf'). wiht_content(%r{autosign_grains_dir: /var/lib/foreman-proxy/salt/grains}). wiht_content(%r{autosign_file: /etc/salt/autosign.conf}). wiht_content(%r{user: root}). wiht_content(%r{netapi_enable_clients:\n - runner}). wiht_content(%r{external_auth:\n - pam\n - \'@runner\'}) NoMethodError: undefined method `wiht_content' for #<RSpec::Puppet::ManifestMatchers::CreateGeneric:0x00007f9e400e2e60 @exp_resource_type="file", @Args=["/etc/salt/master.d/foreman.conf"], @block=nil, @referenced_type="File", @title="/etc/salt/master.d/foreman.conf", @errors=[], @expected_params=[], @expected_undef_params=[], @notifies=[], @subscribes=[], @requires=[], @befores=[]>

Check failure on line 22 in spec/classes/foreman_proxy__plugin__salt_spec.rb

View workflow job for this annotation

GitHub Actions / Puppet / 8 (Ruby 3.2)

foreman_proxy::plugin::salt on redhat-8-x86_64 with default settings should configure master.d/foreman.conf Failure/Error: should contain_file('/etc/salt/master.d/foreman.conf'). wiht_content(%r{autosign_grains_dir: /var/lib/foreman-proxy/salt/grains}). wiht_content(%r{autosign_file: /etc/salt/autosign.conf}). wiht_content(%r{user: root}). wiht_content(%r{netapi_enable_clients:\n - runner}). wiht_content(%r{external_auth:\n - pam\n - \'@runner\'}) NoMethodError: undefined method `wiht_content' for #<RSpec::Puppet::ManifestMatchers::CreateGeneric:0x00007f9e40011900 @exp_resource_type="file", @Args=["/etc/salt/master.d/foreman.conf"], @block=nil, @referenced_type="File", @title="/etc/salt/master.d/foreman.conf", @errors=[], @expected_params=[], @expected_undef_params=[], @notifies=[], @subscribes=[], @requires=[], @befores=[]>

Check failure on line 22 in spec/classes/foreman_proxy__plugin__salt_spec.rb

View workflow job for this annotation

GitHub Actions / Puppet / 7 (Ruby 2.7)

foreman_proxy::plugin::salt on debian-11-x86_64 with default settings should configure master.d/foreman.conf Failure/Error: should contain_file('/etc/salt/master.d/foreman.conf'). wiht_content(%r{autosign_grains_dir: /var/lib/foreman-proxy/salt/grains}). wiht_content(%r{autosign_file: /etc/salt/autosign.conf}). wiht_content(%r{user: root}). wiht_content(%r{netapi_enable_clients:\n - runner}). wiht_content(%r{external_auth:\n - pam\n - \'@runner\'}) NoMethodError: undefined method `wiht_content' for #<RSpec::Puppet::ManifestMatchers::CreateGeneric:0x00005652f006e8b8>

Check failure on line 22 in spec/classes/foreman_proxy__plugin__salt_spec.rb

View workflow job for this annotation

GitHub Actions / Puppet / 7 (Ruby 2.7)

foreman_proxy::plugin::salt on redhat-8-x86_64 with default settings should configure master.d/foreman.conf Failure/Error: should contain_file('/etc/salt/master.d/foreman.conf'). wiht_content(%r{autosign_grains_dir: /var/lib/foreman-proxy/salt/grains}). wiht_content(%r{autosign_file: /etc/salt/autosign.conf}). wiht_content(%r{user: root}). wiht_content(%r{netapi_enable_clients:\n - runner}). wiht_content(%r{external_auth:\n - pam\n - \'@runner\'}) NoMethodError: undefined method `wiht_content' for #<RSpec::Puppet::ManifestMatchers::CreateGeneric:0x00005652eb814068>
should contain_file('/etc/salt/master.d/foreman.conf').
wiht_content(%r{autosign_grains_dir: /var/lib/foreman-proxy/salt/grains}).
wiht_content(%r{autosign_file: /etc/salt/autosign.conf}).
wiht_content(%r{user: root}).
wiht_content(%r{netapi_enable_clients:\n - runner}).
wiht_content(%r{external_auth:\n - pam\n - \'@runner\'})
end
end

describe 'with overwritten parameters' do
Expand All @@ -30,6 +39,7 @@
:api_auth => 'ldap',
:api_username => 'saltapi',
:api_password => 'letmein',
:api_interfaces => ['runner', 'local', 'ssh', 'wheel'],
:saltfile => '/etc/salt/Saltfile',
} end

Expand All @@ -45,6 +55,16 @@
with_content(%r{:api_password: letmein}).
with_content(%r{:saltfile: /etc/salt/Saltfile})
end

it 'should change master.d/foreman.conf parameters' do

Check failure on line 59 in spec/classes/foreman_proxy__plugin__salt_spec.rb

View workflow job for this annotation

GitHub Actions / Puppet / 8 (Ruby 3.2)

foreman_proxy::plugin::salt on debian-11-x86_64 with overwritten parameters should change master.d/foreman.conf parameters Failure/Error: should contain_file('/etc/salt/master.d/foreman.conf'). wiht_content(%r{user: example}). wiht_content(%r{autosign_grains_dir: /var/lib/foreman-proxy/salt/grains}). wiht_content(%r{autosign_file: /etc/salt/example.conf}). wiht_content(%r{user: root}). wiht_content(%r{netapi_enable_clients:\n - runner\n - local\n - ssh\n - wheel}). wiht_content(%r{external_auth:\n - ldap\n - \'@runner\'}) NoMethodError: undefined method `wiht_content' for #<RSpec::Puppet::ManifestMatchers::CreateGeneric:0x00007f9e3feac4e8 @exp_resource_type="file", @Args=["/etc/salt/master.d/foreman.conf"], @block=nil, @referenced_type="File", @title="/etc/salt/master.d/foreman.conf", @errors=[], @expected_params=[], @expected_undef_params=[], @notifies=[], @subscribes=[], @requires=[], @befores=[]>

Check failure on line 59 in spec/classes/foreman_proxy__plugin__salt_spec.rb

View workflow job for this annotation

GitHub Actions / Puppet / 8 (Ruby 3.2)

foreman_proxy::plugin::salt on redhat-8-x86_64 with overwritten parameters should change master.d/foreman.conf parameters Failure/Error: should contain_file('/etc/salt/master.d/foreman.conf'). wiht_content(%r{user: example}). wiht_content(%r{autosign_grains_dir: /var/lib/foreman-proxy/salt/grains}). wiht_content(%r{autosign_file: /etc/salt/example.conf}). wiht_content(%r{user: root}). wiht_content(%r{netapi_enable_clients:\n - runner\n - local\n - ssh\n - wheel}). wiht_content(%r{external_auth:\n - ldap\n - \'@runner\'}) NoMethodError: undefined method `wiht_content' for #<RSpec::Puppet::ManifestMatchers::CreateGeneric:0x00007f9e3ff51060 @exp_resource_type="file", @Args=["/etc/salt/master.d/foreman.conf"], @block=nil, @referenced_type="File", @title="/etc/salt/master.d/foreman.conf", @errors=[], @expected_params=[], @expected_undef_params=[], @notifies=[], @subscribes=[], @requires=[], @befores=[]>

Check failure on line 59 in spec/classes/foreman_proxy__plugin__salt_spec.rb

View workflow job for this annotation

GitHub Actions / Puppet / 7 (Ruby 2.7)

foreman_proxy::plugin::salt on debian-11-x86_64 with overwritten parameters should change master.d/foreman.conf parameters Failure/Error: should contain_file('/etc/salt/master.d/foreman.conf'). wiht_content(%r{user: example}). wiht_content(%r{autosign_grains_dir: /var/lib/foreman-proxy/salt/grains}). wiht_content(%r{autosign_file: /etc/salt/example.conf}). wiht_content(%r{user: root}). wiht_content(%r{netapi_enable_clients:\n - runner\n - local\n - ssh\n - wheel}). wiht_content(%r{external_auth:\n - ldap\n - \'@runner\'}) NoMethodError: undefined method `wiht_content' for #<RSpec::Puppet::ManifestMatchers::CreateGeneric:0x00005652eb187a38>

Check failure on line 59 in spec/classes/foreman_proxy__plugin__salt_spec.rb

View workflow job for this annotation

GitHub Actions / Puppet / 7 (Ruby 2.7)

foreman_proxy::plugin::salt on redhat-8-x86_64 with overwritten parameters should change master.d/foreman.conf parameters Failure/Error: should contain_file('/etc/salt/master.d/foreman.conf'). wiht_content(%r{user: example}). wiht_content(%r{autosign_grains_dir: /var/lib/foreman-proxy/salt/grains}). wiht_content(%r{autosign_file: /etc/salt/example.conf}). wiht_content(%r{user: root}). wiht_content(%r{netapi_enable_clients:\n - runner\n - local\n - ssh\n - wheel}). wiht_content(%r{external_auth:\n - ldap\n - \'@runner\'}) NoMethodError: undefined method `wiht_content' for #<RSpec::Puppet::ManifestMatchers::CreateGeneric:0x00005652eb742b30>
should contain_file('/etc/salt/master.d/foreman.conf').
wiht_content(%r{user: example}).
wiht_content(%r{autosign_grains_dir: /var/lib/foreman-proxy/salt/grains}).
wiht_content(%r{autosign_file: /etc/salt/example.conf}).
wiht_content(%r{user: root}).
wiht_content(%r{netapi_enable_clients:\n - runner\n - local\n - ssh\n - wheel}).
wiht_content(%r{external_auth:\n - ldap\n - \'@runner\'})
end
end
end
end
Expand Down
12 changes: 12 additions & 0 deletions templates/plugin/salt_master.conf.erb
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@ autosign_file: <%= scope.lookupvar('foreman_proxy::plugin::salt::autosign_file')
# permissive_pki_access: True


##
# Salt Master service user
user: <%= scope.lookupvar('::foreman_proxy::plugin::salt::user') %>


##
# Node classifier
master_tops:
Expand All @@ -39,6 +44,13 @@ rest_cherrypy:
ssl_key: <%= @foreman_ssl_key %>
ssl_crt: <%= @foreman_ssl_cert %>
<% if scope.lookupvar('foreman_proxy::plugin::salt::api_interfaces').any? -%>
netapi_enable_clients:
<%- scope.lookupvar('foreman_proxy::plugin::salt::api_interfaces').each do |api_item| -%>
- <%= api_item %>
<%- end -%>
<% end -%>


##
# Remote execution provider
Expand Down

0 comments on commit fbd5204

Please sign in to comment.