如何使用Ansible创建Kubernetes Secret?

gopyfrb3  于 2023-10-17  发布在  Kubernetes
关注(0)|答案(2)|浏览(100)

我正在使用Ansible JMeter Operator进行分布式负载测试,并且在创建Kubernetes Secret时遇到了麻烦。我修改的运算符是the JMeter one,我添加的额外YAML如下所示:

- name: InfluxDB Storage Secret
  k8s:
    apiVersion: v1
    kind: Secret
    type: Opaque
    metadata:
      name: azure-storage-account-infxluxdb-secret
      namespace: '{{ meta.namespace }}'
    stringData:
      azurestorageaccountname: 'xxxxxxx'
      azurestorageaccountkey: 'xxxxxxxxxxx'

YAML的定义有什么问题吗?我正在修改角色的 roles/jmeter/tasks/main.yaml,以将其添加到我的特定名称空间中。

ac1kyiln

ac1kyiln1#

这是我的例子,对我有用,希望对你有帮助。

- name: CREATE MONGOSECRETS SECRET
    kubernetes.core.k8s:
      state: present
      definition: 
        apiVersion: v1
        kind: Secret
        type: Opaque             
        metadata:
          name: "{{ secret_name }}"
          namespace: "{{ project_name | lower }}"     
        data:
          config_data.json: "{{ lookup('template', mongo_conn_templates_path + '/config_data.json' ) | tojson | b64encode }}"
lrl1mhuk

lrl1mhuk2#

是的,使用模板查找将文件加载到secret中是正确的方法。上面的例子很好,但有两件事我做得不同:

  • 无需将路径连接到模板。如果您的模板文件位于角色的templates目录中,则可以。
  • 不需要在数据中使用tojson过滤器。只需使用普通的base64就足以加载任意文本文件作为机密文件,并使用您选择的密钥(这里是config

这是我们的角色配置戴尔CSI驱动程序的示例。

- name: Create config secret
  redhat.openshift.k8s:
    state: present
    definition: 
      apiVersion: v1
      kind: Secret
      type: Opaque             
      metadata:
        name: isilon-creds
        namespace: "{{ dell_namespace }}"     
      data:
        config: "{{ lookup('template', 'config.txt.j2' ) | b64encode }}"
  register: config_secret

相关问题