【问题标题】:Is there a way to edit my openshift configmap using oc command有没有办法使用 oc 命令编辑我的 openshift configmap
【发布时间】:2021-06-16 03:10:59
【问题描述】:

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

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

非常感谢您的帮助:)

【问题讨论】:

    标签: python automation openshift configmap


    【解决方案1】:

    您只需要使用“输入”和“输出”即可。

    想象一下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 - 从标准输入读取并应用

    【讨论】:

      【解决方案2】:

      这种用例有一个"oc"command:oc patch

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

      如果你在网上搜索“oc patch”,你会发现很多例子

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-09-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多