Merge "Fix checkout of refspec"
diff --git a/src/com/mirantis/mk/KaasUtils.groovy b/src/com/mirantis/mk/KaasUtils.groovy
index 29d3cff..cbc771f 100644
--- a/src/com/mirantis/mk/KaasUtils.groovy
+++ b/src/com/mirantis/mk/KaasUtils.groovy
@@ -55,6 +55,7 @@
def attachBYO = env.ATTACH_BYO ? env.ATTACH_BYO.toBoolean() : false
def upgradeBYO = env.UPGRADE_BYO ? env.UPGRADE_BYO.toBoolean() : false
def runBYOMatrix = env.RUN_BYO_MATRIX ? env.RUN_BYO_MATRIX.toBoolean() : false
+ def defaultBYOOs = env.DEFAULT_BYO_OS ? env.DEFAULT_BYO_OS.toString() : 'ubuntu'
def upgradeMgmt = env.UPGRADE_MGMT_CLUSTER ? env.UPGRADE_MGMT_CLUSTER.toBoolean() : false
def enableLMALogging = env.ENABLE_LMA_LOGGING ? env.ENABLE_LMA_LOGGING.toBoolean(): false
def runUie2e = env.RUN_UI_E2E ? env.RUN_UI_E2E.toBoolean() : false
@@ -88,6 +89,7 @@
def enableVsphereDemo = true
def enableOSDemo = true
def enableBMDemo = true
+ def openstackIMC = env.OPENSTACK_CLOUD_LOCATION ? env.OPENSTACK_CLOUD_LOCATION : 'us'
def commitMsg = env.GERRIT_CHANGE_COMMIT_MESSAGE ? new String(env.GERRIT_CHANGE_COMMIT_MESSAGE.decodeBase64()) : ''
if (commitMsg ==~ /(?s).*\[mgmt-proxy\].*/ || env.GERRIT_EVENT_COMMENT_TEXT ==~ /(?s).*mgmt-proxy.*/) {
@@ -104,11 +106,11 @@
deployChild = true
upgradeChild = true
}
- def deployMatches = (commitMsg =~ /(\[child-deploy\s*(\w|\-)+?\])/)
- if (deployMatches.size() > 0) {
+ def childDeployMatches = (commitMsg =~ /(\[child-deploy\s*(\w|\-)+?\])/)
+ if (childDeployMatches.size() > 0) {
// override child version when it set explicitly
deployChild = true
- customChildRelease = deployMatches[0][0].split('child-deploy')[1].replaceAll('[\\[\\]]', '').trim()
+ customChildRelease = childDeployMatches[0][0].split('child-deploy')[1].replaceAll('[\\[\\]]', '').trim()
common.warningMsg("Forced child deployment using custom release version ${customChildRelease}")
}
if (commitMsg ==~ /(?s).*\[byo-attach\].*/ || env.GERRIT_EVENT_COMMENT_TEXT ==~ /(?s).*byo-attach.*/) {
@@ -118,9 +120,16 @@
attachBYO = true
upgradeBYO = true
}
- if (commitMsg ==~ /(?s).*\[run-byo-matrix\].*/ || env.GERRIT_EVENT_COMMENT_TEXT ==~ /(?s).*run-byo-matrix\.*/) {
+
+ def byoDeployMatches = (commitMsg =~ /(\[run-byo-matrix\s*(ubuntu|centos)\])/)
+ if (commitMsg ==~ /(?s).*\[run-byo-matrix\].*/ || env.GERRIT_EVENT_COMMENT_TEXT ==~ /(?s).*run-byo-matrix\.*/ || byoDeployMatches.size() > 0) {
runBYOMatrix = true
+ if (byoDeployMatches.size() > 0) {
+ defaultBYOOs = byoDeployMatches[0][2]
+ common.warningMsg("Custom BYO OS detected, using ${defaultBYOOs}")
+ }
+
common.warningMsg('Forced byo matrix test via run-byo-matrix, all other byo triggers will be skipped')
attachBYO = false
upgradeBYO = false
@@ -248,6 +257,10 @@
common.warningMsg('Forced running additional kaas deployment with Equinix provider according multiregional demo request')
equinixOnDemandDemo = true
break
+ case 'equinixmetalv2':
+ common.warningMsg('Forced running additional kaas deployment with Equinix Metal V2 provider according multiregional demo request')
+ equinixMetalV2OnDemandDemo = true
+ break
case 'azure':
common.warningMsg('Forced running additional kaas deployment with Azure provider according multiregional demo request')
azureOnDemandDemo = true
@@ -265,10 +278,19 @@
],
]
+ if (commitMsg ==~ /(?s).*\[eu-demo\].*/ || env.GERRIT_EVENT_COMMENT_TEXT ==~ /(?s).*eu-demo.*/) {
+ openstackIMC = 'eu'
+ // use internal-eu because on internal-ci with eu cloud image pull takes much time
+ def cdnRegion = (proxyConfig['mgmtOffline'] == true) ? 'public-ci' : 'internal-eu'
+ common.infoMsg("eu-demo was triggered, force switching CDN region to ${cdnRegion}")
+ cdnConfig['mgmt']['openstack'] = cdnRegion
+ }
+
// calculate weight of current demo run to manage lockable resources
def demoWeight = (deployChild) ? 2 : 1 // management = 1, child = 1
common.infoMsg("""
+ OpenStack Cloud location: ${openstackIMC}
CDN deployment configuration: ${cdnConfig}
MCC offline deployment configuration: ${proxyConfig}
Use MacOS node as seed: ${seedMacOs}
@@ -279,6 +301,7 @@
Single BYO cluster attachment scheduled: ${attachBYO}
Single Attached BYO cluster upgrade test scheduled: ${upgradeBYO}
BYO test matrix whole suite scheduled: ${runBYOMatrix}
+ Default BYO OS: ${defaultBYOOs}
Mgmt cluster release upgrade scheduled: ${upgradeMgmt}
Mgmt LMA logging enabled: ${enableLMALogging}
Mgmt conformance testing scheduled: ${runMgmtConformance}
@@ -300,6 +323,7 @@
Current weight of the demo run: ${demoWeight} (Used to manage lockable resources)
Triggers: https://gerrit.mcp.mirantis.com/plugins/gitiles/kaas/core/+/refs/heads/master/hack/ci-gerrit-keywords.md""")
return [
+ osCloudLocation : openstackIMC,
cdnConfig : cdnConfig,
proxyConfig : proxyConfig,
useMacOsSeedNode : seedMacOs,
@@ -310,6 +334,7 @@
attachBYOEnabled : attachBYO,
upgradeBYOEnabled : upgradeBYO,
runBYOMatrixEnabled : runBYOMatrix,
+ defaultBYOOs : defaultBYOOs,
upgradeMgmtEnabled : upgradeMgmt,
enableLMALoggingEnabled : enableLMALogging,
runUie2eEnabled : runUie2e,
@@ -346,8 +371,8 @@
*/
def multiregionWorkflowParser(keyword) {
def common = new com.mirantis.mk.Common()
- def supportedManagementProviders = ['os', 'aws', 'vsphere', 'equinix', 'azure']
- def supportedRegionalProviders = ['os', 'vsphere', 'equinix', 'bm', 'azure', 'aws']
+ def supportedManagementProviders = ['os', 'aws', 'vsphere', 'equinix', 'equinixmetalv2', 'azure']
+ def supportedRegionalProviders = ['os', 'vsphere', 'equinix', 'equinixmetalv2', 'bm', 'azure', 'aws']
def clusterTypes = ''
if (keyword.toString().contains('multiregion')) {
@@ -579,6 +604,7 @@
string(name: 'SI_PIPELINES_REFSPEC', value: siRefspec.siPipelines),
string(name: 'CUSTOM_RELEASE_PATCH_SPEC', value: patchSpec),
string(name: 'KAAS_CHILD_CLUSTER_RELEASE_NAME', value: triggers.childDeployCustomRelease),
+ string(name: 'OPENSTACK_CLOUD_LOCATION', value: triggers.osCloudLocation),
booleanParam(name: 'OFFLINE_MGMT_CLUSTER', value: triggers.proxyConfig['mgmtOffline']),
booleanParam(name: 'OFFLINE_CHILD_CLUSTER', value: triggers.proxyConfig['childOffline']),
booleanParam(name: 'PROXY_CHILD_CLUSTER', value: triggers.proxyConfig['childProxy']),
diff --git a/src/com/mirantis/mk/Openstack.groovy b/src/com/mirantis/mk/Openstack.groovy
index fa87220..f552fc3 100644
--- a/src/com/mirantis/mk/Openstack.groovy
+++ b/src/com/mirantis/mk/Openstack.groovy
@@ -589,7 +589,7 @@
def createOpenstackEnvInDocker(authUrl, credentialsId, project, project_domain="default", project_id="", user_domain="default", cacert="/etc/ssl/certs/ca-certificates.crt") {
def common = new com.mirantis.mk.Common()
creds = common.getPasswordCredentials(credentialsId)
- def env = " -e OS_USERNAME=${creds.username} -e OS_PASSWORD=${creds.password.toString()} -e OS_TENANT_NAME=${project} -e OS_AUTH_URL=${authUrl} -e OS_AUTH_STRATEGY=keystone -e OS_PROJECT_NAME=${project} -e OS_PROJECT_ID=${project_id} -e OS_PROJECT_DOMAIN_ID=${project_domain} -e OS_USER_DOMAIN_NAME=${user_domain} -e OS_CACERT=${cacert} "
+ def env = ["OS_USERNAME=${creds.username}", "OS_PASSWORD=${creds.password.toString()}", "OS_TENANT_NAME=${project}", "OS_AUTH_URL=${authUrl}", "OS_AUTH_STRATEGY=keystone -e OS_PROJECT_NAME=${project}", "OS_PROJECT_ID=${project_id}", "OS_PROJECT_DOMAIN_ID=${project_domain}", "OS_USER_DOMAIN_NAME=${user_domain}", "OS_CACERT=${cacert}"]
return env
}
@@ -614,7 +614,6 @@
return img
}
-
/**
* create connection to OpenStack API endpoint in the Docker container
*
@@ -625,8 +624,10 @@
def runOpenstackCommandInDocker(cmd, env, img) {
def dockerImg = docker.image(img)
def result
- dockerImg.inside("${env}") {
- result = sh(script: "${cmd}", returnStdout: true).trim()
+ dockerImg.inside() {
+ withEnv(env) {
+ result = sh(script: "${cmd}", returnStdout: true).trim()
+ }
}
return result
}