Kubernetes 是否有一种方法可以应用目录中的每个文件?
我现在正在写一本ansible playbook,它在kubernetes中部署了一个停靠的应用程序。但是,出于分子目的,我不希望在执行Kubernetes 是否有一种方法可以应用目录中的每个文件?,kubernetes,kubectl,Kubernetes,Kubectl,我现在正在写一本ansible playbook,它在kubernetes中部署了一个停靠的应用程序。但是,出于分子目的,我不希望在执行kompose convert-f docker-compose.yaml--volumes hostPath之后对需要应用的文件进行硬编码。是否有方法应用目录中的所有文件?您可以使用 kubectl apply -f <folder> kubectl应用-f 您可能还对清单文件的参数化感兴趣,例如,在prod命名空间中使用比在测试命名空间中更
kompose convert-f docker-compose.yaml--volumes hostPath之后对需要应用的文件进行硬编码。是否有方法应用目录中的所有文件?您可以使用
kubectl apply -f <folder>
kubectl应用-f
您可能还对清单文件的参数化感兴趣,例如,在prod命名空间中使用比在测试命名空间中更多的副本。您可以将参数化清单文件应用于
kubectl apply -k <folder>
kubectl应用-k
使用ansiblek8s
模块,ansible特定的答案是:
- name: Apply all manifests in a given folder
k8s:
state: present
definition: "{{ lookup('template', '{{ item }}') }}"
namespace: default
with_fileglob:
- "manifests/*.yaml"
- "manifests/*.j2"
这还允许您在应用整个文件夹时对清单进行模板化和动态解析
请注意,此ansible任务要求清单
文件夹与正在运行的playbook位于同一路径中 如果您希望应用给定目录中的所有文件,则上述命令将目录作为“-f”的选项非常有效
以下内容应应用当前目录中与给定条件匹配的yaml文件(例如,此处所有yaml均以test开头)
将文件夹作为一个参数,但文件名对应用程序顺序很重要。这类似于:kubectl apply-f{{{folder}}
?…添加--recursive
也将递归应用子文件夹中的所有文件。
kubectl apply $(ls test*.yaml | awk ' { print " -f " $1 } ')