具有地形和头盔的外部部署配置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了具有地形和头盔的外部部署配置相关的知识,希望对你有一定的参考价值。
我对terraform还是很陌生,所以我的问题可能很幼稚,但仍然不知道如何解决。我有一个使用helm_release(https://www.terraform.io/docs/providers/helm/r/release.html)的Terraform脚本,问题是我在单独的git存储库中有部署配置。假设:https://project.git/configuration。我想实现的是能够添加例如https://project.git/configuration/dev(用于开发环境部署)到配置映射。terraform模块的结构为:
+project
+-helm
+--templates
+---configmap.yaml
+---deployment.yaml
+---ingress.yaml
+---service.yaml
+--chart.yaml
+--values.yaml
+-helm.tf
+-other tf files
我需要将配置库中的所有文件放置在下面
+project
+-helm
+--configuration
只有那样我才能使用此:
apiVersion: v1
kind: ConfigMap
metadata:
...
data:
{{- (.Files.Glob "configuration/*").AsConfig | nindent 2 }}
在我的configmap.yaml中,掌舵人要求将这些文件放置在图表目录中。
您只能将Helm .Files
机制用于实际上与图表捆绑在一起的文件,而不能用于要注入的外部配置。
如果您打算使用Terraform来管理所有内容,一种选择是让Terraform创建具有所需文件内容的kubernetes_config_map,并将对该${kubernetes_config_map.with_the_files.name}
的引用传递到Helm图表。
[如果您想主要使用Helm,但是要从外部传递文件,则可以将它们作为值传递。如果您具有Helm values.yaml
语法:
configFiles:
test.yaml: |
key: value
key2: value2
您可以将其发送到ConfigMap中。您可以在configFiles
上进行迭代,也可以使用记录较浅的Helm toYaml
扩展名来呈现整个内容。
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "mychart.name" . }}
data:
{{ .Values.configFiles | toYaml | indent 2 }}
完成后,您可以通过helm install --set
选项或等效的Terraformhelm_release
set_string
设置将它们传递给您:
set_string
以上是关于具有地形和头盔的外部部署配置的主要内容,如果未能解决你的问题,请参考以下文章