Re: [Kubernetes-Plugin] Declarative pipelines with Pod yaml, jnlp arguments issue

2018-05-01 Thread Hung Do
Sorry, for another post. I don't know how to edit the previous post, I 
forgot to add this, when I removed the args parameter and saw the created 
pod with the crashing container, I have looked into the 'created yaml file' 
in Openshift and saw this :

<https://lh3.googleusercontent.com/-MqtWaGGeeDY/WujjGpNA9GI/AsU/uPIdfmE2By4u8AjLcbale0yslzGH39QHACLcBGAs/s1600/podyaml.png>


Op dinsdag 1 mei 2018 23:51:08 UTC+2 schreef Hung Do:
>
> I have removed the 'args' parameter from the yaml in the declarative 
> syntax and the container(openshift-slave-maven-centos7) just crashes 
> unfortunately.
>
>
> <https://lh3.googleusercontent.com/-I2SPhMJzWHM/Wujg6UvS0nI/AsI/TaXSid7yUg4VF5FKUw18Tbeg7xJqNOrjgCLcBGAs/s1600/Jenkinswithoutargs.png>
>
>
> <https://lh3.googleusercontent.com/-I2SPhMJzWHM/Wujg6UvS0nI/AsI/TaXSid7yUg4VF5FKUw18Tbeg7xJqNOrjgCLcBGAs/s1600/Jenkinswithoutargs.png>
>
> 
>
>
> Op dinsdag 1 mei 2018 20:55:32 UTC+2 schreef Carlos Sanchez:
>>
>> Just remove the 'args' parameter, it would use environments variables 
>>
>> On Tue, May 1, 2018, 20:18 Hung Do <hungd...@gmail.com> wrote:
>>
>>> Ah I thought I could just use the JNLP from the 
>>> openshift-slave-maven-centos7 
>>> <https://hub.docker.com/r/openshift/jenkins-slave-maven-centos7/>directly. 
>>> The end goal is to do the build with the openshift-slave-maven container 
>>> and do some integration tests with an attached mysql container, while at 
>>> the end also do some openshift CLI commands with the maven container. For 
>>> example, I started with the scripted pipelines syntax first. 
>>>
>>> podTemplate(label: 'maven2', serviceAccount: 'jenkins', cloud: 
>>> 'openshift', containers: [
>>>  containerTemplate(name: 'jnlp', image: 
>>> 'docker-registry.default.svc:5000/cicd/jenkins-slave-maven-centos7:v3.9'
>>> , alwaysPullImage: true, workingDir: '/tmp', args: '${computer.jnlpmac} 
>>> ${computer.name}', envVars: [
>>>containerEnvVar(key: 'MAVEN_MIRROR_URL', value: 'xx')
>>>  ]),
>>>  containerTemplate(name: 'mysql', image: 'mysql:5.6', alwaysPullImage: 
>>> true, envVars: [
>>>containerEnvVar(key: 'MYSQL_DATABASE', value: 'xxx'),
>>>containerEnvVar(key: 'MYSQL_USER', value: 'xxx'),
>>>containerEnvVar(key: 'MYSQL_PASSWORD', value: 'xxx'),
>>>containerEnvVar(key: 'MYSQL_RANDOM_ROOT_PASSWORD', value: 'yes')], 
>>> ports: [portMapping(containerPort: 3306)])], volumes: [
>>>  emptyDirVolume(mountPath: '/var/lib/mysql')
>>>  ]
>>>  ) {
>>>
>>> node('maven2') {
>>>stage('checkout') {
>>>checkout scm
>>>}
>>>
>>> stage('check java') {
>>>sh "java -version"
>>>}
>>>
>>> This worked out perfectly fine, I thought mapping  it 1:1 to the 
>>> declarative + yaml format would achieve the same result, but that was not 
>>> the case.
>>>
>>> Op dinsdag 1 mei 2018 19:55:23 UTC+2 schreef Matthew Ceroni:
>>>
>>>> Why even over ride the JNLP container? Just use the default and add 
>>>> another container to the POD with your build tools (then you don't even 
>>>> have to use the YAML format since you won't require any of the extended 
>>>> benefits it provides). Then use the container step to execute in that 
>>>> container.
>>>>
>>>> On Tuesday, May 1, 2018 at 5:53:06 AM UTC-7, Hung Do wrote:
>>>>>
>>>>> Hi everyone,
>>>>>
>>>>> I have a problem with this Jenkinsfile, which doesn't wants to build 
>>>>> for me
>>>>>
>>>>> #!/usr/bin/env groovy
>>>>>
>>>>> pipeline {
>>>>>   agent {
>>>>> kubernetes {
>>>>>   label 'maven2'
>>>>>   cloud 'openshift'
>>>>>   serviceAccount 'jenkins'
>>>>>   yaml """
>>>>> apiVersion: v1
>>>>> kind: Pod
>>>>> spec:
>>>>>   containers:
>>>>>   - name: jnlp
>>>>> image: 
>>>>> docker-registry.default.svc:5000/cicd/jenkins-slave-maven-centos7:v3.9
>>>>> imagePullPolicy: Always
>>>>> workingDir: /tmp
>>>>> args: ["${computer.jnlpmac} ${computer.name}"]
>>>>> """
>>>>

Re: [Kubernetes-Plugin] Declarative pipelines with Pod yaml, jnlp arguments issue

2018-05-01 Thread Hung Do
I have removed the 'args' parameter from the yaml in the declarative syntax 
and the container(openshift-slave-maven-centos7) just crashes unfortunately.

<https://lh3.googleusercontent.com/-I2SPhMJzWHM/Wujg6UvS0nI/AsI/TaXSid7yUg4VF5FKUw18Tbeg7xJqNOrjgCLcBGAs/s1600/Jenkinswithoutargs.png>

<https://lh3.googleusercontent.com/-I2SPhMJzWHM/Wujg6UvS0nI/AsI/TaXSid7yUg4VF5FKUw18Tbeg7xJqNOrjgCLcBGAs/s1600/Jenkinswithoutargs.png>




Op dinsdag 1 mei 2018 20:55:32 UTC+2 schreef Carlos Sanchez:
>
> Just remove the 'args' parameter, it would use environments variables 
>
> On Tue, May 1, 2018, 20:18 Hung Do <hungd...@gmail.com > 
> wrote:
>
>> Ah I thought I could just use the JNLP from the 
>> openshift-slave-maven-centos7 
>> <https://hub.docker.com/r/openshift/jenkins-slave-maven-centos7/>directly. 
>> The end goal is to do the build with the openshift-slave-maven container 
>> and do some integration tests with an attached mysql container, while at 
>> the end also do some openshift CLI commands with the maven container. For 
>> example, I started with the scripted pipelines syntax first. 
>>
>> podTemplate(label: 'maven2', serviceAccount: 'jenkins', cloud: 
>> 'openshift', containers: [
>>  containerTemplate(name: 'jnlp', image: 
>> 'docker-registry.default.svc:5000/cicd/jenkins-slave-maven-centos7:v3.9', 
>> alwaysPullImage: true, workingDir: '/tmp', args: '${computer.jnlpmac} ${
>> computer.name}', envVars: [
>>containerEnvVar(key: 'MAVEN_MIRROR_URL', value: 'xx')
>>  ]),
>>  containerTemplate(name: 'mysql', image: 'mysql:5.6', alwaysPullImage: 
>> true, envVars: [
>>containerEnvVar(key: 'MYSQL_DATABASE', value: 'xxx'),
>>containerEnvVar(key: 'MYSQL_USER', value: 'xxx'),
>>containerEnvVar(key: 'MYSQL_PASSWORD', value: 'xxx'),
>>containerEnvVar(key: 'MYSQL_RANDOM_ROOT_PASSWORD', value: 'yes')], 
>> ports: [portMapping(containerPort: 3306)])], volumes: [
>>  emptyDirVolume(mountPath: '/var/lib/mysql')
>>  ]
>>  ) {
>>
>> node('maven2') {
>>stage('checkout') {
>>checkout scm
>>}
>>
>> stage('check java') {
>>sh "java -version"
>>}
>>
>> This worked out perfectly fine, I thought mapping  it 1:1 to the 
>> declarative + yaml format would achieve the same result, but that was not 
>> the case.
>>
>> Op dinsdag 1 mei 2018 19:55:23 UTC+2 schreef Matthew Ceroni:
>>
>>> Why even over ride the JNLP container? Just use the default and add 
>>> another container to the POD with your build tools (then you don't even 
>>> have to use the YAML format since you won't require any of the extended 
>>> benefits it provides). Then use the container step to execute in that 
>>> container.
>>>
>>> On Tuesday, May 1, 2018 at 5:53:06 AM UTC-7, Hung Do wrote:
>>>>
>>>> Hi everyone,
>>>>
>>>> I have a problem with this Jenkinsfile, which doesn't wants to build 
>>>> for me
>>>>
>>>> #!/usr/bin/env groovy
>>>>
>>>> pipeline {
>>>>   agent {
>>>> kubernetes {
>>>>   label 'maven2'
>>>>   cloud 'openshift'
>>>>   serviceAccount 'jenkins'
>>>>   yaml """
>>>> apiVersion: v1
>>>> kind: Pod
>>>> spec:
>>>>   containers:
>>>>   - name: jnlp
>>>> image: 
>>>> docker-registry.default.svc:5000/cicd/jenkins-slave-maven-centos7:v3.9
>>>> imagePullPolicy: Always
>>>> workingDir: /tmp
>>>> args: ["${computer.jnlpmac} ${computer.name}"]
>>>> """
>>>> }
>>>> }
>>>> stages {
>>>> stage('Check Java') {
>>>> steps {
>>>> sh 'java -version'
>>>> }
>>>> }
>>>> }
>>>> }
>>>>
>>>>
>>>> With this Jenkinsfile, I get the following error 
>>>>
>>>> [Pipeline] End of Pipeline
>>>> groovy.lang.MissingPropertyException: No such property: computer for 
>>>> class: groovy.lang.Binding
>>>> at groovy.lang.Binding.getVariable(Binding.java:63)
>>>> at 
>>>> org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:242)
>>>> at o

Re: [Kubernetes-Plugin] Declarative pipelines with Pod yaml, jnlp arguments issue

2018-05-01 Thread Hung Do
Ah I thought I could just use the JNLP from the openshift-slave-maven-centos7 
<https://hub.docker.com/r/openshift/jenkins-slave-maven-centos7/>directly. 
The end goal is to do the build with the openshift-slave-maven container 
and do some integration tests with an attached mysql container, while at 
the end also do some openshift CLI commands with the maven container. For 
example, I started with the scripted pipelines syntax first. 

podTemplate(label: 'maven2', serviceAccount: 'jenkins', cloud: 'openshift', 
containers: [
 containerTemplate(name: 'jnlp', image: 
'docker-registry.default.svc:5000/cicd/jenkins-slave-maven-centos7:v3.9', 
alwaysPullImage: true, workingDir: '/tmp', args: '${computer.jnlpmac} 
${computer.name}', envVars: [
   containerEnvVar(key: 'MAVEN_MIRROR_URL', value: 'xx')
 ]),
 containerTemplate(name: 'mysql', image: 'mysql:5.6', alwaysPullImage: true, 
envVars: [
   containerEnvVar(key: 'MYSQL_DATABASE', value: 'xxx'),
   containerEnvVar(key: 'MYSQL_USER', value: 'xxx'),
   containerEnvVar(key: 'MYSQL_PASSWORD', value: 'xxx'),
   containerEnvVar(key: 'MYSQL_RANDOM_ROOT_PASSWORD', value: 'yes')], ports: 
[portMapping(containerPort: 3306)])], volumes: [
 emptyDirVolume(mountPath: '/var/lib/mysql')
 ]
 ) {

node('maven2') {
   stage('checkout') {
   checkout scm
   }

stage('check java') {
   sh "java -version"
   }

This worked out perfectly fine, I thought mapping  it 1:1 to the 
declarative + yaml format would achieve the same result, but that was not 
the case.

Op dinsdag 1 mei 2018 19:55:23 UTC+2 schreef Matthew Ceroni:
>
> Why even over ride the JNLP container? Just use the default and add 
> another container to the POD with your build tools (then you don't even 
> have to use the YAML format since you won't require any of the extended 
> benefits it provides). Then use the container step to execute in that 
> container.
>
> On Tuesday, May 1, 2018 at 5:53:06 AM UTC-7, Hung Do wrote:
>>
>> Hi everyone,
>>
>> I have a problem with this Jenkinsfile, which doesn't wants to build for 
>> me
>>
>> #!/usr/bin/env groovy
>>
>> pipeline {
>>   agent {
>> kubernetes {
>>   label 'maven2'
>>   cloud 'openshift'
>>   serviceAccount 'jenkins'
>>   yaml """
>> apiVersion: v1
>> kind: Pod
>> spec:
>>   containers:
>>   - name: jnlp
>> image: 
>> docker-registry.default.svc:5000/cicd/jenkins-slave-maven-centos7:v3.9
>> imagePullPolicy: Always
>> workingDir: /tmp
>> args: ["${computer.jnlpmac} ${computer.name}"]
>> """
>> }
>> }
>> stages {
>> stage('Check Java') {
>> steps {
>> sh 'java -version'
>> }
>> }
>> }
>> }
>>
>>
>> With this Jenkinsfile, I get the following error 
>>
>> [Pipeline] End of Pipeline
>> groovy.lang.MissingPropertyException: No such property: computer for class: 
>> groovy.lang.Binding
>> at groovy.lang.Binding.getVariable(Binding.java:63)
>> at 
>> org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:242)
>> at org.kohsuke.groovy.sandbox.impl.Checker$6.call(Checker.java:288)
>> at 
>> org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:292)
>> at 
>> org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:268)
>> at 
>> com.cloudbees.groovy.cps.sandbox.SandboxInvoker.getProperty(SandboxInvoker.java:29)
>> at 
>> com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20)
>> at WorkflowScript.run(WorkflowScript:18)
>> at 
>> org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.call(jar:file:/var/lib/jenkins/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy:56)
>> at WorkflowScript.run(WorkflowScript:3)
>> at ___cps.transform___(Native Method)
>> at 
>> com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.get(PropertyishBlock.java:74)
>> at 
>> com.cloudbees.groovy.cps.LValueBlock$GetAdapter.receive(LValueBlock.java:30)
>> at 
>> com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.fixName(PropertyishBlock.java:66)
>> at sun.reflect.GeneratedMethodAccessor425.invoke(Unknown Source)
>> at 
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav

Re: [Kubernetes-Plugin] Declarative pipelines with Pod yaml, jnlp arguments issue

2018-05-01 Thread Hung Do
I am running on Kubernetes plug 1.6.0 and Jenkins 2.89.4 btw.

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/5968804e-1bc9-4060-ad0b-0fce1e54f85e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[Kubernetes-Plugin] Declarative pipelines with Pod yaml, jnlp arguments issue

2018-05-01 Thread Hung Do
Hi everyone,

I have a problem with this Jenkinsfile, which doesn't wants to build for me

#!/usr/bin/env groovy

pipeline {
  agent {
kubernetes {
  label 'maven2'
  cloud 'openshift'
  serviceAccount 'jenkins'
  yaml """
apiVersion: v1
kind: Pod
spec:
  containers:
  - name: jnlp
image: 
docker-registry.default.svc:5000/cicd/jenkins-slave-maven-centos7:v3.9
imagePullPolicy: Always
workingDir: /tmp
args: ["${computer.jnlpmac} ${computer.name}"]
"""
}
}
stages {
stage('Check Java') {
steps {
sh 'java -version'
}
}
}
}


With this Jenkinsfile, I get the following error 

[Pipeline] End of Pipeline
groovy.lang.MissingPropertyException: No such property: computer for class: 
groovy.lang.Binding
at groovy.lang.Binding.getVariable(Binding.java:63)
at 
org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:242)
at org.kohsuke.groovy.sandbox.impl.Checker$6.call(Checker.java:288)
at 
org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:292)
at 
org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:268)
at 
com.cloudbees.groovy.cps.sandbox.SandboxInvoker.getProperty(SandboxInvoker.java:29)
at 
com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20)
at WorkflowScript.run(WorkflowScript:18)
at 
org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.call(jar:file:/var/lib/jenkins/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy:56)
at WorkflowScript.run(WorkflowScript:3)
at ___cps.transform___(Native Method)
at 
com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.get(PropertyishBlock.java:74)
at 
com.cloudbees.groovy.cps.LValueBlock$GetAdapter.receive(LValueBlock.java:30)
at 
com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.fixName(PropertyishBlock.java:66)
at sun.reflect.GeneratedMethodAccessor425.invoke(Unknown Source)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at 
com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
at 
com.cloudbees.groovy.cps.impl.ConstantBlock.eval(ConstantBlock.java:21)
at com.cloudbees.groovy.cps.Next.step(Next.java:83)
at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:174)
at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:163)
at 
org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:122)
at 
org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:261)
at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:163)
at 
org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$101(SandboxContinuable.java:34)
at 
org.jenkinsci.plugins.workflow.cps.SandboxContinuable.lambda$run0$0(SandboxContinuable.java:59)
at 
org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:108)
at 
org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:58)
at 
org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:174)
at 
org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:332)
at 
org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$200(CpsThreadGroup.java:83)
at 
org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:244)
at 
org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:232)
at 
org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:64)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at 
hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112)
at 
jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Finished: FAILURE


If I remove this part 

args: ["${computer.jnlpmac} ${computer.name}"]


Then the Jenkinsfile gets accepted, the pod get started, but the container 
crashes because there are no arguments. It is the official 

Docker pipeline plugin

2018-01-02 Thread Hung Do
Hi everyone,

I'm struggling a little bit with the docker pipeline plugin,
the building of small image goes well, but when I try to push it to my 
private dockerhub registry, I get the following 

[3-email_feature_jenkinsTest-5LSQUNLKW2A3IQQVQE7P6TOWAJPMB4NKMLQH3CFFATJHMGMXUSZQ]
 Running shell script
+ docker tag --force=true hungdo93/testatot 
registry.hub.docker.com/hungdo93/testatot:test
unknown flag: --force
See 'docker tag --help'.
+ docker tag hungdo93/testatot registry.hub.docker.com/hungdo93/testatot:test


[3-email_feature_jenkinsTest-5LSQUNLKW2A3IQQVQE7P6TOWAJUJAUKMLQH3CFFATJHMGMXUSZQ]
 Running shell script
+ docker push registry.hub.docker.com/hungdo93/testatot:test
The push refers to a repository [registry.hub.docker.com/hungdo93/testatot]
2c55342d652e: Preparing
28baa3bk1903: Preparing
5b1e37e74377: Preparing
04a294je844e: Preparing
denied: requested access to the resource is denied




This is the relevant part of my jenkinsfile

def dockerImage
stage('build docker') {
sh "cp -R src/main/docker target/"
sh "cp target/*.war target/docker/"
dockerImage = docker.build('hungdo93/testatot', 'target/docker')
}

stage('publish docker') {
docker.withRegistry('https://registry.hub.docker.com/', 
'docker-hub-hung') {
dockerImage.push 'test'
}
}
}




Ofcourse, I've made a username/password credentials id 'docker-hub-hung' 
and my private repo is hungdo93/testatot.
I have used the BlueOcean UI for this.

Thanks in advance!

Hung

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/02fbca3e-f045-4a16-9c74-e21ecc4b6ca0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.