Re: [Kubernetes-Plugin] Declarative pipelines with Pod yaml, jnlp arguments issue
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 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-registr
Re: [Kubernetes-Plugin] Declarative pipelines with Pod yaml, jnlp arguments issue
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 > > 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 >>>> cl
Re: [Kubernetes-Plugin] Declarative pipelines with Pod yaml, jnlp arguments issue
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 >
Re: [Kubernetes-Plugin] Declarative pipelines with Pod yaml, jnlp arguments issue
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
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 openshift/jenkins-slave-maven-centos7:
Docker pipeline plugin
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.