+ remote = [
+ name: containerName,
+ host: IP_ADDRESS,
+ user: 'ubuntu',
+ identityFile: SSH_KEY,
+ allowAnyHosts: true,
+ logLevel: 'INFO',
+ pty: true
+ ]
+
+ sshCommand remote: remote, command: '''
+ wget https://osm-download.etsi.org/ftp/osm-15.0-fifteen/install_osm.sh
+ chmod +x ./install_osm.sh
+ sed -i '1 i\\export PATH=/snap/bin:\$PATH' ~/.bashrc
+ '''
+
+ Map gitlabCredentialsMap = [$class: 'UsernamePasswordMultiBinding',
+ credentialsId: 'gitlab-registry',
+ usernameVariable: 'USERNAME',
+ passwordVariable: 'PASSWORD']
+ if (useCharmedInstaller) {
+ // Use local proxy for docker hub
+ sshCommand remote: remote, command: '''
+ sudo snap install microk8s --classic --channel=1.19/stable
+ sudo sed -i "s|https://registry-1.docker.io|http://172.21.1.1:5000|" \
+ /var/snap/microk8s/current/args/containerd-template.toml
+ sudo systemctl restart snap.microk8s.daemon-containerd.service
+ sudo snap alias microk8s.kubectl kubectl
+ '''
+
+ withCredentials([gitlabCredentialsMap]) {
+ sshCommand remote: remote, command: """
+ ./install_osm.sh -y \
+ ${repo_base_url} \
+ ${repo_key_name} \
+ ${release} -r unstable \
+ --charmed \
+ --registry ${USERNAME}:${PASSWORD}@${INTERNAL_DOCKER_REGISTRY} \
+ --tag ${containerName}
+ """
+ }
+ prometheusHostname = "prometheus.${IP_ADDRESS}.nip.io"
+ prometheusPort = 80
+ osmHostname = "nbi.${IP_ADDRESS}.nip.io:443"
+ } else {
+ // Run -k8s installer here specifying internal docker registry and docker proxy
+ osm_installation_options = ""
+ if (params.TRY_OLD_SERVICE_ASSURANCE) {
+ osm_installation_options = "${osm_installation_options} --old-sa"
+ }
+ if (params.TRY_JUJU_INSTALLATION) {
+ osm_installation_options = "${osm_installation_options} --juju --lxd"
+ }
+ withCredentials([gitlabCredentialsMap]) {
+ sshCommand remote: remote, command: """
+ ./install_osm.sh -y \
+ ${repo_base_url} \
+ ${repo_key_name} \
+ ${release} -r unstable \
+ -d ${USERNAME}:${PASSWORD}@${INTERNAL_DOCKER_REGISTRY} \
+ -p ${INTERNAL_DOCKER_PROXY} \
+ -t ${containerName} \
+ ${osm_installation_options}
+ """
+ }
+ prometheusHostname = "prometheus.${IP_ADDRESS}.nip.io"
+ prometheusPort = 80
+ osmHostname = "nbi.${IP_ADDRESS}.nip.io:443"
+ }
+ } // stage("Install")
+///////////////////////////////////////////////////////////////////////////////////////
+// Health check of installed OSM in remote vm
+///////////////////////////////////////////////////////////////////////////////////////
+ stage('OSM Health') {
+ // if this point is reached, logs should be archived
+ ARCHIVE_LOGS_FLAG = true
+ stackName = 'osm'
+ sshCommand remote: remote, command: """
+ /usr/share/osm-devops/installers/osm_health.sh -k -s ${stackName}
+ """
+ } // stage("OSM Health")
+ } // if ( params.DO_INSTALL )
+
+
+///////////////////////////////////////////////////////////////////////////////////////
+// Execute Robot tests
+///////////////////////////////////////////////////////////////////////////////////////
+ stage_archive = false
+ if ( params.DO_ROBOT ) {
+ try {
+ stage('System Integration Test') {
+ if (useCharmedInstaller) {
+ tempdir = sh(returnStdout: true, script: 'mktemp -d').trim()
+ sh(script: "touch ${tempdir}/hosts")
+ hostfile = "${tempdir}/hosts"
+ sh """cat << EOF > ${hostfile}
+127.0.0.1 localhost
+${remote.host} prometheus.${remote.host}.nip.io nbi.${remote.host}.nip.io
+EOF"""
+ } else {
+ hostfile = null
+ }