Add cnf for firewall with network of sriov
[multicloud/k8s.git] / starlingx / demo / firewall-sriov / templates / deployment.yaml
1 apiVersion: apps/v1
2 kind: Deployment
3 metadata:
4   name: {{ include "firewall.fullname" . }}
5   labels:
6     release: {{ .Release.Name }}
7     app: {{ include "firewall.name" . }}
8     chart: {{ .Chart.Name }}
9 spec:
10   replicas: {{ .Values.replicaCount }}
11   selector:
12     matchLabels:
13       app: {{ include "firewall.name" . }}
14       release: {{ .Release.Name }}
15   template:
16     metadata:
17       labels:
18         app: {{ include "firewall.name" . }}
19         release: {{ .Release.Name }}
20       annotations:
21         k8s.v1.cni.cncf.io/networks: '[
22           { "name": "sriov-device-{{ .Values.global.unprotectedNetName }}",
23             "interface": "veth12" },
24           { "name": "sriov-device-{{ .Values.global.protectedNetName }}",
25             "interface": "veth21" }
26           ]'
27     spec:
28       containers:
29       - name: {{ .Chart.Name }}
30         image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
31         imagePullPolicy: {{ .Values.image.pullPolicy }}
32         tty: true
33         stdin: true
34         env:
35         - name: unprotectedNetCidr
36           value: "{{.Values.global.unprotectedNetCidr}}"
37         - name: unprotectedNetGwIp
38           value: "{{.Values.global.unprotectedNetGwIp}}"
39         - name: protectedNetCidr
40           value: "{{.Values.global.protectedNetCidr}}"
41         - name: protectedNetGwIp
42           value: "{{.Values.global.protectedNetGwIp}}"
43         - name: dcaeCollectorIp
44           value: "{{.Values.global.dcaeCollectorIp}}"
45         - name: dcaeCollectorPort
46           value: "{{.Values.global.dcaeCollectorPort}}"
47         - name: unprotectedNetProviderDriver
48           value: "{{.Values.global.unprotectedNetProviderDriver}}"
49         - name: protectedNetProviderDriver
50           value: "{{.Values.global.protectedNetProviderDriver}}"
51         command: ["/bin/bash", "/opt/vfw_start.sh"]
52         securityContext:
53             privileged: true
54             capabilities:
55                 add:
56                 - CAP_SYS_ADMIN
57         volumeMounts:
58           - mountPath: /hugepages
59             name: hugepage
60           - name: lib-modules
61             mountPath: /lib/modules
62           - name: src
63             mountPath: /usr/src
64           - name: scripts
65             mountPath: /opt
66         resources:
67           requests:
68             cpu: {{ .Values.resources.cpu }}
69             memory: {{ .Values.resources.memory }}
70             hugepages-2Mi: {{ .Values.resources.hugepage }}
71             {{- if eq .Values.global.protectedNetProviderName .Values.global.unprotectedNetProviderName }}
72             intel.com/pci_sriov_net_{{ .Values.global.protectedNetProviderName }}: '2'
73             {{- else }}
74             intel.com/pci_sriov_net_{{ .Values.global.protectedNetProviderName }}: '1'
75             intel.com/pci_sriov_net_{{ .Values.global.unprotectedNetProviderName }}: '1'
76             {{ end }}
77           limits:
78             cpu: {{ .Values.resources.cpu }}
79             memory: {{ .Values.resources.memory }}
80             hugepages-2Mi: {{ .Values.resources.hugepage }}
81             {{- if eq .Values.global.protectedNetProviderName .Values.global.unprotectedNetProviderName }}
82             intel.com/pci_sriov_net_{{ .Values.global.protectedNetProviderName }}: '2'
83             {{- else }}
84             intel.com/pci_sriov_net_{{ .Values.global.protectedNetProviderName }}: '1'
85             intel.com/pci_sriov_net_{{ .Values.global.unprotectedNetProviderName }}: '1'
86             {{ end }}
87       volumes:
88         - name: hugepage
89           emptyDir:
90             medium: HugePages
91         - name: lib-modules
92           hostPath:
93             path: /lib/modules
94         - name: src
95           hostPath:
96             path: /usr/src
97         - name: scripts
98           configMap:
99             name: {{ .Chart.Name }}-scripts-configmap
100       imagePullSecrets:
101       - name: admin-registry-secret