是的,您可以在Argo CD中使用config management插件来动态导入和使用values.yaml。
下面是一个简单的示例:
1.在Argo CD中安装config management插件
2.在Git存储库中创建一个values.yaml文件,例如:
database:
host: db.example.com
user: dbuser
pass: dbpassword
3.在应用集的spec中使用插值来使用动态值。例如:
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: myappset
spec:
generators:
- template:
name: myapp
namespace: myappns
spec:
source:
repoURL: https://github.com/myrepo/myapp.git
targetRevision: HEAD
destination:
name: "{{inputs.parameters.name}}"
namespace: "{{inputs.parameters.namespace}}"
project: myproject
syncPolicy:
automated:
prune: true
selfHeal: true
values:
files:
- name: values.yaml
path: myapp/values.yaml
overrides:
- path: myapp/templates/deployment.yaml
destination:
name: deployment.yaml
values:
image: "{{myapp.tag}}"
host: "{{myapp.values.database.host}}"
user: "{{myapp.values.database.user}}"
pass: "{{myapp.values.database.pass}}"
parameters:
- name: name
required: true
- name: namespace
required: true
sources:
- git:
repoURL: https://github.com/myrepo/myapp.git
targetRevision: HEAD
directory:
recurse: true
在上面的示例中,values.yaml文件包含一个名为“database”的键值对,其中包含了数据库的连接信息。在overrides部分,我们使用了动态值,将values.yaml中的值注入到部署规范中。
请注意,我们使用了myapp.values.database.host的语法来引用values.yaml中的值。在spec