blob: ca3a5cbb14e33718cf8e261aa0504eea91ee8b63 [file] [log] [blame]
Joey Armstrong1c399052024-02-10 13:23:13 -05001# Copyright 2019-2024 Open Networking Foundation (ONF) and the ONF Contributors
David Bainbridgecd30e542019-05-31 20:52:56 +00002#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
Rohan Agrawale2f4a1e2020-02-04 06:28:36 +000014{{- $log_level := tpl .Values.adapter_open_olt.log_level . | upper }}
Matteo Scandoloe9a01f72020-05-05 09:33:59 -070015---
David Bainbridgecd30e542019-05-31 20:52:56 +000016apiVersion: apps/v1
17kind: Deployment
18metadata:
David Bainbridge2bdd4302020-06-09 17:13:18 -070019 name: "{{ template "fullname" . }}"
David Bainbridgecd30e542019-05-31 20:52:56 +000020 namespace: {{ .Release.Namespace }}
David Bainbridge534a73d2019-08-30 18:57:23 +000021 {{- if or (hasKey .Values "extra_deployment_labels") (hasKey .Values "openolt_deployment_labels") }}
22 labels:
23 {{- if hasKey .Values "extra_deployment_labels" }}
24 {{- range $key, $val := .Values.extra_deployment_labels }}
25 {{ $key }}: {{ $val | quote }}
26 {{- end }}
27 {{- end }}
28 {{- if hasKey .Values "openolt_deployment_labels" }}
29 {{- range $key, $val := .Values.openolt_deployment_labels }}
30 {{ $key }}: {{ $val | quote }}
31 {{- end }}
32 {{- end }}
33 {{- end }}
David Bainbridgecd30e542019-05-31 20:52:56 +000034spec:
David Bainbridgecd30e542019-05-31 20:52:56 +000035 selector:
36 matchLabels:
37 app: adapter-open-olt
David Bainbridge8595b3b2020-06-05 12:23:05 -070038 release: {{ .Release.Name }}
David Bainbridgecd30e542019-05-31 20:52:56 +000039 template:
40 metadata:
David Bainbridge8595b3b2020-06-05 12:23:05 -070041 namespace: {{ .Release.Namespace }}
David Bainbridgecd30e542019-05-31 20:52:56 +000042 labels:
43 app: adapter-open-olt
David Bainbridge8595b3b2020-06-05 12:23:05 -070044 release: {{ .Release.Name }}
David Bainbridge1f888042019-06-24 18:02:01 +000045 app.kubernetes.io/name: "adapter-open-olt"
46 app.kubernetes.io/version: {{ quote .Chart.AppVersion }}
47 app.kubernetes.io/component: "adapter"
48 app.kubernetes.io/part-of: "voltha"
Matteo Scandolob4c5f4e2020-11-11 12:05:23 -080049 app.kubernetes.io/stack: "{{ .Values.global.stack_name }}"
David Bainbridge1f888042019-06-24 18:02:01 +000050 app.kubernetes.io/managed-by: {{ quote .Release.Service }}
51 helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
David Bainbridge534a73d2019-08-30 18:57:23 +000052 {{- if hasKey .Values "extra_pod_labels" }}
53 {{- range $key, $val := .Values.extra_pod_labels }}
54 {{ $key }}: {{ $val | quote }}
55 {{- end }}
56 {{- end }}
57 {{- if hasKey .Values "openolt_pod_labels" }}
58 {{- range $key, $val := .Values.openolt_pod_labels }}
59 {{ $key }}: {{ $val | quote }}
60 {{- end }}
61 {{- end }}
David Bainbridgecd30e542019-05-31 20:52:56 +000062 spec:
David Bainbridge8595b3b2020-06-05 12:23:05 -070063 {{- if .Values.securityContext.enabled }}
64 securityContext:
65 runAsUser: {{ .Values.securityContext.runAsUser }}
66 runAsGroup: {{ .Values.securityContext.runAsGroup }}
67 fsGroup: {{ .Values.securityContext.fsGroup }}
68 {{- end }}
Girish Gowdra12231512020-06-29 13:00:48 -070069 affinity:
Andrey Pozolotinda75c922021-08-24 17:41:08 +020070 {{- if .Values.nodeAffinityConfig.enabled }}
Girish Gowdra12231512020-06-29 13:00:48 -070071 nodeAffinity:
72 requiredDuringSchedulingIgnoredDuringExecution:
73 nodeSelectorTerms:
74 - matchExpressions:
75 - key: "{{ .Values.nodeAffinityConfig.node_label_key }}"
76 operator: In
77 values:
78 - "{{ .Values.nodeAffinityConfig.node_label_value }}"
Andrey Pozolotinda75c922021-08-24 17:41:08 +020079 {{- end }}
80 podAffinity:
81 preferredDuringSchedulingIgnoredDuringExecution:
82 {{- if .Values.scheduleRules.preferStackPodsOnSameNode }}
83 - podAffinityTerm:
84 topologyKey: kubernetes.io/hostname
85 labelSelector:
86 matchExpressions:
87 - key: app.kubernetes.io/stack
88 operator: In
89 values:
90 - {{ .Values.global.stack_name }}
91 weight: 100
92 {{- end }}
93 podAntiAffinity:
94 preferredDuringSchedulingIgnoredDuringExecution:
95 {{- if .Values.scheduleRules.preferStacksOnDifferentNodes }}
96 - podAffinityTerm:
97 topologyKey: kubernetes.io/hostname
98 labelSelector:
99 matchExpressions:
100 - key: app.kubernetes.io/name
101 operator: In
102 values:
103 - adapter-open-olt
104 weight: 100
105 {{- end }}
David Bainbridgecd30e542019-05-31 20:52:56 +0000106 containers:
107 - name: adapter-open-olt
David Bainbridge03706e62019-10-18 17:59:24 +0000108 image: '{{ tpl .Values.images.adapter_open_olt.registry . }}{{ tpl .Values.images.adapter_open_olt.repository . }}:{{ tpl ( tpl .Values.images.adapter_open_olt.tag . ) . }}'
David Bainbridgecd30e542019-05-31 20:52:56 +0000109 imagePullPolicy: {{ tpl .Values.images.adapter_open_olt.pullPolicy . }}
David Bainbridge8595b3b2020-06-05 12:23:05 -0700110 env:
divyadesai423be072020-02-20 12:05:01 +0000111 - name: COMPONENT_NAME
112 valueFrom:
113 fieldRef:
114 fieldPath: metadata.labels['app.kubernetes.io/name']
serkant.uluderyaf1b8cc72020-05-13 23:26:51 -0700115 - name: KV_STORE_DATAPATH_PREFIX
Matteo Scandolob4c5f4e2020-11-11 12:05:23 -0800116 value: {{ tpl .Values.adapter_open_olt.kv_store_data_prefix . }}
David Bainbridgecd30e542019-05-31 20:52:56 +0000117 args:
David Bainbridge6a43d8d2019-06-18 19:09:09 +0000118 - "/app/openolt"
khenaidoo15c53fb2021-08-09 13:56:27 -0400119 - "--core_endpoint={{ tpl .Values.global.core_endpoint . }}"
120 - "--adapter_endpoint={{ tpl .Values.adapter_open_olt.endpoints.address . }}.{{ .Release.Namespace }}.svc:{{ print .Values.adapter_open_olt.endpoints.port }}"
Matteo Scandolob4c5f4e2020-11-11 12:05:23 -0800121 - "--kafka_cluster_address={{ tpl .Values.services.kafka.cluster.address . }}"
Matteo Scandolo06ee58c2021-05-26 15:28:51 -0700122 - "--event_topic={{ .Values.adapter_open_olt.topics.event_topic }}"
Matteo Scandolob4c5f4e2020-11-11 12:05:23 -0800123 - "--kv_store_address={{ tpl .Values.services.etcd.address . }}"
Andrea Campanella6838a802020-11-19 15:50:23 +0100124 - "--kv_store_request_timeout={{ tpl .Values.adapter_open_olt.kv_store_timeout . }}"
Girish Gowdrae8c44bd2021-03-17 10:30:44 -0700125 - "--heartbeat_check_interval={{ tpl .Values.adapter_open_olt.heartbeat_check_interval . }}"
126 - "--heartbeat_fail_interval={{ tpl .Values.adapter_open_olt.heartbeat_fail_interval . }}"
khenaidoo15c53fb2021-08-09 13:56:27 -0400127 - "--rpc_timeout={{ tpl .Values.adapter_open_olt.rpc_timeout . }}"
Matteo Scandoloc250ddd2019-12-12 13:34:27 -0800128 - "--log_level={{ $log_level }}"
serkant.uluderyaf1b8cc72020-05-13 23:26:51 -0700129 - "--current_replica={{ .Values.replicas.current_replica }}"
130 - "--total_replica={{ .Values.replicas.total_replica }}"
Neha Sharma7d3d6be2020-05-14 20:02:17 +0000131 - "--probe_address=:8080"
Matteo Scandolob4c5f4e2020-11-11 12:05:23 -0800132 - "--trace_enabled={{ .Values.global.tracing.enabled }}"
133 - "--trace_agent_address={{ tpl .Values.services.tracing_agent.address . }}"
134 - "--log_correlation_enabled={{ .Values.global.log_correlation.enabled }}"
135 - "--omcc_encryption={{ .Values.global.omcc_encryption }}"
Gamze Abakaba10c7b2020-12-17 14:37:25 +0000136 - "--enable_onu_stats={{ .Values.global.enable_onu_stats }}"
137 - "--enable_gem_stats={{ .Values.global.enable_gem_stats }}"
Abhilash Laxmeshwar81d18fc2022-06-24 19:26:06 +0530138 - "--check_onu_exist_on_discovery={{ tpl .Values.adapter_open_olt.check_onu_exist_on_discovery . }}"
nikesh.krishnane95b52f2023-03-14 11:17:48 +0530139 - "--max_grpc_client_retry={{ tpl .Values.adapter_open_olt.rpc_retry . }}"
140 - "--per_rpc_retry_timeout={{ tpl .Values.adapter_open_olt.per_rpc_retry_timeout . }}"
David Bainbridge2bdd4302020-06-09 17:13:18 -0700141 {{- if .Values.securityContext.enabled }}
142 securityContext:
143 allowPrivilegeEscalation: false
144 {{- end }}
khenaidoo15c53fb2021-08-09 13:56:27 -0400145 ports:
146 - containerPort: {{ .Values.adapter_open_olt.endpoints.port }}
147 name: grpc
Rohan Agrawal69303562019-10-22 12:24:58 +0000148 livenessProbe:
149 httpGet:
150 path: /healthz
151 port: 8080
khenaidoo15c53fb2021-08-09 13:56:27 -0400152 initialDelaySeconds: {{ .Values.probe.liveness.initial_delay_seconds }}
153 periodSeconds: {{ .Values.probe.liveness.period_seconds }}
Rohan Agrawal69303562019-10-22 12:24:58 +0000154 readinessProbe:
155 httpGet:
156 path: /readz
157 port: 8080
khenaidoo15c53fb2021-08-09 13:56:27 -0400158 initialDelaySeconds: {{ .Values.probe.readiness.initial_delay_seconds }}
159 periodSeconds: {{ .Values.probe.readiness.period_seconds }}
Andrey Pozolotin7e928a92021-08-13 12:37:24 +0200160 resources:
161 requests:
162 {{- if .Values.resources.requests.memory }}
163 memory: {{ .Values.resources.requests.memory }}
164 {{- end }}
165 {{- if .Values.resources.requests.cpu }}
166 cpu: {{ .Values.resources.requests.cpu }}
167 {{- end }}
168 limits:
169 {{- if .Values.resources.limits.memory }}
170 memory: {{ .Values.resources.limits.memory }}
171 {{- end }}
172 {{- if .Values.resources.limits.cpu }}
173 cpu: {{ .Values.resources.limits.cpu }}
174 {{- end }}