Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions manifests/plugin/openbolt.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# = Foreman Proxy openbolt plugin
#
# This class installs the OpenBolt plugin
#
# === Parameters:
#
# $environment_path:: Path to the environment with all modules
#
# $workers:: Define the amount of possible workers
#
# $concurrency:: Define the limit of concurrent connections for executed tasks
#
# $connect_timeout:: Timeout in seconds for connecting to remote systems
#
# === Advanced parameters:
#
# $enabled:: enables/disables the OpenBolt plugin
#
# $listen_on:: proxy feature listens on http, https, or both
#
# $version:: plugin package version, it's passed to ensure parameter of package resource
# can be set to specific version number, 'latest', 'present' etc.
#
# $log_dir:: directory where bolt will write logs to
#
class foreman_proxy::plugin::openbolt (
Optional[String[1]] $version = undef,
Boolean $enabled = true,
Foreman_proxy::ListenOn $listen_on = 'https',
Stdlib::Absolutepath $environment_path = '/etc/puppetlabs/code/environments/production',
Integer[0] $workers = 20,
Integer[0] $concurrency = 100,
Integer[1] $connect_timeout = 30,
Stdlib::Absolutepath $log_dir = '/var/log/foreman-proxy/openbolt',
) {
foreman_proxy::plugin::module { 'openbolt':
template_path => 'foreman_proxy/plugin/openbolt.yml.erb',
enabled => $enabled,
feature => 'OpenBolt',
listen_on => $listen_on,
version => $version,
}
}
32 changes: 32 additions & 0 deletions spec/classes/foreman_proxy__plugin__openbolt_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
require 'spec_helper'

describe 'foreman_proxy::plugin::openbolt' do
on_plugin_os.each do |os, os_facts|
context "on #{os}" do
let(:facts) { os_facts }
let(:pre_condition) { 'include foreman_proxy' }
let(:etc_dir) { '/etc' }

describe 'with default settings' do
it { is_expected.to compile.with_all_deps }
it { is_expected.to contain_foreman_proxy__plugin('openbolt') }
it 'should configure openbolt.yml' do
is_expected.to contain_file("#{etc_dir}/foreman-proxy/settings.d/openbolt.yml")
.with_ensure('file')
.with_owner('root')
.with_group('foreman-proxy')

verify_exact_contents(catalogue, "#{etc_dir}/foreman-proxy/settings.d/openbolt.yml", [
'---',
':enabled: https',
":environment_path: /etc/puppetlabs/code/environments/production",
":workers: 20",
":concurrency: 100",
":connect_timeout: 30",
":log_dir: /var/log/foreman-proxy/openbolt"
])
end
end
end
end
end
8 changes: 8 additions & 0 deletions templates/plugin/openbolt.yml.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# OpenBolt Smart Proxy
---
:enabled: <%= @module_enabled %>
:environment_path: <%= scope.lookupvar("foreman_proxy::plugin::openbolt::environment_path") %>
:workers: <%= scope.lookupvar("foreman_proxy::plugin::openbolt::workers") %>
:concurrency: <%= scope.lookupvar("foreman_proxy::plugin::openbolt::concurrency") %>
:connect_timeout: <%= scope.lookupvar("foreman_proxy::plugin::openbolt::connect_timeout") %>
:log_dir: <%= scope.lookupvar("foreman_proxy::plugin::openbolt::log_dir") %>
Loading