blob: 022aa9cb1440e5b706230348af1b9f065d8621da [file] [log] [blame]
David Bainbridge2f9b76f2019-05-15 13:48:11 -07001# Copyright 2019-present Open Networking Foundation
2#
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.
14
15{{- $root := . -}}
David Bainbridge5cb5d172019-07-24 02:30:19 +000016{{- $tag := tpl ( tpl .Values.images.rw_core.tag . ) . }}
David Bainbridgecd30e542019-05-31 20:52:56 +000017{{- $repository := tpl .Values.images.rw_core.repository . }}
18{{- $registry := tpl .Values.images.rw_core.registry . }}
19{{- $pullpolicy := tpl .Values.images.rw_core.pullPolicy . }}
20{{- $core_timeout := tpl $root.Values.rw_core.core_timeout . }}
21{{- $long_request_timeout := tpl $root.Values.rw_core.timeout_long_request . }}
22{{- $request_timeout := tpl $root.Values.rw_core.timeout_request . }}
David Bainbridge50cb1ef2019-07-23 22:36:17 +000023{{- $set_log_level := tpl .Values.rw_core.log_level . | upper }}
24{{- $log_level := 3 }}
25{{- if eq $set_log_level "DEBUG" }}
26{{- $log_level = 0 }}
27{{- else if eq $set_log_level "INFO" }}
28{{- $log_level = 1 }}
29{{- else if eq $set_log_level "WARN" }}
30{{- $log_level = 2 }}
31{{- else if eq $set_log_level "ERROR" }}
32{{- $log_level = 3 }}
33{{- else if eq $set_log_level "PANIC" }}
34{{- $log_level = 4 }}
35{{- else if eq $set_log_level "FATAL" }}
36{{- $log_level = 5 }}
37{{- else }}
38{{- $log_level = 3 }}
39{{- end }}
Kent Hagerman1b333b92019-07-22 16:57:20 -040040{{- range $i, $e := until (int .Values.replicas.rw_core) }}
41{{- $cluster := add1 $i }}
42{{- range $i, $e := until 2 }}
43{{- $cluster_core_id := add1 $i }}
44---
45apiVersion: v1
46kind: Service
47metadata:
48 name: voltha-rw-core-{{ $cluster }}{{ $cluster_core_id }}
49 serviceAccountName: {{ $root.Values.serviceaccount }}
50spec:
51 serviceAccountName: {{ $root.Values.serviceaccount }}
52 clusterIP: None
53 ports:
54 - name: grpc
55 port: 50057
56 targetPort: 50057
57 selector:
58 app: rw-core
59 affinity-group: {{ quote $cluster }}
60 affinity-group-core-id: {{ quote $cluster_core_id }}
61
David Bainbridge2f9b76f2019-05-15 13:48:11 -070062---
63apiVersion: apps/v1
64kind: Deployment
65metadata:
Kent Hagerman1b333b92019-07-22 16:57:20 -040066 name: voltha-rw-core-{{ $cluster }}{{ $cluster_core_id }}
David Bainbridge2f9b76f2019-05-15 13:48:11 -070067 serviceAccountName: {{ $root.Values.serviceaccount }}
David Bainbridge534a73d2019-08-30 18:57:23 +000068 {{- if or (hasKey $root.Values "extra_deployment_labels") (hasKey $root.Values "rw_core_deployment_labels") }}
69 labels:
70 {{- if hasKey $root.Values "extra_deployment_labels" }}
71 {{- range $key, $val := $root.Values.extra_deployment_labels }}
72 {{ $key }}: {{ $val | quote }}
73 {{- end }}
74 {{- end }}
75 {{- if hasKey $root.Values "rw_core_deployment_labels" }}
76 {{- range $key, $val := $root.Values.rw_core_deployment_labels }}
77 {{ $key }}: {{ $val | quote }}
78 {{- end }}
79 {{- end }}
80 {{- end }}
David Bainbridge2f9b76f2019-05-15 13:48:11 -070081spec:
82 replicas: 1
83 selector:
84 matchLabels:
85 app: rw-core
Kent Hagerman1b333b92019-07-22 16:57:20 -040086 affinity-group: {{ quote $cluster }}
87 affinity-group-core-id: {{ quote $cluster_core_id }}
David Bainbridge2f9b76f2019-05-15 13:48:11 -070088 template:
89 metadata:
90 labels:
91 app: rw-core
Kent Hagerman1b333b92019-07-22 16:57:20 -040092 affinity-group: {{ quote $cluster }}
93 affinity-group-core-id: {{ quote $cluster_core_id }}
David Bainbridge1f888042019-06-24 18:02:01 +000094 app.kubernetes.io/name: "read-write-core"
95 app.kubernetes.io/version: {{ quote $root.Chart.AppVersion }}
96 app.kubernetes.io/component: "core"
97 app.kubernetes.io/part-of: "voltha"
98 app.kubernetes.io/managed-by: {{ quote $root.Release.Service }}
99 helm.sh/chart: "{{ $root.Chart.Name }}-{{ $root.Chart.Version }}"
David Bainbridge534a73d2019-08-30 18:57:23 +0000100 {{- if hasKey $root.Values "extra_pod_labels" }}
101 {{- range $key, $val := $root.Values.extra_pod_labels }}
102 {{ $key }}: {{ $val | quote }}
103 {{- end }}
104 {{- end }}
105 {{- if hasKey $root.Values "rw_core_pod_labels" }}
106 {{- range $key, $val := $root.Values.rw_core_pod_labels }}
107 {{ $key }}: {{ $val | quote }}
108 {{- end }}
109 {{- end }}
David Bainbridge2f9b76f2019-05-15 13:48:11 -0700110 annotations:
111 cni: "calico"
112 spec:
113 affinity:
114 podAntiAffinity:
Kent Hagerman1b333b92019-07-22 16:57:20 -0400115 requiredDuringSchedulingIgnoredDuringExecution:
116 - topologyKey: "kubernetes.io/hostname"
David Bainbridge53af8ba2019-05-24 14:41:34 +0000117 labelSelector:
118 matchExpressions:
119 - key: app
120 operator: In
121 values:
Kent Hagerman1b333b92019-07-22 16:57:20 -0400122 - rw-core
123 - key: affinity-group
124 operator: In
125 values:
126 - {{ quote $cluster }}
David Bainbridge2f9b76f2019-05-15 13:48:11 -0700127 serviceAccountName: {{ $root.Values.serviceaccount }}
128 containers:
129 - name: voltha
David Bainbridgecd30e542019-05-31 20:52:56 +0000130 image: {{ $registry }}{{ $repository }}:{{ $tag }}
131 imagePullPolicy: {{ $pullpolicy }}
David Bainbridge2f9b76f2019-05-15 13:48:11 -0700132 env:
133 - name: NAMESPACE
134 value: {{ quote $root.Release.Namespace }}
135 - name: POD_IP
136 valueFrom:
137 fieldRef:
138 fieldPath: status.podIP
David Bainbridge2f9b76f2019-05-15 13:48:11 -0700139 args:
140 - "/app/rw_core"
141 - "-kv_store_type=etcd"
David Bainbridgecd30e542019-05-31 20:52:56 +0000142 - "-kv_store_host={{ $root.Values.services.etcd.service }}"
143 - "-kv_store_port={{ $root.Values.services.etcd.port }}"
David Bainbridge2f9b76f2019-05-15 13:48:11 -0700144 - "-grpc_host=$(POD_IP)"
145 - "-grpc_port=50057"
146 - "-banner=true"
David Bainbridgecd30e542019-05-31 20:52:56 +0000147 - "-kafka_adapter_host={{ $root.Values.services.kafka.adapter.service }}"
148 - "-kafka_adapter_port={{ $root.Values.services.kafka.adapter.port }}"
149 - "-kafka_cluster_host={{ $root.Values.services.kafka.cluster.port }}"
150 - "-kafka_cluster_port={{ $root.Values.services.kafka.cluster.port }}"
David Bainbridge2f9b76f2019-05-15 13:48:11 -0700151 - "-rw_core_topic=rwcore"
Kent Hagermanb778da82019-07-30 15:14:20 -0400152 - "-core_pair_topic=core-pair-{{ $cluster }}"
David Bainbridge2f9b76f2019-05-15 13:48:11 -0700153 - "-kv_store_data_prefix=service/voltha"
154 - "-in_competing_mode=true"
David Bainbridgecd30e542019-05-31 20:52:56 +0000155 - "-core_timeout={{ $core_timeout }}"
156 - "-timeout_long_request={{ $long_request_timeout }}"
157 - "-timeout_request={{ $request_timeout }}"
David Bainbridge50cb1ef2019-07-23 22:36:17 +0000158 - "-log_level={{ $log_level }}"
David Bainbridge2f9b76f2019-05-15 13:48:11 -0700159 ports:
160 - containerPort: 50057
161 name: grpc-port
162{{end}}
Kent Hagerman1b333b92019-07-22 16:57:20 -0400163{{end}}