【问题标题】:diff between whats active on cluster versus kustomize集群上活跃的内容与 kustomize 之间的差异
【发布时间】:2020-05-19 21:57:52
【问题描述】:

kustomize 的文档提供了一个很好的单行代码,可以比较两个不同的叠加层...

diff \
  <(kustomize build $OVERLAYS/staging) \
  <(kustomize build $OVERLAYS/production)

有没有办法做同样的事情,但要针对特定​​ kubernetes 命名空间中运行的内容以及磁盘上定义的覆盖?

更具体地说,知道kubectl apply -k . 在不实际执行的情况下会做什么?使用--dry-run 只是说吐出对象列表而不是真正的差异。

【问题讨论】:

    标签: kubernetes yaml diff kustomize


    【解决方案1】:
    kustomize build ./ | kubectl diff -f  -
    

    在 Kustomize 版本 4.x.x 中

    【讨论】:

      【解决方案2】:

      我不确定这是否是您要查找的内容,但在 Kubernetes 中您有 kubectl diff

      APIServer dry-run and kubectl diff 上有很好的解释。

      您可以使用选项 -k, --kustomize 这样做:

      处理自定义目录。此标志不能与-f-R 一起使用。

      或者可能类似于 one-liner 来为特定命名空间设置上下文:

      $ kubectl config set-context staging --user=cluster-admin --namespace=staging
      $ kubectl config set-context prod --user=cluster-admin --namespace=prod
      

      一旦你设置了上下文,你可以通过以下方式使用它们:

      kubectl config use-context staging; cat patched_k8s.yaml | kubectl config use-context prod; kubectl diff -f -
      

      这只是一个我没有测试的例子。

      【讨论】:

        【解决方案3】:

        试试这个 kustomize 命令,目前处于 alpha 阶段:

        KUSTOMIZE_ENABLE_ALPHA_COMMANDS=true kustomize resources diff -k your/kustomize/overlay
        

        通过https://kubernetes.slack.com/archives/C9A5ALABG/p1582738327027200?thread_ts=1582695987.023600&cid=C9A5ALABG

        【讨论】:

          【解决方案4】:

          我的 shell 配置中有一个小功能可以做到这一点:

          kdiff() {
            overlay="${1}"
            kustomize build ${overlay} \
              | kubectl diff -f - ${@:2} \
              | sed '/kubectl.kubernetes.io\/last-applied-configuration/,+1 d' \
              | sed -r "s/(^\+[^\+].*|^\+$)/$(printf '\e[0;32m')\1$(printf '\e[0m')/g" \
              | sed -r "s/(^\-[^\-].*|^\-$)/$(printf '\e[0;31m')\1$(printf '\e[0m')/g"
          }
          

          它删除了last-applied-configuration 注释并添加了一些颜色。

          【讨论】:

            猜你喜欢
            • 2019-07-22
            • 2020-04-16
            • 2019-05-27
            • 2013-11-02
            • 1970-01-01
            • 2010-12-11
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多