docker - OKD 3.9 jenkins奴隶权限被拒绝

标签 docker jenkins kubernetes openshift okd

当我在openshift / OKD中的容器中运行构建时,我遇到一个奇怪的问题:

Running in Durability level: MAX_SURVIVABILITY
[Pipeline] node
Still waiting to schedule task
‘Jenkins’ doesn’t have label ‘slave’
Agent slave-8n2r5 is provisioned from template Kubernetes Pod Template
Agent specification [Kubernetes Pod Template] (slave): 
* [jnlp] docker-registry.default.svc:5000/openshift/jenkins-slave-base-    centos7:v3.9

Running on slave-8n2r5 in /tmp/workspace/test_job
[Pipeline] {
[Pipeline] stage (hello)
Using the ‘stage’ step without a block argument is deprecated
Entering stage hello
Proceeding
[Pipeline] echo
dupa
[Pipeline] sh
[test_job] Running shell script
sh: /tmp/workspace/test_job@tmp/durable-bda908b8/script.sh: Permission     denied
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 126
Finished: FAILURE

管道:
node('slave') {
    stage 'hello'
        println('dupa')
        sh 'git clone http://pac-app-test-01.raiffeisen.pl:8081/a/cm-devops-okd-example-python'
}

从属容器配置:
        <org.csanchez.jenkins.plugins.kubernetes.PodTemplate>
      <inheritFrom></inheritFrom>
      <name>slave</name>
      <namespace></namespace>
      <privileged>false</privileged>
      <capOnlyOnAlivePods>false</capOnlyOnAlivePods>
      <alwaysPullImage>false</alwaysPullImage>
      <instanceCap>2147483647</instanceCap>
      <slaveConnectTimeout>100</slaveConnectTimeout>
      <idleMinutes>0</idleMinutes>
      <activeDeadlineSeconds>0</activeDeadlineSeconds>
      <label>slave</label>
      <serviceAccount>jenkins</serviceAccount>
      <nodeSelector></nodeSelector>
      <nodeUsageMode>NORMAL</nodeUsageMode>
      <customWorkspaceVolumeEnabled>false</customWorkspaceVolumeEnabled>
      <workspaceVolume class="org.csanchez.jenkins.plugins.kubernetes.volumes.workspace.EmptyDirWorkspaceVolume">
        <memory>false</memory>
      </workspaceVolume>
      <volumes/>
      <containers>
        <org.csanchez.jenkins.plugins.kubernetes.ContainerTemplate>
          <name>jnlp</name>
          <image>docker-registry.default.svc:5000/openshift/jenkins-slave-base-centos7:v3.9</image>
          <privileged>false</privileged>
          <alwaysPullImage>true</alwaysPullImage>
          <workingDir>/tmp</workingDir>
          <command></command>
          <args>${computer.jnlpmac} ${computer.name}</args>
          <ttyEnabled>false</ttyEnabled>
          <resourceRequestCpu></resourceRequestCpu>
          <resourceRequestMemory></resourceRequestMemory>
          <resourceLimitCpu></resourceLimitCpu>
          <resourceLimitMemory></resourceLimitMemory>
          <envVars/>
          <ports/>
          <livenessProbe>
            <execArgs></execArgs>
            <timeoutSeconds>0</timeoutSeconds>
            <initialDelaySeconds>0</initialDelaySeconds>
            <failureThreshold>0</failureThreshold>
            <periodSeconds>0</periodSeconds>
            <successThreshold>0</successThreshold>
          </livenessProbe>
        </org.csanchez.jenkins.plugins.kubernetes.ContainerTemplate>

主jenkins容器和从属容器都在相同的 namespace 中运行。
我可以登录到该容器,权限没有问题。我认为这是一个愚蠢的错误,但我自己找不到。我可以让我感到困惑吗?

最佳答案

当我使用选项emptyDir()的openshift装载卷noexec时,我在更改工作空间的管道中找到了解决此问题的方法:

  node('slave') {
    ws('/tmp/test/' + env.JOB_NAME){
     println('dupa')
     sh 'git clone http://xxxx:8081/a/cm-devops-okd-example-python'
  }

关于docker - OKD 3.9 jenkins奴隶权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53046317/

相关文章:

docker - 如何基于现有镜像创建新的 docker 镜像?

带有 Docker 身份验证的 MongoDB

kubernetes - 如何在GCP Cloud Composer上的Apache Airflow上将带有 `KubernetesPodOperator`的连接 Hook 用作环境变量

node.js - 在生产环境(kubernetes)中启用 --inspect for nodejs 是个好主意吗?

docker - 将Artifactory配置为位于http://some.domain:port而不是http://some.domain:port/artifactory/

java - 通过JMX访问docker容器中运行的tomcat

security - Jenkins 中 HTTP 404 页面 URL 的自定义页面

jenkins - 如何配置 Jenkins Gerrit 触发事件以排除文件路径?

java - Jenkins构建SpringBoot项目失败(找不到类org.springframework.asm.ClassVisitor)

kubernetes - 如何在 Kubernetes 的 Pod 内登录