Skip to content

Commit c730e80

Browse files
authored
Merge pull request #772 from cultuurnet/feature/OPS-1444
Differentiate between default and previous maximum heap size
2 parents df17be0 + 807796b commit c730e80

File tree

11 files changed

+342
-253
lines changed

11 files changed

+342
-253
lines changed

manifests/glassfish/domain.pp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
Enum['present', 'absent'] $ensure = 'present',
33
Enum['running', 'stopped'] $service_status = 'running',
44
Optional[String] $initial_heap_size = undef,
5-
Optional[String] $maximum_heap_size = undef,
5+
String $maximum_heap_size = '512m',
66
Boolean $jmx = true,
77
Boolean $newrelic = false,
88
Optional[String] $newrelic_license_key = undef,

manifests/glassfish/domain/heap.pp

Lines changed: 34 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
define profiles::glassfish::domain::heap (
22
Optional[String] $initial_size = undef,
3-
Optional[String] $maximum_size = undef,
4-
Integer $portbase = 4800
3+
String $maximum_size = '512m',
4+
Integer $portbase = 4800
55
) {
66

77
include ::profiles
@@ -20,58 +20,54 @@
2020
jvmoption { "Domain ${title} initial heap jvmoption":
2121
ensure => 'present',
2222
option => "-Xms${initial_size}",
23+
before => File["Domain ${title} heap external facts"],
2324
* => $jvmoption_default_attributes
2425
}
25-
}
2626

27-
if fact("glassfish.$title.heap.initial_size") {
28-
if !($initial_size == $facts['glassfish'][$title]['heap']['initial_size']) {
27+
if fact("glassfish.$title.heap.initial_size") {
28+
if !($initial_size == $facts['glassfish'][$title]['heap']['initial_size']) {
29+
jvmoption { "Domain ${title} previous initial heap jvmoption removal":
30+
ensure => 'absent',
31+
option => "-Xms${facts['glassfish'][$title]['heap']['initial_size']}",
32+
before => [Jvmoption["Domain ${title} initial heap jvmoption"], File["Domain ${title} heap external facts"]],
33+
* => $jvmoption_default_attributes
34+
}
35+
}
36+
}
37+
} else {
38+
if fact("glassfish.$title.heap.initial_size") {
2939
jvmoption { "Domain ${title} previous initial heap jvmoption removal":
3040
ensure => 'absent',
3141
option => "-Xms${facts['glassfish'][$title]['heap']['initial_size']}",
42+
before => File["Domain ${title} heap external facts"],
3243
* => $jvmoption_default_attributes
3344
}
3445
}
3546
}
3647

37-
if $maximum_size {
38-
jvmoption { "Domain ${title} maximum heap jvmoption":
39-
ensure => 'present',
40-
option => "-Xmx${maximum_size}",
41-
* => $jvmoption_default_attributes
42-
}
48+
jvmoption { "Domain ${title} maximum heap jvmoption":
49+
ensure => 'present',
50+
option => "-Xmx${maximum_size}",
51+
before => File["Domain ${title} heap external facts"],
52+
* => $jvmoption_default_attributes
53+
}
4354

44-
if fact("glassfish.$title.heap.maximum_size") {
45-
if !($maximum_size == $facts['glassfish'][$title]['heap']['maximum_size']) {
46-
jvmoption { "Domain ${title} previous maximum heap jvmoption removal":
47-
ensure => 'absent',
48-
option => "-Xmx${facts['glassfish'][$title]['heap']['maximum_size']}",
49-
* => $jvmoption_default_attributes
50-
}
51-
}
52-
} else {
53-
if !($maximum_size == $default_maximum_size) {
54-
jvmoption { "Domain ${title} previous maximum heap jvmoption removal":
55-
ensure => 'absent',
56-
option => "-Xmx${default_maximum_size}",
57-
* => $jvmoption_default_attributes
58-
}
59-
}
60-
}
61-
} else {
62-
jvmoption { "Domain ${title} maximum heap jvmoption":
63-
ensure => 'present',
55+
if !($maximum_size == $default_maximum_size) {
56+
jvmoption { "Domain ${title} default maximum heap jvmoption removal":
57+
ensure => 'absent',
6458
option => "-Xmx${default_maximum_size}",
59+
before => [Jvmoption["Domain ${title} maximum heap jvmoption"], File["Domain ${title} heap external facts"]],
6560
* => $jvmoption_default_attributes
6661
}
62+
}
6763

68-
if fact("glassfish.$title.heap.maximum_size") {
69-
if !($default_maximum_size == $facts['glassfish'][$title]['heap']['maximum_size']) {
70-
jvmoption { "Domain ${title} previous maximum heap jvmoption removal":
71-
ensure => 'absent',
72-
option => "-Xmx${facts['glassfish'][$title]['heap']['maximum_size']}",
73-
* => $jvmoption_default_attributes
74-
}
64+
if fact("glassfish.$title.heap.maximum_size") {
65+
if !($maximum_size == $facts['glassfish'][$title]['heap']['maximum_size']) {
66+
jvmoption { "Domain ${title} previous maximum heap jvmoption removal":
67+
ensure => 'absent',
68+
option => "-Xmx${facts['glassfish'][$title]['heap']['maximum_size']}",
69+
before => [Jvmoption["Domain ${title} maximum heap jvmoption"], File["Domain ${title} heap external facts"]],
70+
* => $jvmoption_default_attributes
7571
}
7672
}
7773
}

manifests/uitid/api.pp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
String $database_host = '127.0.0.1',
44
Boolean $deployment = true,
55
Optional[String] $initial_heap_size = undef,
6-
Optional[String] $maximum_heap_size = undef,
6+
String $maximum_heap_size = '512m',
77
Boolean $jmx = true,
88
Boolean $newrelic = false,
99
Optional[String] $newrelic_license_key = lookup('data::newrelic::license_key', Optional[String], 'first', undef),
@@ -132,6 +132,7 @@
132132
Package['mysql-connector-j'] -> Class['profiles::uitid::api::deployment']
133133
File['Domain uitid mysql-connector-j'] -> Class['profiles::uitid::api::deployment']
134134
Profiles::Mysql::App_user["${database_user}@${database_name}"] -> Class['profiles::uitid::api::deployment']
135+
Profiles::Glassfish::Domain['uitid'] -> Class['profiles::uitid::api::deployment']
135136
Class['profiles::uitid::api::deployment'] ~> Service['uitid']
136137
}
137138
}

manifests/uitid/mailing.pp

Lines changed: 68 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,59 @@
11
class profiles::uitid::mailing (
2-
String $servername,
3-
Variant[String,Array[String]] $serveraliases = [],
4-
String $database_password,
5-
String $database_host = '127.0.0.1',
6-
String $config_source,
7-
String $version = 'latest',
8-
String $repository = 'uitid-mailing',
9-
Boolean $deployment = true,
10-
Boolean $cron_enabled = true,
11-
Optional[String] $initial_heap_size = undef,
12-
Optional[String] $maximum_heap_size = undef,
13-
String $mailing_render_cron_schedule,
14-
String $mailing_status_cron_schedule,
15-
Boolean $jmx = true,
16-
Integer $portbase = 4800,
17-
Enum['running', 'stopped'] $service_status = 'running',
18-
Hash $settings = {}
2+
String $servername,
3+
String $config_source,
4+
String $database_password,
5+
String $mailing_render_cron_schedule,
6+
String $mailing_status_cron_schedule,
7+
String $database_host = '127.0.0.1',
8+
String $version = 'latest',
9+
Variant[String,Array[String]] $serveraliases = [],
10+
String $repository = 'uitid-mailing',
11+
Boolean $deployment = true,
12+
Boolean $cron_enabled = true,
13+
Optional[String] $initial_heap_size = undef,
14+
String $maximum_heap_size = '512m',
15+
Boolean $jmx = true,
16+
Integer $portbase = 4800,
17+
Enum['running', 'stopped'] $service_status = 'running',
18+
Hash $settings = {}
1919

2020
) inherits profiles {
21+
2122
$database_name = 'uitid_mailing'
2223
$database_user = 'uitid_mailing'
24+
$database_host_remote = true
2325
$glassfish_domain_http_port = $portbase + 80
2426
$default_attributes = {
25-
user => 'glassfish',
26-
passwordfile => '/home/glassfish/asadmin.pass',
27-
portbase => String($portbase),
27+
user => 'glassfish',
28+
passwordfile => '/home/glassfish/asadmin.pass',
29+
portbase => String($portbase)
30+
}
31+
32+
if $facts['mysqld_version'] {
33+
$database_host_available = true
34+
} else {
35+
$database_host_available = false
2836
}
2937

3038
include profiles::apache
3139
include profiles::java
3240
include profiles::glassfish
3341

34-
profiles::apache::vhost::reverse_proxy { "http://${servername}":
35-
destination => "http://127.0.0.1:${glassfish_domain_http_port}/",
36-
aliases => $serveraliases,
37-
preserve_host => true,
38-
}
42+
realize Group['glassfish']
43+
realize User['glassfish']
3944

40-
$database_host_remote = true
45+
realize Apt::Source['publiq-tools']
46+
realize Package['mysql-connector-j']
4147

4248
class { 'profiles::mysql::remote_server':
43-
host => $database_host,
49+
host => $database_host
4450
}
4551

46-
if $facts['mysqld_version'] {
47-
$database_host_available = true
48-
} else {
49-
$database_host_available = false
52+
profiles::apache::vhost::reverse_proxy { "http://${servername}":
53+
destination => "http://127.0.0.1:${glassfish_domain_http_port}/",
54+
aliases => $serveraliases,
55+
preserve_host => true
5056
}
51-
realize Group['glassfish']
52-
realize User['glassfish']
53-
54-
realize Apt::Source['publiq-tools']
55-
realize Package['mysql-connector-j']
5657

5758
profiles::glassfish::domain { 'uitid-mailing':
5859
portbase => $portbase,
@@ -61,46 +62,46 @@
6162
jmx => $jmx,
6263
service_status => $service_status,
6364
require => Class['profiles::glassfish'],
64-
notify => Service['uitid-mailing'],
65+
notify => Service['uitid-mailing']
6566
}
6667

6768
if $database_host_available {
6869
mysql_database { $database_name:
6970
charset => 'utf8mb4',
70-
collate => 'utf8mb4_unicode_ci',
71+
collate => 'utf8mb4_unicode_ci'
7172
}
7273

7374
profiles::mysql::app_user { "${database_user}@${database_name}":
7475
password => $database_password,
7576
remote => $database_host_remote,
76-
require => Mysql_database[$database_name],
77+
require => Mysql_database[$database_name]
7778
}
7879

7980
jdbcconnectionpool { 'mysql_uitid_mailing_j2eePool':
8081
ensure => 'present',
8182
resourcetype => 'javax.sql.DataSource',
8283
dsclassname => 'com.mysql.cj.jdbc.MysqlDataSource',
8384
properties => {
84-
'serverName' => $database_host,
85-
'portNumber' => '3306',
86-
'databaseName' => $database_name,
87-
'User' => $database_user,
88-
'Password' => $database_password,
89-
'URL' => "jdbc:mysql://${database_host}:3306/${database_name}",
90-
'driverClass' => 'com.mysql.cj.jdbc.Driver',
91-
'characterEncoding' => 'UTF-8',
92-
'useUnicode' => true,
93-
'useSSL' => false,
94-
},
85+
'serverName' => $database_host,
86+
'portNumber' => '3306',
87+
'databaseName' => $database_name,
88+
'User' => $database_user,
89+
'Password' => $database_password,
90+
'URL' => "jdbc:mysql://${database_host}:3306/${database_name}",
91+
'driverClass' => 'com.mysql.cj.jdbc.Driver',
92+
'characterEncoding' => 'UTF-8',
93+
'useUnicode' => true,
94+
'useSSL' => false
95+
},
9596
require => [Profiles::Glassfish::Domain['uitid-mailing'], Profiles::Mysql::App_user["${database_user}@${database_name}"]],
96-
* => $default_attributes,
97+
* => $default_attributes
9798
}
9899

99100
jdbcresource { 'jdbc/mailing':
100101
ensure => 'present',
101102
connectionpool => 'mysql_uitid_mailing_j2eePool',
102103
require => Jdbcconnectionpool['mysql_uitid_mailing_j2eePool'],
103-
* => $default_attributes,
104+
* => $default_attributes
104105
}
105106

106107
if $deployment {
@@ -116,47 +117,49 @@
116117
Package['mysql-connector-j'] -> Class['profiles::uitid::mailing::deployment']
117118
File['Domain uitid-mailing mysql-connector-j'] -> Class['profiles::uitid::mailing::deployment']
118119
Profiles::Mysql::App_user["${database_user}@${database_name}"] -> Class['profiles::uitid::mailing::deployment']
120+
Profiles::Glassfish::Domain['uitid-mailing'] -> Class['profiles::uitid::mailing::deployment']
119121
Class['profiles::uitid::mailing::deployment'] ~> Service['uitid-mailing']
120122
}
121123
}
124+
122125
set { 'server.network-config.protocols.protocol.http-listener-1.http.scheme-mapping':
123126
ensure => 'present',
124127
value => 'X-Forwarded-Proto',
125128
require => Profiles::Glassfish::Domain['uitid-mailing'],
126129
notify => Service['uitid-mailing'],
127-
* => $default_attributes,
130+
* => $default_attributes
128131
}
129132

130133
set { 'server.thread-pools.thread-pool.http-thread-pool.max-thread-pool-size':
131134
ensure => 'present',
132135
value => '32',
133136
require => Profiles::Glassfish::Domain['uitid-mailing'],
134137
notify => Service['uitid-mailing'],
135-
* => $default_attributes,
138+
* => $default_attributes
136139
}
137140

138141
jvmoption { 'Clear domain uitid-mailing default truststore':
139142
ensure => 'absent',
140143
option => '-Djavax.net.ssl.trustStore=\$\{com.sun.aas.instanceRoot\}/config/cacerts.jks',
141144
require => Profiles::Glassfish::Domain['uitid-mailing'],
142145
notify => Service['uitid-mailing'],
143-
* => $default_attributes,
146+
* => $default_attributes
144147
}
145148

146149
jvmoption { 'Domain uitid-mailing truststore':
147150
ensure => 'present',
148151
option => '-Djavax.net.ssl.trustStore=/etc/ssl/certs/java/cacerts',
149152
require => Profiles::Glassfish::Domain['uitid-mailing'],
150153
notify => Service['uitid-mailing'],
151-
* => $default_attributes,
154+
* => $default_attributes
152155
}
153156

154157
jvmoption { 'Domain uitid-mailing timezone':
155158
ensure => 'present',
156159
option => '-Duser.timezone=CET',
157160
require => Profiles::Glassfish::Domain['uitid-mailing'],
158161
notify => Service['uitid-mailing'],
159-
* => $default_attributes,
162+
* => $default_attributes
160163
}
161164

162165
$settings.each |$name, $value| {
@@ -165,28 +168,29 @@
165168
value => $value,
166169
require => Profiles::Glassfish::Domain['uitid-mailing'],
167170
notify => Service['uitid-mailing'],
168-
* => $default_attributes,
171+
* => $default_attributes
169172
}
170173
}
174+
171175
profiles::glassfish::domain::service_alias { 'uitid-mailing':
172-
require => Profiles::Glassfish::Domain['uitid-mailing'],
176+
require => Profiles::Glassfish::Domain['uitid-mailing']
173177
}
174178

175179
service { 'uitid-mailing':
176180
ensure => $service_status,
177181
hasstatus => true,
178182
enable => $service_status ? {
179-
'running' => true,
180-
'stopped' => false
181-
},
182-
require => Profiles::Glassfish::Domain::Service_alias['uitid-mailing'],
183+
'running' => true,
184+
'stopped' => false
185+
},
186+
require => Profiles::Glassfish::Domain::Service_alias['uitid-mailing']
183187
}
184188

185189
file { 'Domain uitid-mailing mysql-connector-j':
186190
ensure => 'file',
187191
path => '/opt/payara/glassfish/lib/mysql-connector-j.jar',
188192
source => '/usr/share/java/mysql-connector-j.jar',
189193
require => Package['mysql-connector-j'],
190-
before => Profiles::Glassfish::Domain['uitid-mailing'],
194+
before => Profiles::Glassfish::Domain['uitid-mailing']
191195
}
192196
}

manifests/uitpas/api.pp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
String $database_host = '127.0.0.1',
66
Boolean $deployment = true,
77
Optional[String] $initial_heap_size = undef,
8-
Optional[String] $maximum_heap_size = undef,
8+
Optional[String] $maximum_heap_size = '512m',
99
Boolean $jmx = true,
1010
Boolean $newrelic = false,
1111
Optional[String] $newrelic_license_key = lookup('data::newrelic::license_key', Optional[String], 'first', undef),
@@ -153,6 +153,7 @@
153153
Package['mysql-connector-j'] -> Class['profiles::uitpas::api::deployment']
154154
File['Domain uitpas mysql-connector-j'] -> Class['profiles::uitpas::api::deployment']
155155
Profiles::Mysql::App_user["${database_user}@${database_name}"] -> Class['profiles::uitpas::api::deployment']
156+
Profiles::Glassfish::Domain['uitpas'] -> Class['profiles::uitpas::api::deployment']
156157
Class['profiles::uitpas::api::deployment'] ~> Service['uitpas']
157158
}
158159
}

0 commit comments

Comments
 (0)