问题描述
想要知道如何检查运算符是否已更改,如果没有更改,则不应用它。通常,用户会使用以下命令应用运算符:
kubectl apply -f openebs.yml
在自动化脚本中,用户希望在应用运算符之前检查Kubernetes是否已经运行了该运算符,只有在发生更改时才应用它,甚至在有更改时停止应用。
用户想知道如何实现这一点。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
用户可以使用--server-dry-run=true
标志运行kubectl apply
命令来检查运算符是否已更改。如果资源将发生更改,输出消息中将不会提到将更改哪些属性,但它确实会提到将更改哪些资源。用户需要解析输出消息以确定是否发生了更改,因为退出代码始终为1。以下是示例输出:
$ kubectl apply --server-dry-run=true -f ./configmap.yaml # 第一次运行
secret/my-conf created
$ kubectl apply --server-dry-run=true -f ./configmap.yaml # 无修改重新运行
secret/my-conf unchanged
$ kubectl apply --server-dry-run=true -f ./configmap.yaml # 有修改重新运行
secret/my-conf configured
用户可以根据输出消息中的内容判断是否发生了更改,并根据需要执行进一步的操作。
用户可以在自动化脚本中使用这个方法来检查运算符是否已更改,并根据结果采取进一步的操作(如果有更改,则应用运算符,如果没有更改,则不应用)。
正文完