[VOL-3142] Added helm chart for voltha tracing based on jaeger all-in-one container

Change-Id: I724f3aa2408d8ffeefdd2ad9ef385dfdabdcc170
diff --git a/voltha-tracing/.helmignore b/voltha-tracing/.helmignore
new file mode 100644
index 0000000..50af031
--- /dev/null
+++ b/voltha-tracing/.helmignore
@@ -0,0 +1,22 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
diff --git a/voltha-tracing/Chart.yaml b/voltha-tracing/Chart.yaml
new file mode 100644
index 0000000..4255151
--- /dev/null
+++ b/voltha-tracing/Chart.yaml
@@ -0,0 +1,35 @@
+# Copyright 2020-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+apiVersion: v1
+name: "voltha-tracing"
+version: "1.0.0"
+description: "A Helm chart for deploying Jaeger all-in-one container for Trace data collection and analysis"
+keywords:
+  - "onf"
+  - "voltha"
+  - "tracing"
+  - "opentracing"
+home: "https://www.opennetworking.org/voltha"
+icon: "https://guide.opencord.org/logos/cord.svg"
+sources:
+  - "https://github.com/jaegertracing/jaeger-kubernetes/tree/master/all-in-one"
+  - "https://www.jaegertracing.io/docs/1.18/getting-started/#all-in-one"
+maintainers:
+  - name: "Open Networking Foundation"
+    email: "info@opennetworking.org"
+    url: "https://www.opennetworking.org"
+
+# App Version here refers to Jaeger container image version used by default in this chart
+appVersion: "1.18"
diff --git a/voltha-tracing/templates/_helpers.tpl b/voltha-tracing/templates/_helpers.tpl
new file mode 100644
index 0000000..bf89b45
--- /dev/null
+++ b/voltha-tracing/templates/_helpers.tpl
@@ -0,0 +1,23 @@
+# Copyright 2020-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{{/* Expand the name of the chart. */}}
+{{- define "name" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+{{/* Create a default fully qualified app name. We truncate at 63 chars because . . . */}}
+{{- define "fullname" -}}
+{{- $name := default .Chart.Name .Values.nameOverride -}}
+{{- $fullname := default (printf "%s-%s" .Release.Name $name) .Values.fullNameOverride -}}
+{{- $fullname | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
diff --git a/voltha-tracing/templates/jaeger-deploy.yaml b/voltha-tracing/templates/jaeger-deploy.yaml
new file mode 100644
index 0000000..084ba4e
--- /dev/null
+++ b/voltha-tracing/templates/jaeger-deploy.yaml
@@ -0,0 +1,71 @@
+# Copyright 2020-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: "{{ template "fullname" . }}-jaeger"
+  namespace: "{{ .Release.Namespace }}"
+  labels:
+    app: jaeger
+    release: "{{ .Release.Name }}"
+    app.kubernetes.io/name: jaeger
+    app.kubernetes.io/component: all-in-one
+spec:
+  replicas: 1
+  strategy:
+    type: Recreate
+  selector:
+    matchLabels:
+      app: jaeger
+      release: "{{ .Release.Name }}"
+  template:
+    metadata:
+      namespace: "{{ .Release.Namespace }}"
+      labels:
+        app: jaeger
+        release: "{{ .Release.Name }}"
+        app.kubernetes.io/name: jaeger
+        app.kubernetes.io/version: {{ quote .Chart.Version }}
+        app.kubernetes.io/component: all-in-one
+      annotations:
+        prometheus.io/scrape: "false"
+    spec:
+      {{- if .Values.securityContext.enabled }}
+      securityContext:
+        runAsUser: {{ .Values.securityContext.runAsUser }}
+        runAsGroup: {{ .Values.securityContext.runAsGroup }}
+        fsGroup: {{ .Values.securityContext.fsGroup }}
+      {{- end }}
+      containers:
+        - name: jaeger
+          image: '{{ .Values.tracing.image.repository }}:{{ .Values.tracing.image.tag }}'
+          imagePullPolicy: '{{ .Values.tracing.image.pullPolicy }}'
+          args: ["--memory.max-traces", '{{ .Values.tracing.maxTraces }}']
+          ports:
+            - containerPort: 6831
+              protocol: UDP
+            - containerPort: 5778
+              protocol: TCP
+            - containerPort: 16686
+              protocol: TCP
+          {{- if .Values.securityContext.enabled }}
+          securityContext:
+            allowPrivilegeEscalation: false
+          {{- end }}
+          readinessProbe:
+            httpGet:
+              path: "/"
+              port: 14269
+            initialDelaySeconds: 5
diff --git a/voltha-tracing/templates/tracing-agent-svc.yaml b/voltha-tracing/templates/tracing-agent-svc.yaml
new file mode 100644
index 0000000..e890bb6
--- /dev/null
+++ b/voltha-tracing/templates/tracing-agent-svc.yaml
@@ -0,0 +1,38 @@
+# Copyright 2020-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: "{{ template "fullname" . }}-jaeger-agent"
+  namespace: "{{ .Release.Namespace }}"
+  labels:
+    app: jaeger
+    release: "{{ .Release.Name }}"
+    app.kubernetes.io/name: jaeger
+    app.kubernetes.io/component: agent
+spec:
+  ports:
+  - name: agent-compact
+    port: 6831
+    protocol: UDP
+    targetPort: 6831
+  - name: agent-configs
+    port: 5778
+    protocol: TCP
+    targetPort: 5778
+  clusterIP: None
+  selector:
+    app: jaeger
+    release: "{{ .Release.Name }}"
diff --git a/voltha-tracing/templates/tracing-gui-svc.yaml b/voltha-tracing/templates/tracing-gui-svc.yaml
new file mode 100644
index 0000000..9bb0b8f
--- /dev/null
+++ b/voltha-tracing/templates/tracing-gui-svc.yaml
@@ -0,0 +1,34 @@
+# Copyright 2020-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: "{{ template "fullname" . }}-jaeger-gui"
+  namespace: "{{ .Release.Namespace }}"
+  labels:
+    app: jaeger
+    release: "{{ .Release.Name }}"
+    app.kubernetes.io/name: jaeger
+    app.kubernetes.io/component: query
+spec:
+  ports:
+    - name: query-http
+      port: 16686
+      protocol: TCP
+      targetPort: 16686
+  selector:
+    app: jaeger
+    release: "{{ .Release.Name }}"
+  type: ClusterIP
diff --git a/voltha-tracing/values.yaml b/voltha-tracing/values.yaml
new file mode 100644
index 0000000..6b9bf0b
--- /dev/null
+++ b/voltha-tracing/values.yaml
@@ -0,0 +1,32 @@
+# Copyright 2020-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+nameOverride: ~
+fullNameOverride: ~
+
+# Default values for voltha-tracing.
+tracing:
+  image:
+    repository: "jaegertracing/all-in-one"
+    tag: "1.18"
+    pullPolicy: "IfNotPresent"
+  maxTraces: 100000
+
+# Default security context under which the containers run
+securityContext:
+  enabled: true
+  fsGroup: 1001
+  runAsUser: 1001
+  runAsGroup: 1001
+