首页 > 解决方案 > 使用 ansible 编辑 kubectl 命名空间标签

问题描述

我需要在 Ansible 中启用 istio 注入。我的命令是,

kubectl label namespace default istio-injection=enabled

我想在 Ansible 中运行这个命令。k8s我为此任务使用了 ansible模块。但它保留错误。

  k8s:
    name: default
    kind: Namespace
    label: istio-injection=enabled

这个怎么做?

标签: kubernetesansibleistio

解决方案


您不能使用 Ansible 就地修改 Kubernetes 对象(您可以k8s_scale部署除外)。另一方面,命名空间是一个普通的 Kubernetes 对象,因此您可以使用k8s它来创建或更新它。无法仅指定对象元数据,因此您需要提供相当完整的对象描述。(如果您拥有的不仅仅是 Istio 标签,您还需要知道所有的命名空间标签。)

k8s:
  state: present
  definition:
    apiVersion: v1
    kind: Namespace
    metadata:
      name: default
      labels:
        'istio-injection': enabled

推荐阅读