Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins 将文件添加到现有Openshift配置映射中_Jenkins_Openshift_Configmap - Fatal编程技术网

Jenkins 将文件添加到现有Openshift配置映射中

Jenkins 将文件添加到现有Openshift配置映射中,jenkins,openshift,configmap,Jenkins,Openshift,Configmap,是否可以将文件添加到现有Openshift配置映射中 正如我所建议的,我将构建一个Jenkins作业,该作业将自动更新Openshift配置映射中的特定密钥,但现在我在实际操作中面临问题。我们总是可以有多个配置图,但为了清洁起见,我的问题仍然存在 oc create configmap my-config --from-file=path/to/file.properties --dry-run -o yaml | oc apply -f - 我只发现这个命令可以执行此操作,但它没有添加键“

是否可以将文件添加到现有Openshift配置映射中

正如我所建议的,我将构建一个Jenkins作业,该作业将自动更新Openshift配置映射中的特定密钥,但现在我在实际操作中面临问题。我们总是可以有多个配置图,但为了清洁起见,我的问题仍然存在

oc create configmap my-config --from-file=path/to/file.properties --dry-run -o 
yaml | oc apply -f -
我只发现这个命令可以执行此操作,但它没有添加键“file.properties”及其内容作为值,而是用键“file.properties”替换整个configMap,这是我不希望执行的操作

这里的用例是一些团队部署特定的configMap,如果可能的话,我应该能够使用额外的值更新和维护configMap


编辑:我找到了2016年的线程,但似乎已从openshift 3.10中删除了
oc update
,我可以通过使用json而不是yaml,并使用其乘法运算符(
*
),当与对象一起使用时,将递归地合并它们(为了可读性,拆分行):


如果您正在寻找一个单行程序,那么这很好,您也可以使用
oc edit configmap my config
,或
oc replace
(使用新准备的json或yaml文件)或使用web控制台在文本编辑器中手动编辑configmap。使用
oc-patch也有可能,但我没能很快让它工作。

oc-patch是你的朋友:

oc patch cm myconfig -p $(cat patch_file.yaml)
其中patch_file.yaml具有:

data:
  file.properties: |
    content of the file here

如果file.properties不在cm中,它将被创建并与其余数据合并,如果它在cm中,它将被替换。

如果我只想替换file.properties,该如何操作?如果您已经阅读了注释,该如何操作?“。。。如果它在,它将被替换。”
data:
  file.properties: |
    content of the file here