Skip to content

Commit ff2f4e2

Browse files
PSMDB. Upgrade tests for KMIP and PRO repos (#2386)
* PSMDB. Add KMIP upgrade test * PSMDB. Upgrade tests for gated builds
1 parent 8797142 commit ff2f4e2

File tree

4 files changed

+289
-17
lines changed

4 files changed

+289
-17
lines changed

psmdb/psmdb-multi-parallel.groovy

+235-15
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,23 @@ pipeline {
3535
description: 'previous major PSMDB version for upgrade tests (leave blank to skip)',
3636
name: 'PREV_MAJ_PSMDB_VERSION'
3737
)
38+
string(
39+
defaultValue: '6.0.4',
40+
description: 'next major PSMDB version for upgrade tests (leave blank to skip)',
41+
name: 'NEXT_MAJ_PSMDB_VERSION'
42+
)
3843
string(
3944
defaultValue: 'main',
4045
description: 'base Branch for upgrade test',
4146
name: 'TESTING_BRANCH')
42-
47+
choice(
48+
name: 'functionaltests',
49+
choices: ['no','yes'],
50+
description: 'run functional tests')
51+
choice(
52+
name: 'no_encryption',
53+
choices: ['no','yes'],
54+
description: 'check upgrade without encryption')
4355
}
4456
options {
4557
withCredentials(moleculePbmJenkinsCreds())
@@ -50,17 +62,25 @@ pipeline {
5062
parallel {
5163
stage ('functional tests') {
5264
steps {
53-
build job: 'psmdb-parallel', parameters: [
54-
string(name: 'REPO', value: "${env.REPO}"),
55-
string(name: 'PSMDB_VERSION', value: "${env.PSMDB_VERSION}"),
56-
string(name: 'TESTING_BRANCH', value: "${env.TESTING_BRANCH}")
57-
]
65+
script {
66+
if (params.integrationtests == "yes") {
67+
build job: 'psmdb-parallel', parameters: [
68+
string(name: 'REPO', value: "${env.REPO}"),
69+
string(name: 'PSMDB_VERSION', value: "${env.PSMDB_VERSION}"),
70+
string(name: 'TESTING_BRANCH', value: "${env.TESTING_BRANCH}")
71+
]
72+
}
73+
else {
74+
echo 'skipped functional tests'
75+
}
76+
}
77+
5878
}
5979
}
6080
stage('upgrade from minor version without encryption') {
6181
steps {
6282
script {
63-
if (env.PREV_MIN_PSMDB_VERSION != '') {
83+
if ((env.PREV_MIN_PSMDB_VERSION != '') && (params.no_encryption == "yes")) {
6484
build job: "psmdb-upgrade-parallel", parameters: [
6585
string(name: 'TO_REPO', value: "${env.REPO}"),
6686
string(name: 'FROM_REPO', value: "release"),
@@ -77,7 +97,7 @@ pipeline {
7797
}
7898
}
7999
}
80-
stage('upgrade from minor vesrsion with vault encryption') {
100+
stage('upgrade from minor version with vault encryption') {
81101
steps {
82102
script {
83103
if (env.PREV_MIN_PSMDB_VERSION != '') {
@@ -97,10 +117,30 @@ pipeline {
97117
}
98118
}
99119
}
100-
stage('upgrade from major version without encryption') {
120+
stage('upgrade from minor version with KMIP encryption') {
101121
steps {
102122
script {
103-
if (env.PREV_MAJ_PSMDB_VERSION != '') {
123+
if (env.PREV_MIN_PSMDB_VERSION != '') {
124+
build job: "psmdb-upgrade-parallel", parameters: [
125+
string(name: 'TO_REPO', value: "${env.REPO}"),
126+
string(name: 'FROM_REPO', value: "release"),
127+
string(name: 'TO_PSMDB_VERSION', value: "${env.PSMDB_VERSION}"),
128+
string(name: 'FROM_PSMDB_VERSION', value: "${env.PREV_MIN_PSMDB_VERSION}"),
129+
string(name: 'ENCRYPTION', value: "KMIP"),
130+
string(name: 'CIPHER', value: "AES256-CBC"),
131+
string(name: 'TESTING_BRANCH', value: "${env.TESTING_BRANCH}")
132+
]
133+
}
134+
else {
135+
echo 'skipped upgrade from minor version'
136+
}
137+
}
138+
}
139+
}
140+
stage('upgrade from prev major version without encryption') {
141+
steps {
142+
script {
143+
if ((env.PREV_MIN_PSMDB_VERSION != '') && (params.no_encryption == "yes")) {
104144
build job: "psmdb-upgrade-parallel", parameters: [
105145
string(name: 'TO_REPO', value: "${env.REPO}"),
106146
string(name: 'FROM_REPO', value: "release"),
@@ -117,7 +157,7 @@ pipeline {
117157
}
118158
}
119159
}
120-
stage('upgrade from major version with vault encryption') {
160+
stage('upgrade from prev major version with vault encryption') {
121161
steps {
122162
script {
123163
if (env.PREV_MAJ_PSMDB_VERSION != '') {
@@ -137,10 +177,90 @@ pipeline {
137177
}
138178
}
139179
}
180+
stage('upgrade from prev major version with KMIP encryption') {
181+
steps {
182+
script {
183+
if (env.PREV_MAJ_PSMDB_VERSION != '') {
184+
build job: "psmdb-upgrade-parallel", parameters: [
185+
string(name: 'TO_REPO', value: "${env.REPO}"),
186+
string(name: 'FROM_REPO', value: "release"),
187+
string(name: 'TO_PSMDB_VERSION', value: "${env.PSMDB_VERSION}"),
188+
string(name: 'FROM_PSMDB_VERSION', value: "${env.PREV_MAJ_PSMDB_VERSION}"),
189+
string(name: 'ENCRYPTION', value: "KMIP"),
190+
string(name: 'CIPHER', value: "AES256-CBC"),
191+
string(name: 'TESTING_BRANCH', value: "${env.TESTING_BRANCH}")
192+
]
193+
}
194+
else {
195+
echo 'skipped upgrade from major version'
196+
}
197+
}
198+
}
199+
}
200+
stage('upgrade to next major version without encryption') {
201+
steps {
202+
script {
203+
if ((env.PREV_MIN_PSMDB_VERSION != '') && (params.no_encryption == "yes")) {
204+
build job: "psmdb-upgrade-parallel", parameters: [
205+
string(name: 'TO_REPO', value: "release"),
206+
string(name: 'FROM_REPO', value: "${env.REPO}"),
207+
string(name: 'TO_PSMDB_VERSION', value: "${env.NEXT_MAJ_PSMDB_VERSION}"),
208+
string(name: 'FROM_PSMDB_VERSION', value: "${env.PSMDB_VERSION}"),
209+
string(name: 'ENCRYPTION', value: "NONE"),
210+
string(name: 'CIPHER', value: "AES256-CBC"),
211+
string(name: 'TESTING_BRANCH', value: "${env.TESTING_BRANCH}")
212+
]
213+
}
214+
else {
215+
echo 'skipped upgrade to major version'
216+
}
217+
}
218+
}
219+
}
220+
stage('upgrade to next major version with vault encryption') {
221+
steps {
222+
script {
223+
if (env.NEXT_MAJ_PSMDB_VERSION != '') {
224+
build job: "psmdb-upgrade-parallel", parameters: [
225+
string(name: 'TO_REPO', value: "release"),
226+
string(name: 'FROM_REPO', value: "${env.REPO}"),
227+
string(name: 'TO_PSMDB_VERSION', value: "${env.NEXT_MAJ_PSMDB_VERSION}"),
228+
string(name: 'FROM_PSMDB_VERSION', value: "${env.PSMDB_VERSION}"),
229+
string(name: 'ENCRYPTION', value: "VAULT"),
230+
string(name: 'CIPHER', value: "AES256-CBC"),
231+
string(name: 'TESTING_BRANCH', value: "${env.TESTING_BRANCH}")
232+
]
233+
}
234+
else {
235+
echo 'skipped upgrade to major version'
236+
}
237+
}
238+
}
239+
}
240+
stage('upgrade to next major version with KMIP encryption') {
241+
steps {
242+
script {
243+
if (env.NEXT_MAJ_PSMDB_VERSION != '') {
244+
build job: "psmdb-upgrade-parallel", parameters: [
245+
string(name: 'TO_REPO', value: "release"),
246+
string(name: 'FROM_REPO', value: "${env.REPO}"),
247+
string(name: 'TO_PSMDB_VERSION', value: "${env.NEXT_MAJ_PSMDB_VERSION}"),
248+
string(name: 'FROM_PSMDB_VERSION', value: "${env.PSMDB_VERSION}"),
249+
string(name: 'ENCRYPTION', value: "KMIP"),
250+
string(name: 'CIPHER', value: "AES256-CBC"),
251+
string(name: 'TESTING_BRANCH', value: "${env.TESTING_BRANCH}")
252+
]
253+
}
254+
else {
255+
echo 'skipped upgrade to major version'
256+
}
257+
}
258+
}
259+
}
140260
stage('downgrade to minor version without encryption') {
141261
steps {
142262
script {
143-
if (env.PREV_MIN_PSMDB_VERSION != '') {
263+
if ((env.PREV_MIN_PSMDB_VERSION != '') && (params.no_encryption == "yes")) {
144264
build job: "psmdb-upgrade-parallel", parameters: [
145265
string(name: 'TO_REPO', value: "release"),
146266
string(name: 'FROM_REPO', value: "${env.REPO}"),
@@ -177,10 +297,30 @@ pipeline {
177297
}
178298
}
179299
}
180-
stage('downgrade to major version without encryption') {
300+
stage('downgrade to minor version with KMIP encryption') {
181301
steps {
182302
script {
183-
if (env.PREV_MAJ_PSMDB_VERSION != '') {
303+
if (env.PREV_MIN_PSMDB_VERSION != '') {
304+
build job: "psmdb-upgrade-parallel", parameters: [
305+
string(name: 'TO_REPO', value: "release"),
306+
string(name: 'FROM_REPO', value: "${env.REPO}"),
307+
string(name: 'TO_PSMDB_VERSION', value: "${env.PREV_MIN_PSMDB_VERSION}"),
308+
string(name: 'FROM_PSMDB_VERSION', value: "${env.PSMDB_VERSION}"),
309+
string(name: 'ENCRYPTION', value: "KMIP"),
310+
string(name: 'CIPHER', value: "AES256-CBC"),
311+
string(name: 'TESTING_BRANCH', value: "${env.TESTING_BRANCH}")
312+
]
313+
}
314+
else {
315+
echo 'skipped downgrade to minor version'
316+
}
317+
}
318+
}
319+
}
320+
stage('downgrade to prev major version without encryption') {
321+
steps {
322+
script {
323+
if ((env.PREV_MIN_PSMDB_VERSION != '') && (params.no_encryption == "yes")) {
184324
build job: "psmdb-upgrade-parallel", parameters: [
185325
string(name: 'TO_REPO', value: "release"),
186326
string(name: 'FROM_REPO', value: "${env.REPO}"),
@@ -197,7 +337,7 @@ pipeline {
197337
}
198338
}
199339
}
200-
stage('downgrade to major version with vault encryption') {
340+
stage('downgrade to prev major version with vault encryption') {
201341
steps {
202342
script {
203343
if (env.PREV_MAJ_PSMDB_VERSION != '') {
@@ -217,6 +357,86 @@ pipeline {
217357
}
218358
}
219359
}
360+
stage('downgrade to prev major version with KMIP encryption') {
361+
steps {
362+
script {
363+
if (env.PREV_MAJ_PSMDB_VERSION != '') {
364+
build job: "psmdb-upgrade-parallel", parameters: [
365+
string(name: 'TO_REPO', value: "release"),
366+
string(name: 'FROM_REPO', value: "${env.REPO}"),
367+
string(name: 'TO_PSMDB_VERSION', value: "${env.PREV_MAJ_PSMDB_VERSION}"),
368+
string(name: 'FROM_PSMDB_VERSION', value: "${env.PSMDB_VERSION}"),
369+
string(name: 'ENCRYPTION', value: "KMIP"),
370+
string(name: 'CIPHER', value: "AES256-CBC"),
371+
string(name: 'TESTING_BRANCH', value: "${env.TESTING_BRANCH}")
372+
]
373+
}
374+
else {
375+
echo 'skipped downgrade to major version'
376+
}
377+
}
378+
}
379+
}
380+
stage('downgrade from next major version without encryption') {
381+
steps {
382+
script {
383+
if ((env.PREV_MIN_PSMDB_VERSION != '') && (params.no_encryption == "yes")) {
384+
build job: "psmdb-upgrade-parallel", parameters: [
385+
string(name: 'TO_REPO', value: "${env.REPO}"),
386+
string(name: 'FROM_REPO', value: "release"),
387+
string(name: 'TO_PSMDB_VERSION', value: "${env.PSMDB_VERSION}"),
388+
string(name: 'FROM_PSMDB_VERSION', value: "${env.NEXT_MAJ_PSMDB_VERSION}"),
389+
string(name: 'ENCRYPTION', value: "NONE"),
390+
string(name: 'CIPHER', value: "AES256-CBC"),
391+
string(name: 'TESTING_BRANCH', value: "${env.TESTING_BRANCH}")
392+
]
393+
}
394+
else {
395+
echo 'skipped downgrade from major version'
396+
}
397+
}
398+
}
399+
}
400+
stage('downgrade from next major version with vault encryption') {
401+
steps {
402+
script {
403+
if (env.NEXT_MAJ_PSMDB_VERSION != '') {
404+
build job: "psmdb-upgrade-parallel", parameters: [
405+
string(name: 'TO_REPO', value: "${env.REPO}"),
406+
string(name: 'FROM_REPO', value: "release"),
407+
string(name: 'TO_PSMDB_VERSION', value: "${env.PSMDB_VERSION}"),
408+
string(name: 'FROM_PSMDB_VERSION', value: "${env.NEXT_MAJ_PSMDB_VERSION}"),
409+
string(name: 'ENCRYPTION', value: "VAULT"),
410+
string(name: 'CIPHER', value: "AES256-CBC"),
411+
string(name: 'TESTING_BRANCH', value: "${env.TESTING_BRANCH}")
412+
]
413+
}
414+
else {
415+
echo 'skipped downgrade from major version'
416+
}
417+
}
418+
}
419+
}
420+
stage('downgrade from next major version with KMIP encryption') {
421+
steps {
422+
script {
423+
if (env.NEXT_MAJ_PSMDB_VERSION != '') {
424+
build job: "psmdb-upgrade-parallel", parameters: [
425+
string(name: 'TO_REPO', value: "${env.REPO}"),
426+
string(name: 'FROM_REPO', value: "release"),
427+
string(name: 'TO_PSMDB_VERSION', value: "${env.PSMDB_VERSION}"),
428+
string(name: 'FROM_PSMDB_VERSION', value: "${env.NEXT_MAJ_PSMDB_VERSION}"),
429+
string(name: 'ENCRYPTION', value: "KMIP"),
430+
string(name: 'CIPHER', value: "AES256-CBC"),
431+
string(name: 'TESTING_BRANCH', value: "${env.TESTING_BRANCH}")
432+
]
433+
}
434+
else {
435+
echo 'skipped downgrade from major version'
436+
}
437+
}
438+
}
439+
}
220440
}
221441
}
222442
}

psmdb/psmdb-upgrade-parallel.groovy

+22-1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,14 @@ pipeline {
2424
'release'
2525
]
2626
)
27+
choice(
28+
name: 'FROM_REPO_PRO',
29+
description: 'USE PRO repo for base install',
30+
choices: [
31+
'false',
32+
'true'
33+
]
34+
)
2735
string(
2836
defaultValue: '4.4.8',
2937
description: 'From this version PSMDB will be updated',
@@ -38,6 +46,14 @@ pipeline {
3846
'release'
3947
]
4048
)
49+
choice(
50+
name: 'TO_REPO_PRO',
51+
description: 'USE PRO repo for update',
52+
choices: [
53+
'false',
54+
'true'
55+
]
56+
)
4157
string(
4258
defaultValue: '5.0.2',
4359
description: 'To this version PSMDB will be updated',
@@ -49,7 +65,8 @@ pipeline {
4965
choices: [
5066
'NONE',
5167
'VAULT',
52-
'KEYFILE'
68+
'KEYFILE',
69+
'KMIP'
5370
]
5471
)
5572
choice(
@@ -100,9 +117,11 @@ pipeline {
100117
}
101118
stage('Install old version') {
102119
steps {
120+
withCredentials([usernamePassword(credentialsId: 'PSMDB_PRIVATE_REPO_ACCESS', passwordVariable: 'PASSWORD', usernameVariable: 'USERNAME')]) {
103121
script {
104122
runMoleculeCommandParallelWithVariableList(pdmdbOperatingSystems(), moleculeDir, "converge", env.OLDVERSIONS)
105123
}
124+
}
106125
}
107126
}
108127
stage('Test old version') {
@@ -114,9 +133,11 @@ pipeline {
114133
}
115134
stage('Install new version') {
116135
steps {
136+
withCredentials([usernamePassword(credentialsId: 'PSMDB_PRIVATE_REPO_ACCESS', passwordVariable: 'PASSWORD', usernameVariable: 'USERNAME')]) {
117137
script {
118138
runMoleculeCommandParallelWithVariableList(pdmdbOperatingSystems(), moleculeDir, "side-effect", env.NEWVERSIONS)
119139
}
140+
}
120141
}
121142
}
122143
stage('Test new version') {

0 commit comments

Comments
 (0)