有没有办法使用oc命令编辑我的openshift配置映射

2024-09-30 16:24:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个简单的自动化程序,将OpenShift中的配置映射内容从当前内容替换为已编辑的yaml文件,我尝试了许多oc命令,但都失败了,我想知道是否有人知道如何做到这一点

让你明白: 我正在使用oc get congifmap <configmap name>从我的项目中获取当前的configmap, 然后,我使用python对configmap数据进行更改。 然后我想将当前配置映射更改为新编辑的配置映射。 我尝试过编辑、应用、更改,但都失败了

非常感谢您的帮助:)


Tags: 文件数据项目name命令程序编辑yaml
2条回答

您只需要处理“输入”和“输出”

想象一个lighttpd.conf

server.modules = (
    "mod_scgi",
    "mod_compress",
    "mod_accesslog"
)
oc create cm lighttpd  from-file lighttpd.conf

因此,作为一个例子,让我们将mod_scgi更改为mod_fastcgi。所以我写了这个脚本:

import fileinput

for line in fileinput.input():
  if 'mod_scgi' in line:
    print(line.replace('scgi', 'fastcgi').rstrip())
  else:
    print(line.rstrip())

因此,要更改configMap,请更新其值并再次应用:

oc get cm -o yaml | python modify.py | oc apply -f -
  • get -o yaml在屏幕上打印所有信息
  • 输出转到脚本modify.py
  • modify.py更改并打印从标准输入读取的行
  • 输出转到oc
  • oc apply -f -读取标准输入并应用

对于这种用例有一个"oc"命令:oc patch

使用"oc patch"可以编辑、替换、添加、删除任何OCP对象的部分

如果你用谷歌搜索“oc补丁”,你会在网上找到很多例子

Official OCP v4.7 oc patch doc
Tons of examples here
OC patch "man" page
Other examples

相关问题 更多 >