小编FRC*_*FRC的帖子

在 helm 图表中附加 yaml 锚点

我正在构建一个 helm 图表,但 value.yaml 文件出现问题。由于 yaml 本身不支持变量,我尝试了锚点,但尽管这样的方法有效:

foo: &anchor A
bar: *anchor
Run Code Online (Sandbox Code Playgroud)

带输出

foo: A
bar: A
Run Code Online (Sandbox Code Playgroud)

我需要将锚附加到某个字符串上,例如

foo: &anchor A
baz: &anotherAnchor B
bar: www.*anchor.*anotherAnchor.com
Run Code Online (Sandbox Code Playgroud)

带输出

foo: A
baz: B
bar: www.A.B.com
Run Code Online (Sandbox Code Playgroud)

有可能这样做吗?

templates yaml kubernetes-helm

10
推荐指数
1
解决办法
6944
查看次数

在 testinfra 中使用 Ansible 变量

使用带有 Ansible 后端的 TestInfra 进行测试。除了在运行测试时使用 Ansible 本身,一切都很好

测试文件

import pytest
def test_zabbix_agent_package(host):
    package = host.package("zabbix-agent")
    assert package.is_installed
    package_version = host.ansible("debug", "msg={{ zabbix_agent_version }}")["msg"]
    (...)
Run Code Online (Sandbox Code Playgroud)

其中 zabbix_agent_version 是来自 group_vars 的 Ansible 变量。可以通过运行这个剧本来获得

- hosts: all
  become: true
  tasks:
  - name: debug
    debug: msg={{ zabbix_agent_version }}
Run Code Online (Sandbox Code Playgroud)

命令执行测试

pytest --connection=ansible --ansible-inventory=inventory  --hosts=$hosts -v test.py
Run Code Online (Sandbox Code Playgroud)

ansible.cfg

[defaults]
timeout = 10
host_key_checking = False
library=library/
retry_files_enabled = False
roles_path=roles/
pipelining=true
ConnectTimeout=60
remote_user=deploy
private_key_file=/opt/jenkins/.ssh/deploy
Run Code Online (Sandbox Code Playgroud)

我得到的输出是

self = <ansible>, module_name = 'debug', module_args = 'msg={{ zabbix_agent_version }}', …
Run Code Online (Sandbox Code Playgroud)

python testing pytest ansible testinfra

7
推荐指数
1
解决办法
6416
查看次数

舵图嵌套循环

尝试使用此模板为我的掌舵图生成部署

{{- range .Values.services }}
apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: myapp-{{ . }}
spec:
  replicas: {{ .replicaCount }}
  template:
    metadata:
      labels:
        app: myapp-{{ . }}
        chart: myapp-{{ $.Values.cluster }}-{{ $.Values.environment }}
    spec:
      containers:
      - name: myapp-{{ . }}
        image: {{ $.Values.containerRegistry }}/myapp-{{ . }}:latest
        ports:
        - containerPort: {{ .targetPort }}
        env:
  {{- with .environmentVariables }}
  {{ indent 10 }}
  {{- end }}
      imagePullSecrets:
       - name: myregistry
{{- end }}
Run Code Online (Sandbox Code Playgroud)

我的2项服务。在values.yaml中,我得到了

environment: dev

cluster: sandbox

ingress:
  enabled: true

containerRegistry: myapp.io …
Run Code Online (Sandbox Code Playgroud)

templates kubernetes kubernetes-helm

5
推荐指数
1
解决办法
2400
查看次数

Ansible输出格式选项

是否有使用ansible(不是任何其他脚本)格式化ansible输出的选项?例如

name: Show version
  sudo: true
  hosts: web_front_end
  tasks:
    - name: Create yum cache
      shell: yum makecache
    - name: Check the version of Portal
      shell: rpm -qa | grep portal
      register: portal
    - debug: msg={{portal.stdout}}
  tags:
    - portal
    - wfe
Run Code Online (Sandbox Code Playgroud)

我想只得到

TASK: [debug msg={{portal.stdout}}]
Run Code Online (Sandbox Code Playgroud)

部分.或者甚至有办法只获得shell命令输出?

bash output ansible ansible-playbook

3
推荐指数
1
解决办法
1万
查看次数

Kubernetes 存储持久文件

在 Kubernetes 中存储持久文件的最佳方式是什么?我有一个证书 (.pfx),我想将其路径传递给应用程序。从它的外观来看,它不能存储在秘密中。正在考虑一个卷,但问题是我如何将文件上传到它?以及选择哪种类型的音量?或者还有其他有效的方法吗?

certificate kubernetes

3
推荐指数
1
解决办法
2681
查看次数