mirror of
https://github.com/SAP/jenkins-library.git
synced 2025-03-05 15:15:44 +02:00
POC K8S
This commit is contained in:
parent
0d2af05a9a
commit
0f1ca24b27
@ -5,36 +5,38 @@ def call(Map parameters = [:], body) {
|
||||
def STEP_NAME = 'dockerExecute'
|
||||
def PLUGIN_ID_DOCKER_WORKFLOW = 'docker-workflow'
|
||||
|
||||
handlePipelineStepErrors(stepName: STEP_NAME, stepParameters: parameters){
|
||||
handlePipelineStepErrors(stepName: STEP_NAME, stepParameters: parameters) {
|
||||
def dockerImage = parameters.dockerImage ?: ''
|
||||
Map dockerEnvVars = parameters.dockerEnvVars ?: [:]
|
||||
def dockerOptions = parameters.dockerOptions ?: ''
|
||||
Map dockerVolumeBind = parameters.dockerVolumeBind ?: [:]
|
||||
def k8s = parameters.k8s ?: true
|
||||
if (k8s) {
|
||||
executeDocker parameters
|
||||
} else if (dockerImage) {
|
||||
|
||||
if(dockerImage) {
|
||||
|
||||
if (! isPluginActive(PLUGIN_ID_DOCKER_WORKFLOW) ) {
|
||||
if (!isPluginActive(PLUGIN_ID_DOCKER_WORKFLOW)) {
|
||||
echo "[WARNING][${STEP_NAME}] Docker not supported. Plugin '${PLUGIN_ID_DOCKER_WORKFLOW}' is not installed or not active. Configured docker image '${dockerImage}' will not be used."
|
||||
dockerImage = null
|
||||
}
|
||||
|
||||
def returnCode = sh script: 'which docker > /dev/null', returnStatus: true
|
||||
if(returnCode != 0) {
|
||||
if (returnCode != 0) {
|
||||
echo "[WARNING][${STEP_NAME}] No docker environment found (command 'which docker' did not return with '0'). Configured docker image '${dockerImage}' will not be used."
|
||||
dockerImage = null
|
||||
}
|
||||
|
||||
returnCode = sh script: 'docker ps -q > /dev/null', returnStatus: true
|
||||
if(returnCode != 0) {
|
||||
if (returnCode != 0) {
|
||||
echo "[WARNING][$STEP_NAME] Cannot connect to docker daemon (command 'docker ps' did not return with '0'). Configured docker image '${dockerImage}' will not be used."
|
||||
dockerImage = null
|
||||
}
|
||||
}
|
||||
|
||||
if(!dockerImage){
|
||||
if (!dockerImage) {
|
||||
echo "[INFO][${STEP_NAME}] Running on local environment."
|
||||
body()
|
||||
}else{
|
||||
} else {
|
||||
def image = docker.image(dockerImage)
|
||||
image.pull()
|
||||
image.inside(getDockerOptions(dockerEnvVars, dockerVolumeBind, dockerOptions)) {
|
||||
@ -45,7 +47,7 @@ def call(Map parameters = [:], body) {
|
||||
}
|
||||
|
||||
@NonCPS
|
||||
private isPluginActive(String pluginId){
|
||||
private isPluginActive(String pluginId) {
|
||||
return Jenkins.instance.pluginManager.plugins.find { p -> p.isActive() && p.getShortName() == pluginId }
|
||||
}
|
||||
|
||||
@ -57,14 +59,12 @@ private isPluginActive(String pluginId){
|
||||
*/
|
||||
@NonCPS
|
||||
private getDockerOptions(Map dockerEnvVars, Map dockerVolumeBind, def dockerOptions) {
|
||||
def specialEnvironments = [
|
||||
'http_proxy',
|
||||
'https_proxy',
|
||||
'no_proxy',
|
||||
'HTTP_PROXY',
|
||||
'HTTPS_PROXY',
|
||||
'NO_PROXY'
|
||||
]
|
||||
def specialEnvironments = ['http_proxy',
|
||||
'https_proxy',
|
||||
'no_proxy',
|
||||
'HTTP_PROXY',
|
||||
'HTTPS_PROXY',
|
||||
'NO_PROXY']
|
||||
def options = []
|
||||
if (dockerEnvVars) {
|
||||
for (String k : dockerEnvVars.keySet()) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user