-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Capsule related certs settings #8
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
# Prepare the certificates for the node from the parent node | ||
# | ||
# === Parameters: | ||
# | ||
# $parent_fqdn:: fqdn of the parent node. Does not usually | ||
# need to be set. | ||
# | ||
# $child_fqdn:: fqdn of the child node. REQUIRED | ||
# | ||
# $certs_tar:: path to tar file with certs to generate | ||
# | ||
# $katello_user:: Katello username used for creating repo with certs. | ||
# This param indicates that we want to distribute the certs via | ||
# Katello repo | ||
# | ||
# $katello_password:: Katello password | ||
# | ||
# $katello_org:: Organization name to create a repository in | ||
# | ||
# $katello_repo_provider:: Provider name to create a repository in | ||
# | ||
# $katello_product:: Product name to create a repository in | ||
# | ||
# $katello_activation_key:: Activation key that registers the system | ||
# with access to the cert repo (OPTIONAL) | ||
# | ||
class certs::capsule ( | ||
$parent_fqdn = $fqdn, | ||
$child_fqdn = $certs::params::node_fqdn, | ||
$certs_tar = $certs::params::certs_tar, | ||
$katello_user = $certs::params::katello_user, | ||
$katello_password = $certs::params::katello_password, | ||
$katello_org = $certs::params::katello_org, | ||
$katello_repo_provider = $certs::params::katello_repo_provider, | ||
$katello_product = $certs::params::katello_product, | ||
$katello_activation_key = $certs::params::katello_activation_key | ||
) inherits certs::params { | ||
|
||
validate_present($child_fqdn) | ||
|
||
class { 'certs::puppet': } | ||
class { 'certs::foreman_proxy': } | ||
class { 'certs::apache': } | ||
class { 'certs::pulp_child': } | ||
class { 'certs::pulp_parent': | ||
hostname => $parent_fqdn, | ||
deploy => true, | ||
} | ||
|
||
if $certs_tar { | ||
certs::tar_create { $certs_tar: | ||
subscribe => [Class['certs::puppet'], | ||
Class['certs::foreman'], | ||
Class['certs::foreman_proxy'], | ||
Class['certs::apache'], | ||
Class['certs::pulp_child']] | ||
} | ||
} | ||
|
||
if $katello_user { | ||
|
||
katello_repo { $child_fqdn: | ||
user => $katello_user, | ||
password => $katello_password, | ||
org => $katello_org, | ||
repo_provider => $katello_repo_provider, | ||
product => $katello_product, | ||
package_files => ['/root/ssl-build/*.noarch.rpm', | ||
"/root/ssl-build/${child_fqdn}/*.noarch.rpm"], | ||
subscribe => [Class['certs::puppet'], | ||
Class['certs::foreman'], | ||
Class['certs::foreman_proxy'], | ||
Class['certs::apache'], | ||
Class['certs::pulp_child']], | ||
} | ||
|
||
if $katello_activation_key { | ||
katello_activation_key { $katello_activation_key: | ||
user => $katello_user, | ||
password => $katello_password, | ||
org => $katello_org, | ||
product => $katello_product, | ||
require => Katello_repo[$child_fqdn] | ||
} | ||
} | ||
|
||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -44,5 +44,19 @@ | |
pubkey { $client_ca: | ||
cert => $ca, | ||
} | ||
|
||
$foreman_config_cmd = "${::foreman::app_root}/script/foreman-config\ | ||
-k ssl_ca_file -v '${client_ca}'\ | ||
-k ssl_certificate -v '${client_cert}'\ | ||
-k ssl_priv_key -v '${client_key}'" | ||
exec { 'foreman_certs_config': | ||
environment => ["HOME=${::foreman::app_root}"], | ||
cwd => $::foreman::app_root, | ||
command => $foreman_config_cmd, | ||
unless => "${foreman_config_cmd} --dry-run", | ||
user => $::foreman::user, | ||
require => Class['foreman::service'] | ||
} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This looks like we should add an explicit There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fair enough. My only worry with this being required by one class but ordering ensured by kafo is that it will be easy but not obvious that there is a required ordering. And further, ensuring that that isn't broken. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The only other solution I can think of is having one entry-point class, that would make sure the ordering is right (something the capsule module does), but it has downsides of having to maintain the list of parameters twice: one in the entry class and one in the sub-classes. Therefore, letting kafo to deal with that is better from maintainability POV (not saying it's ideal) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Sounds reasonable given the alternative - ACK |
||
|
||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just to clarify my understanding, this is a username coming from the application itself?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, this are the credentials needed to creating the certificates repositories in Katello and uploading the cert packages