登录
首页 >  Golang >  Go问答

读取和编辑 YAML 的最简单且优化的方法

来源:stackoverflow

时间:2024-04-17 20:30:33 213浏览 收藏

golang学习网今天将给大家带来《读取和编辑 YAML 的最简单且优化的方法》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

问题内容

我有一些 yaml 文件,我想应用它们来创建自定义资源。但在应用它之前,我想更改 yaml 片段的规范和 env。那么最好的方法是什么?

我现在正在做的是:

假设这是 yaml

apiVersion: litmuschaos.io/v1alpha1
kind: ChaosEngine
metadata:
  name: nginx-chaos
  namespace: default
spec:
  appinfo:
    appns: 'default'
    applabel: 'app=nginx'
    appkind: 'deployment'
  # It can be true/false
  annotationCheck: 'false'
  # It can be active/stop
  engineState: 'active'
  chaosServiceAccount: pod-delete-sa
  monitoring: false
  # It can be delete/retain
  jobCleanUpPolicy: 'delete'
  experiments:
    - name: pod-delete
      spec:
        components:
          env:
            # set chaos duration (in sec) as desired
            - name: TOTAL_CHAOS_DURATION
              value: '30'

            # set chaos interval (in sec) as desired
            - name: CHAOS_INTERVAL
              value: '10'
              
            # pod failures without '--force' & default terminationGracePeriodSeconds
            - name: FORCE
              value: 'false'
  1. 我从原始链接下载此文件。 (1 个函数用于此)
  2. jobcleanuppolicy: 'delete' 等字段替换为 jobcleanuppolicy: 'retain' (1 fn)
  3. 找到匹配项后,将下一行替换为 value: 'false'value: 'true' for force env。 (1 fn)
  4. 应用创建的最终清单! (1 个功能)

这可以优化吗?


解决方案


如果您创建一个表示资源的结构(或者更好的是,可以导入定义 CRD 的包),您可以将 yaml 字符串 marshal 放入结构中,然后直接将字段编辑为结构的字段

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《读取和编辑 YAML 的最简单且优化的方法》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>