blob: 29248d0ddbc9e68efb60c999a7ea7f8a57687715 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
containerOpenshift = null
containerEngine = 'docker'
containerEngineTlsOptions = ''
void pullImage(String image) {
retry(env.MAX_REGISTRY_RETRIES ?: 1) {
sh "${containerEngine} pull ${containerEngineTlsOptions} ${image}"
}
}
void tagImage(String oldImage, String newImage) {
sh "${containerEngine} tag ${oldImage} ${newImage}"
}
void pushImage(String image) {
retry(env.MAX_REGISTRY_RETRIES ?: 1) {
sh "${containerEngine} push ${containerEngineTlsOptions} ${image}"
}
}
void loginContainerRegistry(String registry, String credsId) {
withCredentials([usernamePassword(credentialsId: credsId, usernameVariable: 'REGISTRY_USER', passwordVariable: 'REGISTRY_PWD')]) {
sh "${containerEngine} login ${containerEngineTlsOptions} -u ${REGISTRY_USER} -p ${REGISTRY_PWD} ${registry}"
}
}
void loginOpenshiftRegistry() {
containerOpenshift.loginOpenshift()
// username can be anything. See https://docs.openshift.com/container-platform/4.4/registry/accessing-the-registry.html#registry-accessing-directly_accessing-the-registry
sh "set +x && ${containerEngine} login ${containerEngineTlsOptions} -u anything -p \$(oc whoami -t) ${containerOpenshift.getOpenshiftRegistry()}"
}
return this