Skip to content

Commit

Permalink
Refs #32037: Add flag to enable katello_agent infrastructure and disa…
Browse files Browse the repository at this point in the history
…ble it by default
  • Loading branch information
ehelms committed Apr 21, 2021
1 parent f395738 commit bd35bd7
Show file tree
Hide file tree
Showing 5 changed files with 118 additions and 43 deletions.
67 changes: 39 additions & 28 deletions manifests/dispatch_router.pp
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@
#
# @param ssl_protocols
# Protocols to support in dispatch router (e.g. TLSv1.2, etc)
#
# @param ensure
# Specify to explicitly enable Qpid installs or absent to remove all packages and configs
#
class foreman_proxy_content::dispatch_router (
Optional[Stdlib::Host] $agent_addr = undef,
Stdlib::Port $agent_port = 5647,
Expand All @@ -30,43 +34,50 @@
String $logging_level = 'info+',
Enum['file', 'syslog'] $logging = 'syslog',
Stdlib::Absolutepath $logging_path = '/var/log/qdrouterd',

Enum['present', 'absent'] $ensure = 'present',
) {

class { 'qpid::router':
ensure => $ensure,
}
contain qpid::router

include certs::qpid_router::server
if $ensure == 'present' {
include certs::qpid_router::server

qpid::router::ssl_profile { 'server':
ca => $certs::ca_cert,
cert => $certs::qpid_router::server::cert,
key => $certs::qpid_router::server::key,
ciphers => $ssl_ciphers,
protocols => $ssl_protocols,
subscribe => Class['certs::qpid_router::server'],
}
qpid::router::ssl_profile { 'server':
ca => $certs::ca_cert,
cert => $certs::qpid_router::server::cert,
key => $certs::qpid_router::server::key,
ciphers => $ssl_ciphers,
protocols => $ssl_protocols,
subscribe => Class['certs::qpid_router::server'],
}

# Listen for katello-agent clients
qpid::router::listener { 'clients':
host => $agent_addr,
port => $agent_port,
ssl_profile => 'server',
}
# Listen for katello-agent clients
qpid::router::listener { 'clients':
host => $agent_addr,
port => $agent_port,
ssl_profile => 'server',
}

# Enable logging to syslog or file
if $logging == 'file' {
file { $logging_path:
ensure => directory,
owner => 'qdrouterd',
# Enable logging to syslog or file
if $logging == 'file' {
file { $logging_path:
ensure => directory,
owner => 'qdrouterd',
}
}
}

$output_real = $logging ? {
'file' => "${logging_path}/qdrouterd.log",
'syslog' => 'syslog',
}
$output_real = $logging ? {
'file' => "${logging_path}/qdrouterd.log",
'syslog' => 'syslog',
}

qpid::router::log { 'logging':
level => $logging_level,
output => $output_real,
qpid::router::log { 'logging':
level => $logging_level,
output => $output_real,
}
}
}
30 changes: 16 additions & 14 deletions manifests/init.pp
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
#
# $enable_deb:: Enable debian content plugin
#
# $enable_katello_agent:: Enable katello-agent for remote yum actions
#
# $pulpcore_mirror:: Deploy Pulp to be used as a mirror
#
# === Advanced parameters:
Expand All @@ -22,8 +24,6 @@
#
# $reverse_proxy_port:: Reverse proxy listening port
#
# $qpid_router:: Configure qpid dispatch router
#
# $qpid_router_hub_addr:: Address for dispatch router hub
#
# $qpid_router_hub_port:: Port for dispatch router hub
Expand Down Expand Up @@ -87,7 +87,6 @@
Boolean $reverse_proxy = false,
Stdlib::Port $reverse_proxy_port = 8443,

Boolean $qpid_router = true,
Optional[String] $qpid_router_hub_addr = undef,
Stdlib::Port $qpid_router_hub_port = 5646,
Optional[String] $qpid_router_agent_addr = undef,
Expand All @@ -105,6 +104,8 @@
Boolean $enable_docker = true,
Boolean $enable_deb = true,

Boolean $enable_katello_agent = false,

Boolean $pulpcore_manage_postgresql = true,
Stdlib::Host $pulpcore_postgresql_host = 'localhost',
Stdlib::Port $pulpcore_postgresql_port = 5432,
Expand Down Expand Up @@ -155,18 +156,19 @@

include foreman_proxy_content::pub_dir

if $qpid_router {
class { 'foreman_proxy_content::dispatch_router':
agent_addr => $qpid_router_agent_addr,
agent_port => $qpid_router_agent_port,
ssl_ciphers => $qpid_router_ssl_ciphers,
ssl_protocols => $qpid_router_ssl_protocols,
logging_level => $qpid_router_logging_level,
logging => $qpid_router_logging,
logging_path => $qpid_router_logging_path,
}
contain foreman_proxy_content::dispatch_router
class { 'foreman_proxy_content::dispatch_router':
ensure => bool2str($enable_katello_agent, 'present', 'absent'),
agent_addr => $qpid_router_agent_addr,
agent_port => $qpid_router_agent_port,
ssl_ciphers => $qpid_router_ssl_ciphers,
ssl_protocols => $qpid_router_ssl_protocols,
logging_level => $qpid_router_logging_level,
logging => $qpid_router_logging,
logging_path => $qpid_router_logging_path,
}
contain foreman_proxy_content::dispatch_router

if $enable_katello_agent {
if $pulpcore_mirror {
class { 'foreman_proxy_content::dispatch_router::connector':
host => $foreman_host,
Expand Down
2 changes: 1 addition & 1 deletion metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
},
{
"name": "katello/qpid",
"version_requirement": ">= 4.5.0 < 9.0.0"
"version_requirement": ">= 8.0.0 < 9.0.0"
},
{
"name": "katello/certs",
Expand Down
43 changes: 43 additions & 0 deletions spec/acceptance/dispatch_router_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
require 'spec_helper_acceptance'

describe 'dispatch_router' do
context 'with default parameters' do
let(:pp) do
<<-PUPPET
include foreman_proxy_content::dispatch_router
PUPPET
end

it_behaves_like 'a idempotent resource'

describe service('qdrouterd') do
it { is_expected.to be_running }
it { is_expected.to be_enabled }
end

describe port('5647') do
it { is_expected.to be_listening }
end
end

context 'with ensure absent' do
let(:pp) do
<<-PUPPET
class { 'foreman_proxy_content::dispatch_router':
ensure => 'absent',
}
PUPPET
end

it_behaves_like 'a idempotent resource'

describe service('qdrouterd') do
it { is_expected.not_to be_running }
it { is_expected.not_to be_enabled }
end

describe port('5647') do
it { is_expected.not_to be_listening }
end
end
end
19 changes: 19 additions & 0 deletions spec/setup_acceptance_node.pp
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,22 @@
package { 'policycoreutils':
ensure => installed,
}

if $facts['os']['release']['major'] == '8' {
package { 'glibc-langpack-en':
ensure => installed,
}

yumrepo { 'powertools':
enabled => true,
}

yumrepo { 'katello':
baseurl => "http://yum.theforeman.org/katello/nightly/katello/el8/x86_64/",
gpgcheck => 0,
}
} elsif $facts['os']['release']['major'] == '7' {
package { 'epel-release':
ensure => installed,
}
}

0 comments on commit bd35bd7

Please sign in to comment.