gpt4 book ai didi

Kubernetes Ansible Operators - 修补现有 Kubernetes 资源

转载 作者:行者123 更新时间:2023-12-02 11:39:02 27 4
gpt4 key购买 nike

使用 ansible:是否可以使用 json 或 yaml 片段修补资源?我基本上希望能够完成与 kubectl patch <Resource> <Name> --type='merge' -p='{"spec":{ "test":"hello }}' 相同的事情, 附加/修改资源规范。

https://docs.ansible.com/ansible/latest/modules/k8s_module.html
是否可以使用 k8s ansible 模块来做到这一点?它说如果一个资源已经存在并且设置了“状态:存在”它会修补它,但是据我所知它没有修补

谢谢

最佳答案

是的,您可以只提供一个补丁,如果资源已经存在,它应该发送一个战略合并补丁(或者如果它是一个自定义资源,则只发送一个合并补丁)。这是一个创建和修改配置映射的示例剧本:

---                                                                                                                                                                                                                                           
- hosts: localhost
connection: local
gather_facts: no

vars:
cm: "{{ lookup('k8s',
api_version='v1',
kind='ConfigMap',
namespace='default',
resource_name='test') }}"

tasks:
- name: Create the ConfigMap
k8s:
definition:
apiVersion: v1
kind: ConfigMap
metadata:
name: test
namespace: default
data:
hello: world

- name: We will see the ConfigMap defined above
debug:
var: cm

- name: Add a field to the ConfigMap (this will be a PATCH request)
k8s:
definition:
apiVersion: v1
kind: ConfigMap
metadata:
name: test
namespace: default
data:
added: field

- name: The same ConfigMap as before, but with an extra field in data
debug:
var: cm

- name: Change a field in the ConfigMap (this will be a PATCH request)
k8s:
definition:
apiVersion: v1
kind: ConfigMap
metadata:
name: test
namespace: default
data:
hello: everyone

- name: The added field is unchanged, but the hello field has a new value
debug:
var: cm

- name: Delete the added field in the ConfigMap (this will be a PATCH request)
k8s:
definition:
apiVersion: v1
kind: ConfigMap
metadata:
name: test
namespace: default
data:
added: null

- name: The hello field is unchanged, but the added field is now gone
debug:
var: cm

关于Kubernetes Ansible Operators - 修补现有 Kubernetes 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60444263/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com