Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-68779

Using personal credentials in declarative Pipeline fails

      I try to use a user credential in declafative pipeline which I select via a credential parameter.

      The parameter selection allows me to pick a credential which is scoped to my user.
      How ever if I try later on to the selected credential in a withcredential block I get an error  mo such credential. If I pick a credential wit scope global the code works.

       

       
      pipeline {
          agent none
          tools {
              jdk 'JDK 11'
               maven 'Maven 3.8.4'
              }
          options {
             buildDiscarder logRotator(
                  artifactDaysToKeepStr: '',
                  artifactNumToKeepStr: '3',
                  daysToKeepStr: '',
                  numToKeepStr: '5')
               }

          parameters {
                credentials credentialType: 'com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey',
                name: 'DEPLOY_CRED', required: true, defaultValue: '',
                     description: 'The credential used on the target systems for the deployment (Username, SSH Key)'
                   
               }

          stages {

              stage( 'public') {
                  agent any
                  steps {
                      echo "Deploy monitoring on  XXX  as ${DEPLOY_CRED{color:#569cd6"}}

                      withCredentials([sshUserPrivateKey(credentialsId: DEPLOY_CRED ,
                          keyFileVariable: 'KEY_PATH',
                          usernameVariable: 'REMOTE_USER' )]) {
                         
                             
                              sh 'cp -f $KEY_PATH luckilucki.txt'
                              echo "${REMOTE_USER{color:#569cd6 ${KEY_PATH{color:#569cd6}}"}}

                         }
                 }
             }
         }
      }
       

          [JENKINS-68779] Using personal credentials in declarative Pipeline fails

          Frank Graf created issue -
          Frank Graf made changes -
          Description Original: I try to use a user credential in declafative pipeline which I select via a credential parameter.

          The parameter selection allows me to pick a credential which is scoped to my user.
          How ever if I try later on to the selected credential in a withcredential block I get an error  mo such credential. If I pick a credential wit scope global the code works.

           
          {color:#d4d4d4}ppipeline {{color}
          {color:#d4d4d4}    agent none {color}
          {color:#d4d4d4}    tools {{color}
          {color:#d4d4d4}        jdk {color}{color:#ce9178}'JDK 11'{color}
          {color:#d4d4d4}         maven {color}{color:#ce9178}'Maven 3.8.4'{color}
          {color:#d4d4d4}    }{color}
          {color:#d4d4d4}    options {{color}
          {color:#d4d4d4}       buildDiscarder logRotator({color}
          {color:#d4d4d4}            artifactDaysToKeepStr: {color}{color:#ce9178}''{color}{color:#d4d4d4},{color}
          {color:#d4d4d4}            artifactNumToKeepStr: {color}{color:#ce9178}'3'{color}{color:#d4d4d4}, {color}
          {color:#d4d4d4}            daysToKeepStr: {color}{color:#ce9178}''{color}{color:#d4d4d4}, {color}
          {color:#d4d4d4}            numToKeepStr: {color}{color:#ce9178}'5'{color}{color:#d4d4d4}){color}
          {color:#d4d4d4}    }{color}

          {color:#d4d4d4}    parameters {{color}
          {color:#d4d4d4}          credentials credentialType: {color}{color:#ce9178}'com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey'{color}{color:#d4d4d4},{color}
          {color:#d4d4d4}          name: {color}{color:#ce9178}'DEPLOY_CRED'{color}{color:#d4d4d4}, required: {color}{color:#569cd6}true{color}{color:#d4d4d4}, defaultValue: {color}{color:#ce9178}''{color}{color:#d4d4d4}, {color}
          {color:#d4d4d4}               description: {color}{color:#ce9178}'The credential used on the target systems for the deployment (Username, SSH Key)'{color}
          {color:#d4d4d4}              {color}
          {color:#d4d4d4}    }{color}

          {color:#d4d4d4}    stages {{color}

          {color:#d4d4d4}        stage( {color}{color:#ce9178}'public'{color}{color:#d4d4d4}) {{color}
          {color:#d4d4d4}            agent any{color}
          {color:#d4d4d4}            steps {{color}
          {color:#d4d4d4}                echo {color}{color:#ce9178}"Deploy monitoring on  XXX  as {color}{color:#569cd6}${{color}{color:#d4d4d4}DEPLOY_CRED{color}{color:#569cd6}}{color}{color:#ce9178}"{color}

          {color:#d4d4d4}                withCredentials([sshUserPrivateKey(credentialsId: DEPLOY_CRED ,{color}
          {color:#d4d4d4}                    keyFileVariable: {color}{color:#ce9178}'KEY_PATH'{color}{color:#d4d4d4},{color}
          {color:#d4d4d4}                    usernameVariable: {color}{color:#ce9178}'REMOTE_USER'{color}{color:#d4d4d4} )]) {{color}
          {color:#d4d4d4}                    {color}
          {color:#d4d4d4}                        {color}
          {color:#d4d4d4}                        sh {color}{color:#ce9178}'cp -f $KEY_PATH luckilucki.txt'{color}
          {color:#d4d4d4}                        echo {color}{color:#ce9178}"{color}{color:#569cd6}${{color}{color:#d4d4d4}REMOTE_USER{color}{color:#569cd6}}{color}{color:#ce9178} {color}{color:#569cd6}${{color}{color:#d4d4d4}KEY_PATH{color}{color:#569cd6}}{color}{color:#ce9178}"{color}

          {color:#d4d4d4}                }{color}
          {color:#d4d4d4}            }{color}
          {color:#d4d4d4}        }{color}
          {color:#d4d4d4}   {color}

          {color:#d4d4d4}    }{color}
          {color:#d4d4d4}}{color}
           
          New: I try to use a user credential in declafative pipeline which I select via a credential parameter.

          The parameter selection allows me to pick a credential which is scoped to my user.
          How ever if I try later on to the selected credential in a withcredential block I get an error  mo such credential. If I pick a credential wit scope global the code works.

           

           
          {{pipeline {}}
          {{    agent none}}
          {{    tools {}}
          {{        jdk 'JDK 11'}}
          {{         maven 'Maven 3.8.4'}}
          {{    }}}
          {{    options {}}
          {{       buildDiscarder logRotator(}}
          {{            artifactDaysToKeepStr: '',}}
          {{            artifactNumToKeepStr: '3',}}
          {{            daysToKeepStr: '',}}
          {{            numToKeepStr: '5')}}
          {{    }}}

          {{    parameters {}}
          {{          credentials credentialType: 'com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey',}}
          {{          name: 'DEPLOY_CRED', required: true, defaultValue: '',}}
          {{               description: 'The credential used on the target systems for the deployment (Username, SSH Key)'}}
          {{             }}
          {{    }}}

          {{    stages {}}

          {{        stage( 'public') {}}
          {{            agent any}}
          {{            steps {}}
          {{                echo "Deploy monitoring on  XXX  as ${DEPLOY_CRED\{color:#569cd6}}"}}

          {{                withCredentials([sshUserPrivateKey(credentialsId: DEPLOY_CRED ,}}
          {{                    keyFileVariable: 'KEY_PATH',}}
          {{                    usernameVariable: 'REMOTE_USER' )]) {}}
          {{                   }}
          {{                       }}
          {{                        sh 'cp -f $KEY_PATH luckilucki.txt'}}
          {{                        echo "${REMOTE_USER\{color:#569cd6}} ${KEY_PATH\{color:#569cd6}}"}}

          {{                }}}
          {{            }}}
          {{        }}}
          {{   }}

          {{    }}}
          {{}}}
           
          Frank Graf made changes -
          Description Original: I try to use a user credential in declafative pipeline which I select via a credential parameter.

          The parameter selection allows me to pick a credential which is scoped to my user.
          How ever if I try later on to the selected credential in a withcredential block I get an error  mo such credential. If I pick a credential wit scope global the code works.

           

           
          {{pipeline {}}
          {{    agent none}}
          {{    tools {}}
          {{        jdk 'JDK 11'}}
          {{         maven 'Maven 3.8.4'}}
          {{    }}}
          {{    options {}}
          {{       buildDiscarder logRotator(}}
          {{            artifactDaysToKeepStr: '',}}
          {{            artifactNumToKeepStr: '3',}}
          {{            daysToKeepStr: '',}}
          {{            numToKeepStr: '5')}}
          {{    }}}

          {{    parameters {}}
          {{          credentials credentialType: 'com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey',}}
          {{          name: 'DEPLOY_CRED', required: true, defaultValue: '',}}
          {{               description: 'The credential used on the target systems for the deployment (Username, SSH Key)'}}
          {{             }}
          {{    }}}

          {{    stages {}}

          {{        stage( 'public') {}}
          {{            agent any}}
          {{            steps {}}
          {{                echo "Deploy monitoring on  XXX  as ${DEPLOY_CRED\{color:#569cd6}}"}}

          {{                withCredentials([sshUserPrivateKey(credentialsId: DEPLOY_CRED ,}}
          {{                    keyFileVariable: 'KEY_PATH',}}
          {{                    usernameVariable: 'REMOTE_USER' )]) {}}
          {{                   }}
          {{                       }}
          {{                        sh 'cp -f $KEY_PATH luckilucki.txt'}}
          {{                        echo "${REMOTE_USER\{color:#569cd6}} ${KEY_PATH\{color:#569cd6}}"}}

          {{                }}}
          {{            }}}
          {{        }}}
          {{   }}

          {{    }}}
          {{}}}
           
          New: I try to use a user credential in declafative pipeline which I select via a credential parameter.

          The parameter selection allows me to pick a credential which is scoped to my user.
          How ever if I try later on to the selected credential in a withcredential block I get an error  mo such credential. If I pick a credential wit scope global the code works.

           

           
          {{pipeline {}}
          {{    agent none}}
          {{    tools {}}
          {{        jdk 'JDK 11'}}
          {{         maven 'Maven 3.8.4'}}
                  }
          {{    options {}}
          {{       buildDiscarder logRotator(}}
          {{            artifactDaysToKeepStr: '',}}
          {{            artifactNumToKeepStr: '3',}}
          {{            daysToKeepStr: '',}}
          {{            numToKeepStr: '5')}}
                   }

          {{    parameters {}}
          {{          credentials credentialType: 'com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey',}}
          {{          name: 'DEPLOY_CRED', required: true, defaultValue: '',}}
          {{               description: 'The credential used on the target systems for the deployment (Username, SSH Key)'}}
          {{             }}
                   }

          {{    stages {}}

          {{        stage( 'public') {}}
          {{            agent any}}
          {{            steps {}}
          {{{}                echo "Deploy monitoring on  XXX  as $\{DEPLOY_CRED{color:#569cd6{}}}"}}

          {{                withCredentials([sshUserPrivateKey(credentialsId: DEPLOY_CRED ,}}
          {{                    keyFileVariable: 'KEY_PATH',}}
          {{                    usernameVariable: 'REMOTE_USER' )]) {}}
          {{                   }}
          {{                       }}
          {{                        sh 'cp -f $KEY_PATH luckilucki.txt'}}
          {{                        echo "$\{REMOTE_USER{color:#569cd6}} ${KEY_PATH\{color:#569cd6}}"}}

                             }
                     }
                 }
          {{  }}}
          {{}}}
           
          Frank Graf made changes -
          Description Original: I try to use a user credential in declafative pipeline which I select via a credential parameter.

          The parameter selection allows me to pick a credential which is scoped to my user.
          How ever if I try later on to the selected credential in a withcredential block I get an error  mo such credential. If I pick a credential wit scope global the code works.

           

           
          {{pipeline {}}
          {{    agent none}}
          {{    tools {}}
          {{        jdk 'JDK 11'}}
          {{         maven 'Maven 3.8.4'}}
                  }
          {{    options {}}
          {{       buildDiscarder logRotator(}}
          {{            artifactDaysToKeepStr: '',}}
          {{            artifactNumToKeepStr: '3',}}
          {{            daysToKeepStr: '',}}
          {{            numToKeepStr: '5')}}
                   }

          {{    parameters {}}
          {{          credentials credentialType: 'com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey',}}
          {{          name: 'DEPLOY_CRED', required: true, defaultValue: '',}}
          {{               description: 'The credential used on the target systems for the deployment (Username, SSH Key)'}}
          {{             }}
                   }

          {{    stages {}}

          {{        stage( 'public') {}}
          {{            agent any}}
          {{            steps {}}
          {{{}                echo "Deploy monitoring on  XXX  as $\{DEPLOY_CRED{color:#569cd6{}}}"}}

          {{                withCredentials([sshUserPrivateKey(credentialsId: DEPLOY_CRED ,}}
          {{                    keyFileVariable: 'KEY_PATH',}}
          {{                    usernameVariable: 'REMOTE_USER' )]) {}}
          {{                   }}
          {{                       }}
          {{                        sh 'cp -f $KEY_PATH luckilucki.txt'}}
          {{                        echo "$\{REMOTE_USER{color:#569cd6}} ${KEY_PATH\{color:#569cd6}}"}}

                             }
                     }
                 }
          {{  }}}
          {{}}}
           
          New: I try to use a user credential in declafative pipeline which I select via a credential parameter.

          The parameter selection allows me to pick a credential which is scoped to my user.
          How ever if I try later on to the selected credential in a withcredential block I get an error  mo such credential. If I pick a credential wit scope global the code works.

           

           
          {{pipeline {}}
          {{    agent none}}
          {{    tools {}}
          {{        jdk 'JDK 11'}}
          {{         maven 'Maven 3.8.4'}}
                  }
          {{    options {}}
          {{       buildDiscarder logRotator(}}
          {{            artifactDaysToKeepStr: '',}}
          {{            artifactNumToKeepStr: '3',}}
          {{            daysToKeepStr: '',}}
          {{            numToKeepStr: '5')}}
                   }

          {{    parameters {}}
          {{          credentials credentialType: 'com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey',}}
          {{          name: 'DEPLOY_CRED', required: true, defaultValue: '',}}
          {{               description: 'The credential used on the target systems for the deployment (Username, SSH Key)'}}
          {{             }}
                   }

          {{    stages {}}

          {{        stage( 'public') {}}
          {{            agent any}}
          {{            steps {}}
          {{{}                echo "Deploy monitoring on  XXX  as $\{DEPLOY_CRED{color:#569cd6{}}}"}}

          {{                withCredentials([sshUserPrivateKey(credentialsId: DEPLOY_CRED ,}}
          {{                    keyFileVariable: 'KEY_PATH',}}
          {{                    usernameVariable: 'REMOTE_USER' )]) {}}
          {{                   }}
          {{                       }}
          {{                        sh 'cp -f $KEY_PATH luckilucki.txt'}}
          {{                        echo "$\{REMOTE_USER{color:#569cd6}} ${KEY_PATH\{color:#569cd6}}"}}

                             }
                     }
                 }
             }
          {{}}}
           

            Unassigned Unassigned
            grafra_pass Frank Graf
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: