Skip to content

Commit c4628ea

Browse files
committed
Accept Puppet-Datatype Sensitive
- let the Hash containing the Secrets for the Keystore accept Secrets of Datatype Sensitive - fix a 15-Months-old Typo-Bug - let api_basic_auth_password also be of Type Sensitive
1 parent ae40a0e commit c4628ea

File tree

7 files changed

+102
-68
lines changed

7 files changed

+102
-68
lines changed

manifests/config.pp

+5-1
Original file line numberDiff line numberDiff line change
@@ -221,10 +221,14 @@
221221

222222
# Add secrets to keystore
223223
if $elasticsearch::secrets != undef {
224+
# unwrap Secrets of Datatype Sensitive
225+
$secrets = $elasticsearch::secrets.reduce( {}) |Hash $memo, Array $value| {
226+
$memo + { $value[0] => if $value[1] =~ Sensitive { $value[1].unwrap } else { $value[1] } }
227+
}
224228
elasticsearch_keystore { 'elasticsearch_secrets':
225229
configdir => $elasticsearch::configdir,
226230
purge => $elasticsearch::purge_secrets,
227-
settings => $elasticsearch::secrets,
231+
settings => $secrets,
228232
notify => $elasticsearch::_notify_service,
229233
}
230234
}

manifests/index.pp

+18-12
Original file line numberDiff line numberDiff line change
@@ -43,18 +43,24 @@
4343
# @author Tyler Langlois <[email protected]>
4444
#
4545
define elasticsearch::index (
46-
Enum['absent', 'present'] $ensure = 'present',
47-
Optional[String] $api_basic_auth_password = $elasticsearch::api_basic_auth_password,
48-
Optional[String] $api_basic_auth_username = $elasticsearch::api_basic_auth_username,
49-
Optional[Stdlib::Absolutepath] $api_ca_file = $elasticsearch::api_ca_file,
50-
Optional[Stdlib::Absolutepath] $api_ca_path = $elasticsearch::api_ca_path,
51-
String $api_host = $elasticsearch::api_host,
52-
Integer[0, 65535] $api_port = $elasticsearch::api_port,
53-
Enum['http', 'https'] $api_protocol = $elasticsearch::api_protocol,
54-
Integer $api_timeout = $elasticsearch::api_timeout,
55-
Hash $settings = {},
56-
Boolean $validate_tls = $elasticsearch::validate_tls,
46+
Enum['absent', 'present'] $ensure = 'present',
47+
Optional[Variant[String, Sensitive[String]]] $api_basic_auth_password = $elasticsearch::api_basic_auth_password,
48+
Optional[String] $api_basic_auth_username = $elasticsearch::api_basic_auth_username,
49+
Optional[Stdlib::Absolutepath] $api_ca_file = $elasticsearch::api_ca_file,
50+
Optional[Stdlib::Absolutepath] $api_ca_path = $elasticsearch::api_ca_path,
51+
String $api_host = $elasticsearch::api_host,
52+
Integer[0, 65535] $api_port = $elasticsearch::api_port,
53+
Enum['http', 'https'] $api_protocol = $elasticsearch::api_protocol,
54+
Integer $api_timeout = $elasticsearch::api_timeout,
55+
Hash $settings = {},
56+
Boolean $validate_tls = $elasticsearch::validate_tls,
5757
) {
58+
$api_basic_auth_password_unsensitive = if $api_basic_auth_password =~ Sensitive {
59+
$api_basic_auth_password.unwrap
60+
} else {
61+
$api_basic_auth_password
62+
}
63+
5864
es_instance_conn_validator { "${name}-index-conn-validator":
5965
server => $api_host,
6066
port => $api_port,
@@ -68,7 +74,7 @@
6874
port => $api_port,
6975
timeout => $api_timeout,
7076
username => $api_basic_auth_username,
71-
password => $api_basic_auth_password,
77+
password => $api_basic_auth_password_unsensitive,
7278
ca_file => $api_ca_file,
7379
ca_path => $api_ca_path,
7480
validate_tls => $validate_tls,

manifests/init.pp

+1-1
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@
349349
#
350350
class elasticsearch (
351351
Enum['absent', 'present'] $ensure,
352-
Optional[String] $api_basic_auth_password,
352+
Optional[Variant[String, Sensitive[String]]] $api_basic_auth_password,
353353
Optional[String] $api_basic_auth_username,
354354
Optional[String] $api_ca_file,
355355
Optional[String] $api_ca_path,

manifests/license.pp

+18-12
Original file line numberDiff line numberDiff line change
@@ -42,18 +42,24 @@
4242
# @author Tyler Langlois <[email protected]>
4343
#
4444
class elasticsearch::license (
45-
Enum['absent', 'present'] $ensure = 'present',
46-
Optional[String] $api_basic_auth_password = $elasticsearch::api_basic_auth_password,
47-
Optional[String] $api_basic_auth_username = $elasticsearch::api_basic_auth_username,
48-
Optional[Stdlib::Absolutepath] $api_ca_file = $elasticsearch::api_ca_file,
49-
Optional[Stdlib::Absolutepath] $api_ca_path = $elasticsearch::api_ca_path,
50-
String $api_host = $elasticsearch::api_host,
51-
Integer[0, 65535] $api_port = $elasticsearch::api_port,
52-
Enum['http', 'https'] $api_protocol = $elasticsearch::api_protocol,
53-
Integer $api_timeout = $elasticsearch::api_timeout,
54-
Variant[String, Hash] $content = $elasticsearch::license,
55-
Boolean $validate_tls = $elasticsearch::validate_tls,
45+
Enum['absent', 'present'] $ensure = 'present',
46+
Optional[Variant[String, Sensitive[String]]] $api_basic_auth_password = $elasticsearch::api_basic_auth_password,
47+
Optional[String] $api_basic_auth_username = $elasticsearch::api_basic_auth_username,
48+
Optional[Stdlib::Absolutepath] $api_ca_file = $elasticsearch::api_ca_file,
49+
Optional[Stdlib::Absolutepath] $api_ca_path = $elasticsearch::api_ca_path,
50+
String $api_host = $elasticsearch::api_host,
51+
Integer[0, 65535] $api_port = $elasticsearch::api_port,
52+
Enum['http', 'https'] $api_protocol = $elasticsearch::api_protocol,
53+
Integer $api_timeout = $elasticsearch::api_timeout,
54+
Variant[String, Hash] $content = $elasticsearch::license,
55+
Boolean $validate_tls = $elasticsearch::validate_tls,
5656
) {
57+
$api_basic_auth_password_unsensitive = if $api_basic_auth_password =~ Sensitive {
58+
$api_basic_auth_password.unwrap
59+
} else {
60+
$api_basic_auth_password
61+
}
62+
5763
if $content =~ String {
5864
$_content = parsejson($content)
5965
} else {
@@ -80,7 +86,7 @@
8086
port => $api_port,
8187
timeout => $api_timeout,
8288
username => $api_basic_auth_username,
83-
password => $api_basic_auth_password,
89+
password => $api_basic_auth_password_unsensitive,
8490
ca_file => $api_ca_file,
8591
ca_path => $api_ca_path,
8692
validate_tls => $validate_tls,

manifests/pipeline.pp

+18-12
Original file line numberDiff line numberDiff line change
@@ -45,18 +45,24 @@
4545
# @author Tyler Langlois <[email protected]>
4646
#
4747
define elasticsearch::pipeline (
48-
Enum['absent', 'present'] $ensure = 'present',
49-
Optional[String] $api_basic_auth_password = $elasticsearch::api_basic_auth_password,
50-
Optional[String] $api_basic_auth_username = $elasticsearch::api_basic_auth_username,
51-
Optional[Stdlib::Absolutepath] $api_ca_file = $elasticsearch::api_ca_file,
52-
Optional[Stdlib::Absolutepath] $api_ca_path = $elasticsearch::api_ca_path,
53-
String $api_host = $elasticsearch::api_host,
54-
Integer[0, 65535] $api_port = $elasticsearch::api_port,
55-
Enum['http', 'https'] $api_protocol = $elasticsearch::api_protocol,
56-
Integer $api_timeout = $elasticsearch::api_timeout,
57-
Hash $content = {},
58-
Boolean $validate_tls = $elasticsearch::validate_tls,
48+
Enum['absent', 'present'] $ensure = 'present',
49+
Optional[Variant[String, Sensitive[String]]] $api_basic_auth_password = $elasticsearch::api_basic_auth_password,
50+
Optional[String] $api_basic_auth_username = $elasticsearch::api_basic_auth_username,
51+
Optional[Stdlib::Absolutepath] $api_ca_file = $elasticsearch::api_ca_file,
52+
Optional[Stdlib::Absolutepath] $api_ca_path = $elasticsearch::api_ca_path,
53+
String $api_host = $elasticsearch::api_host,
54+
Integer[0, 65535] $api_port = $elasticsearch::api_port,
55+
Enum['http', 'https'] $api_protocol = $elasticsearch::api_protocol,
56+
Integer $api_timeout = $elasticsearch::api_timeout,
57+
Hash $content = {},
58+
Boolean $validate_tls = $elasticsearch::validate_tls,
5959
) {
60+
$api_basic_auth_password_unsensitive = if $api_basic_auth_password =~ Sensitive {
61+
$api_basic_auth_password.unwrap
62+
} else {
63+
$api_basic_auth_password
64+
}
65+
6066
es_instance_conn_validator { "${name}-ingest-pipeline":
6167
server => $api_host,
6268
port => $api_port,
@@ -70,7 +76,7 @@
7076
port => $api_port,
7177
timeout => $api_timeout,
7278
username => $api_basic_auth_username,
73-
password => $api_basic_auth_password,
79+
password => $api_basic_auth_password_unsensitive,
7480
ca_file => $api_ca_file,
7581
ca_path => $api_ca_path,
7682
validate_tls => $validate_tls,

manifests/snapshot_repository.pp

+23-17
Original file line numberDiff line numberDiff line change
@@ -60,23 +60,29 @@
6060
# @author Tyler Langlois <[email protected]>
6161
#
6262
define elasticsearch::snapshot_repository (
63-
String $location,
64-
Enum['absent', 'present'] $ensure = 'present',
65-
Optional[String] $api_basic_auth_password = $elasticsearch::api_basic_auth_password,
66-
Optional[String] $api_basic_auth_username = $elasticsearch::api_basic_auth_username,
67-
Optional[Stdlib::Absolutepath] $api_ca_file = $elasticsearch::api_ca_file,
68-
Optional[Stdlib::Absolutepath] $api_ca_path = $elasticsearch::api_ca_path,
69-
String $api_host = $elasticsearch::api_host,
70-
Integer[0, 65535] $api_port = $elasticsearch::api_port,
71-
Enum['http', 'https'] $api_protocol = $elasticsearch::api_protocol,
72-
Integer $api_timeout = $elasticsearch::api_timeout,
73-
Boolean $compress = true,
74-
Optional[String] $chunk_size = undef,
75-
Optional[String] $max_restore_rate = undef,
76-
Optional[String] $max_snapshot_rate = undef,
77-
Optional[String] $repository_type = undef,
78-
Boolean $validate_tls = $elasticsearch::validate_tls,
63+
String $location,
64+
Enum['absent', 'present'] $ensure = 'present',
65+
Optional[Variant[String, Sensitive[String]]] $api_basic_auth_password = $elasticsearch::api_basic_auth_password,
66+
Optional[String] $api_basic_auth_username = $elasticsearch::api_basic_auth_username,
67+
Optional[Stdlib::Absolutepath] $api_ca_file = $elasticsearch::api_ca_file,
68+
Optional[Stdlib::Absolutepath] $api_ca_path = $elasticsearch::api_ca_path,
69+
String $api_host = $elasticsearch::api_host,
70+
Integer[0, 65535] $api_port = $elasticsearch::api_port,
71+
Enum['http', 'https'] $api_protocol = $elasticsearch::api_protocol,
72+
Integer $api_timeout = $elasticsearch::api_timeout,
73+
Boolean $compress = true,
74+
Optional[String] $chunk_size = undef,
75+
Optional[String] $max_restore_rate = undef,
76+
Optional[String] $max_snapshot_rate = undef,
77+
Optional[String] $repository_type = undef,
78+
Boolean $validate_tls = $elasticsearch::validate_tls,
7979
) {
80+
$api_basic_auth_password_unsensitive = if $api_basic_auth_password =~ Sensitive {
81+
$api_basic_auth_password.unwrap
82+
} else {
83+
$api_basic_auth_password
84+
}
85+
8086
es_instance_conn_validator { "${name}-snapshot":
8187
server => $api_host,
8288
port => $api_port,
@@ -95,7 +101,7 @@
95101
port => $api_port,
96102
timeout => $api_timeout,
97103
username => $api_basic_auth_username,
98-
password => $api_basic_auth_password,
104+
password => $api_basic_auth_password_unsensitive,
99105
ca_file => $api_ca_file,
100106
ca_path => $api_ca_path,
101107
validate_tls => $validate_tls,

manifests/template.pp

+19-13
Original file line numberDiff line numberDiff line change
@@ -53,19 +53,25 @@
5353
# @author Tyler Langlois <[email protected]>
5454
#
5555
define elasticsearch::template (
56-
Enum['absent', 'present'] $ensure = 'present',
57-
Optional[String] $api_basic_auth_password = $elasticsearch::api_basic_auth_password,
58-
Optional[String] $api_basic_auth_username = $elasticsearch::api_basic_auth_username,
59-
Optional[Stdlib::Absolutepath] $api_ca_file = $elasticsearch::api_ca_file,
60-
Optional[Stdlib::Absolutepath] $api_ca_path = $elasticsearch::api_ca_path,
61-
String $api_host = $elasticsearch::api_host,
62-
Integer[0, 65535] $api_port = $elasticsearch::api_port,
63-
Enum['http', 'https'] $api_protocol = $elasticsearch::api_protocol,
64-
Integer $api_timeout = $elasticsearch::api_timeout,
65-
Optional[Variant[String, Hash]] $content = undef,
66-
Optional[String] $source = undef,
67-
Boolean $validate_tls = $elasticsearch::validate_tls,
56+
Enum['absent', 'present'] $ensure = 'present',
57+
Optional[Variant[String, Sensitive[String]]] $api_basic_auth_password = $elasticsearch::api_basic_auth_password,
58+
Optional[String] $api_basic_auth_username = $elasticsearch::api_basic_auth_username,
59+
Optional[Stdlib::Absolutepath] $api_ca_file = $elasticsearch::api_ca_file,
60+
Optional[Stdlib::Absolutepath] $api_ca_path = $elasticsearch::api_ca_path,
61+
String $api_host = $elasticsearch::api_host,
62+
Integer[0, 65535] $api_port = $elasticsearch::api_port,
63+
Enum['http', 'https'] $api_protocol = $elasticsearch::api_protocol,
64+
Integer $api_timeout = $elasticsearch::api_timeout,
65+
Optional[Variant[String, Hash]] $content = undef,
66+
Optional[String] $source = undef,
67+
Boolean $validate_tls = $elasticsearch::validate_tls,
6868
) {
69+
$api_basic_auth_password_unsensitive = if $api_basic_auth_password =~ Sensitive {
70+
$api_basic_auth_password.unwrap
71+
} else {
72+
$api_basic_auth_password
73+
}
74+
6975
if $content =~ String {
7076
$_content = parsejson($content)
7177
} else {
@@ -92,7 +98,7 @@
9298
port => $api_port,
9399
timeout => $api_timeout,
94100
username => $api_basic_auth_username,
95-
password => $api_basic_auth_password,
101+
password => $api_basic_auth_password_unsensitive,
96102
ca_file => $api_ca_file,
97103
ca_path => $api_ca_path,
98104
validate_tls => $validate_tls,

0 commit comments

Comments
 (0)