Configmap in helm chart user-data



这是我的configmap模板,它从我的用户数据文件中获取数据,如values.yaml。我有两个应用程序,App-A &App-B。ip由App-B分配,在App-A中,只有App-B分配ip的接口被配置。

CONFIGMAP模板:

apiVersion: v1
kind: ConfigMap
metadata:
namespace: {{$namespace}}
name: {{$pod}}-configmap
data:
user-data: |
{{- $userdata := (cat $pod "-userdata"|nospace)}}
{{ $.Files.Get $userdata | nindent 4}}

软件的用户和数据

ICI1: &fpbond0
TYPE: bond
GATEWAY: 172.57.93.129
IFNAME: fpbond0
PREFIX: 26
SUBPORT: fpeth2,fpeth3
OPTS: "mode=active-backup miimon=100 fail_over_mac=none"
PORTTYPE: DP_PORT_TYPE_SIGNALING
VIRTUAL_LINK_ID: vnfc_vldid_ici1
VIRTUAL_IP_REQUIRED: True
PIP_VIRTUAL_LINK_ID: vnfc_vldid_ici_pip
MTU: 1500
ICI2:
<<: *fpbond0
VIRTUAL_LINK_ID: vnfc_vldid_ici2
VIRTUAL_IP_REQUIRED: True

.............till ICI60

App-B用户和数据:

vnfc_vldid_ici1:
- 172.7.93.132
vnfc_vldid_ici2:
- 172.7.93.133
vnfc_vldid_ici3:
- 172.7.93.134
vnfc_vldid_ici4:
- 172.7.93.135
.............till ICI60

我不知道你的ip数据源是否来自值。或者是从其他文件中读取的,上面不是很清楚,所以这里有两个解决方案。


A: from values.yaml

values.yaml

IPs:
ICI1: &fpbond0
TYPE: bond
GATEWAY: 172.57.93.1
IFNAME: fpbond0
PREFIX: 26
SUBPORT: fpeth2,fpeth3
OPTS: "mode=active-backup miimon=100 fail_over_mac=none"
PORTTYPE: DP_PORT_TYPE_SIGNALING
VIRTUAL_LINK_ID: vnfc_vldid_ici1
VIRTUAL_IP_REQUIRED: True
PIP_VIRTUAL_LINK_ID: 172.57.93.4
MTU: 1500
ICI2:
<<: *fpbond0
VIRTUAL_LINK_ID: vnfc_vldid_ici2
VIRTUAL_IP_REQUIRED: True
PIP_VIRTUAL_LINK_ID: 172.57.93.5
ICI3:
<<: *fpbond0
VIRTUAL_LINK_ID: vnfc_vldid_ici3
VIRTUAL_IP_REQUIRED: True
PIP_VIRTUAL_LINK_ID: 172.57.93.6
ICI4:
<<: *fpbond0
VIRTUAL_LINK_ID: vnfc_vldid_ici4
VIRTUAL_IP_REQUIRED: True
PIP_VIRTUAL_LINK_ID: 172.57.93.7

模板/configmap.yaml

apiVersion: v1
kind: ConfigMap
metadata:
name: text
data:
{{- range $.Values.IPs }}
{{ .VIRTUAL_LINK_ID }}: {{ .PIP_VIRTUAL_LINK_ID }}
{{- end }}

输出
apiVersion: v1
kind: ConfigMap
metadata:
name: test
data:
vnfc_vldid_ici1: 172.57.93.4
vnfc_vldid_ici2: 172.57.93.5
vnfc_vldid_ici3: 172.57.93.6
vnfc_vldid_ici4: 172.57.93.7

B: from file

.
├── Chart.yaml
├── prop
│   └── ips
├── templates
│   ├── NOTES.txt
│   ├── _helpers.tpl
│   ├── configmap.yaml
│   └── deployment.yaml
└── values.yaml

道具/ips

ICI1: &fpbond0
TYPE: bond
GATEWAY: 172.57.93.1
IFNAME: fpbond0
PREFIX: 26
SUBPORT: fpeth2,fpeth3
OPTS: "mode=active-backup miimon=100 fail_over_mac=none"
PORTTYPE: DP_PORT_TYPE_SIGNALING
VIRTUAL_LINK_ID: vnfc_vldid_ici1
VIRTUAL_IP_REQUIRED: True
PIP_VIRTUAL_LINK_ID: 172.57.93.4
MTU: 1500
ICI2:
<<: *fpbond0
VIRTUAL_LINK_ID: vnfc_vldid_ici2
VIRTUAL_IP_REQUIRED: True
PIP_VIRTUAL_LINK_ID: 172.57.93.5
ICI3:
<<: *fpbond0
VIRTUAL_LINK_ID: vnfc_vldid_ici3
VIRTUAL_IP_REQUIRED: True
PIP_VIRTUAL_LINK_ID: 172.57.93.6
ICI4:
<<: *fpbond0
VIRTUAL_LINK_ID: vnfc_vldid_ici4
VIRTUAL_IP_REQUIRED: True
PIP_VIRTUAL_LINK_ID: 172.57.93.7

模板/configmap.yaml

apiVersion: v1
kind: ConfigMap
metadata:
name: test
data:
{{- $data := .Files.Get "prop/ips" }}
{{- $cfg := fromYaml $data }}
{{- range $cfg }}
{{ .VIRTUAL_LINK_ID }}: {{ .PIP_VIRTUAL_LINK_ID }}
{{- end }}

输出
apiVersion: v1
kind: ConfigMap
metadata:
name: test
data:
vnfc_vldid_ici1: 172.57.93.4
vnfc_vldid_ici2: 172.57.93.5
vnfc_vldid_ici3: 172.57.93.6
vnfc_vldid_ici4: 172.57.93.7

最新更新