用于传递JAVA_ARGS的Jenkins赫尔姆值

insrf1ej  于 2023-03-01  发布在  Jenkins
关注(0)|答案(3)|浏览(198)

我想在使用官方的helm图表创建的jenkinskubernetes示例中传递一些JAVA_ARGS
此类值的示例如下:

JAVA_ARGS="-Djava.awt.headless=true -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.HEARTBEAT_CHECK_INTERVAL=86400

等等。
values.yaml中,哪里是这样做的地方?
这是javaOpts还是javaOpts

olmpazwi

olmpazwi1#

该图表使用Jenkins Docker图像,该图像显示:
您可能需要定制运行Jenkins的JVM,通常是为了传递系统属性(属性列表)或调整堆内存设置。
在图表中,这是使用来自vaues.yaml的Values.master.javaOpts设置的

xwbd5t1u

xwbd5t1u2#

我花了大量的时间寻找答案,并设法逻辑通过一个解决方案,让我满意。我知道这是已经回答,但也许它会帮助有人谁正在寻找这一点。
下面是我的job.yaml的摘录:

template:
    spec:
      containers:
      - name: some-job
        command: ["/somewhere/jre/bin/java", "-Djava.abc.handler.pkgs=util.connection", "-Dcom.abc.properties=/opt/abc/def/deployment.properties", "-cp", "/opt/abc/def/lib/jar/somejava.jar:*:.", "com.abc.def.Deployer"]

正如您所看到的,-Dargs需要作为一个完整的单元来指定,并且每个单元都是相互分离的。我不得不在命令的前面也有它们,但是这可能不是必需的。之后,命令的其余部分必须遵循标准格式。

sauutmhj

sauutmhj3#

将系统属性传入Jenkins控制器VM的正确方法是使用controller.containerEnv值传入JENKINS_JAVA_OPTS。默认情况下,此变量未设置,因此您可以安全地为其提供自己的值,而不会有覆盖重要内容的风险。
示例:

controller:
  containerEnv:
    - name: JENKINS_JAVA_OPTS
      value: "-Dcom.cloudbees.jenkins.plugins.kubernetes_credentials_provider.KubernetesCredentialProvider.labelSelector=\"owner=jenkins\""

相关问题