Jenkins 将文件添加到现有Openshift配置映射中
是否可以将文件添加到现有Openshift配置映射中 正如我所建议的,我将构建一个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 - 我只发现这个命令可以执行此操作,但它没有添加键“
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