jenkins-slaves中的Kubernetes和settings.xml

时间:2017-12-14 16:50:58

标签: jenkins kubernetes

我正在配置一个主Jenkins来启动kubernetes的奴隶。 当奴隶启动它的管道时,我需要他从主人那里读取(或复制)一个maven settings.xml。 使用kubernetes插件,我还没有找到办法。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

也许詹金斯Pipeline: Basic Steps可以帮助你。他们提供了stash/unstash步骤。这意味着您将settings.xml存储在主节点上并将其解压缩到运行构建的从属服务器上。我认为当前stash / unstash仅支持当前管道工作空间的子目录,但您可以通过在存储之前将settings.xml复制到当前工作空间来解决此问题。整个事情可能看起来像那样:

stage('Build') {
  node('master') {
    sh 'cp /path/to/master-node-settings-xml .'
    stash includes: 'settings.xml', name: 'settingsXml'
  }

  node('slave') {
    unstash 'settingsXml'
    sh 'mv settings.xml /path/to/slave-node-settings-xml'

    # Start your build here now ..
  }
}

另一个选择是将settings.xml预烘焙到您正用于在Kubernetes中旋转奴隶的泊坞窗图像中。当然,如果您的settings.xml动态更改或包含任何类型的敏感数据(如果可能,应避免将敏感信息放入docker镜像中),这将不是最佳解决方案。