Skip to content

Commit 09e9f9b

Browse files
committed
Refactor krb5 template
1 parent b7ebd93 commit 09e9f9b

File tree

2 files changed

+97
-70
lines changed

2 files changed

+97
-70
lines changed

manifests/provider/krb5.pp

Lines changed: 93 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -45,27 +45,103 @@
4545
Integer $krb5_renew_interval = 0,
4646
Optional[Enum['never','try','demand']] $krb5_use_fast = undef,
4747
) {
48+
# Build configuration content for the Kerberos provider
49+
$_content = [
50+
'# sssd::provider::krb5',
51+
]
52+
53+
# Add conditional parameters if defined in the correct order
54+
if $debug_level {
55+
$_debug_level_entries = ["debug_level = ${debug_level}"]
56+
} else {
57+
$_debug_level_entries = []
58+
}
59+
60+
$_debug_timestamps_entries = $debug_timestamps ? {
61+
true => ['debug_timestamps = true'],
62+
false => ['debug_timestamps = false'],
63+
}
64+
65+
$_debug_microseconds_entries = $debug_microseconds ? {
66+
true => ['debug_microseconds = true'],
67+
false => ['debug_microseconds = false'],
68+
}
69+
70+
if $krb5_server {
71+
$_krb5_server_entries = ["krb5_server = ${krb5_server}"]
72+
} else {
73+
$_krb5_server_entries = []
74+
}
75+
76+
$_krb5_realm_entries = ["krb5_realm = ${krb5_realm}"]
77+
78+
if $krb5_kpasswd {
79+
$_krb5_kpasswd_entries = ["krb5_kpasswd = ${krb5_kpasswd}"]
80+
} else {
81+
$_krb5_kpasswd_entries = []
82+
}
83+
84+
if $krb5_ccachedir {
85+
$_krb5_ccachedir_entries = ["krb5_ccachedir = ${krb5_ccachedir}"]
86+
} else {
87+
$_krb5_ccachedir_entries = []
88+
}
89+
90+
if $krb5_ccname_template {
91+
$_krb5_ccname_template_entries = ["krb5_ccname_template = ${krb5_ccname_template}"]
92+
} else {
93+
$_krb5_ccname_template_entries = []
94+
}
95+
96+
$_krb5_auth_timeout_entries = ["krb5_auth_timeout = ${krb5_auth_timeout}"]
97+
98+
$_krb5_validate_entries = $krb5_validate ? {
99+
true => ['krb5_validate = true'],
100+
false => ['krb5_validate = false'],
101+
}
102+
103+
if $krb5_keytab {
104+
$_krb5_keytab_entries = ["krb5_keytab = ${krb5_keytab}"]
105+
} else {
106+
$_krb5_keytab_entries = []
107+
}
108+
109+
$_krb5_store_password_if_offline_entries = $krb5_store_password_if_offline ? {
110+
true => ['krb5_store_password_if_offline = true'],
111+
false => ['krb5_store_password_if_offline = false'],
112+
}
113+
114+
if $krb5_renewable_lifetime {
115+
$_krb5_renewable_lifetime_entries = ["krb5_renewable_lifetime = ${krb5_renewable_lifetime}"]
116+
} else {
117+
$_krb5_renewable_lifetime_entries = []
118+
}
119+
120+
if $krb5_lifetime {
121+
$_krb5_lifetime_entries = ["krb5_lifetime = ${krb5_lifetime}"]
122+
} else {
123+
$_krb5_lifetime_entries = []
124+
}
125+
126+
$_krb5_renew_interval_entries = ["krb5_renew_interval = ${krb5_renew_interval}"]
127+
128+
if $krb5_use_fast {
129+
$_krb5_use_fast_entries = ["krb5_use_fast = ${krb5_use_fast}"]
130+
} else {
131+
$_krb5_use_fast_entries = []
132+
}
133+
134+
# Combine all configuration entries in the expected order
135+
$_all_entries = $_content + $_debug_level_entries + $_debug_timestamps_entries + $_debug_microseconds_entries + $_krb5_server_entries + $_krb5_realm_entries + $_krb5_kpasswd_entries + $_krb5_ccachedir_entries + $_krb5_ccname_template_entries + $_krb5_auth_timeout_entries + $_krb5_validate_entries + $_krb5_keytab_entries + $_krb5_store_password_if_offline_entries + $_krb5_renewable_lifetime_entries + $_krb5_lifetime_entries + $_krb5_renew_interval_entries + $_krb5_use_fast_entries
136+
137+
$_final_content = $_all_entries.join("\n")
138+
48139
sssd::config::entry { "puppet_provider_${name}_krb5":
49140
content => epp(
50141
"${module_name}/provider/krb5",
51142
{
52-
'domain' => $title,
53-
'krb5_server' => $krb5_server,
54-
'krb5_realm' => $krb5_realm,
55-
'debug_level' => $debug_level,
56-
'debug_timestamps' => $debug_timestamps,
57-
'debug_microseconds' => $debug_microseconds,
58-
'krb5_kpasswd' => $krb5_kpasswd,
59-
'krb5_ccachedir' => $krb5_ccachedir,
60-
'krb5_ccname_template' => $krb5_ccname_template,
61-
'krb5_auth_timeout' => $krb5_auth_timeout,
62-
'krb5_validate' => $krb5_validate,
63-
'krb5_keytab' => $krb5_keytab,
64-
'krb5_store_password_if_offline' => $krb5_store_password_if_offline,
65-
'krb5_renewable_lifetime' => $krb5_renewable_lifetime,
66-
'krb5_lifetime' => $krb5_lifetime,
67-
'krb5_renew_interval' => $krb5_renew_interval,
68-
'krb5_use_fast' => $krb5_use_fast,
143+
'title' => "domain/${title}",
144+
'content' => $_final_content,
69145
},
70146
),
71147
}

templates/provider/krb5.epp

Lines changed: 4 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,6 @@
11
<%- |
2-
String $domain,
3-
Optional[Simplib::Host] $krb5_server = undef,
4-
String $krb5_realm,
5-
Optional[Sssd::DebugLevel] $debug_level = undef,
6-
Boolean $debug_timestamps = true,
7-
Boolean $debug_microseconds = false,
8-
Optional[String] $krb5_kpasswd = undef,
9-
Optional[Stdlib::Absolutepath] $krb5_ccachedir = undef,
10-
Optional[Stdlib::Absolutepath] $krb5_ccname_template = undef,
11-
Integer $krb5_auth_timeout = 15,
12-
Boolean $krb5_validate = false,
13-
Optional[Stdlib::Absolutepath] $krb5_keytab = undef,
14-
Boolean $krb5_store_password_if_offline = false,
15-
Optional[String] $krb5_renewable_lifetime = undef,
16-
Optional[String] $krb5_lifetime = undef,
17-
Integer $krb5_renew_interval = 0,
18-
Optional[Enum['never','try','demand']] $krb5_use_fast = undef
2+
String $title,
3+
String $content,
194
| -%>
20-
[domain/<%= $domain %>]
21-
# sssd::provider::krb5
22-
<% if $debug_level { -%>
23-
debug_level = <%= $debug_level %>
24-
<% } -%>
25-
debug_timestamps = <%= $debug_timestamps %>
26-
debug_microseconds = <%= $debug_microseconds %>
27-
<% if $krb5_server { -%>
28-
krb5_server = <%= $krb5_server %>
29-
<% } -%>
30-
krb5_realm = <%= $krb5_realm %>
31-
<% if $krb5_kpasswd { -%>
32-
krb5_kpasswd = <%= $krb5_kpasswd %>
33-
<% } -%>
34-
<% if $krb5_ccachedir { -%>
35-
krb5_ccachedir = <%= $krb5_ccachedir %>
36-
<% } -%>
37-
<% if $krb5_ccname_template { -%>
38-
krb5_ccname_template = <%= $krb5_ccname_template %>
39-
<% } -%>
40-
krb5_auth_timeout = <%= $krb5_auth_timeout %>
41-
krb5_validate = <%= $krb5_validate %>
42-
<% if $krb5_keytab { -%>
43-
krb5_keytab = <%= $krb5_keytab %>
44-
<% } -%>
45-
krb5_store_password_if_offline = <%= $krb5_store_password_if_offline %>
46-
<% if $krb5_renewable_lifetime { -%>
47-
krb5_renewable_lifetime = <%= $krb5_renewable_lifetime %>
48-
<% } -%>
49-
<% if $krb5_lifetime { -%>
50-
krb5_lifetime = <%= $krb5_lifetime %>
51-
<% } -%>
52-
krb5_renew_interval = <%= $krb5_renew_interval %>
53-
<% if $krb5_use_fast { -%>
54-
krb5_use_fast = <%= $krb5_use_fast %>
55-
<% } -%>
5+
[<%= $title %>]
6+
<%= $content %>

0 commit comments

Comments
 (0)