From 927cde433546ffe18bcf16f4d9887aa5c582c976 Mon Sep 17 00:00:00 2001 From: Roni Riska Date: Tue, 27 Aug 2019 11:46:51 +0300 Subject: [PATCH] First version of helm charts First version of jaeger-all-in-one helm charts Change-Id: I7f0045a565b5c2c719a9b3fcc4afdc427ff83e0d Signed-off-by: Roni Riska --- LICENSES.txt | 47 +++++++++++++++++++++ README.md | 34 +++++++++++++++ chart/.helmignore | 37 +++++++++++++++++ chart/Chart.yaml | 20 +++++++++ chart/templates/_helpers.tpl | 60 +++++++++++++++++++++++++++ chart/templates/agent-service.yaml | 40 ++++++++++++++++++ chart/templates/collector-service.yaml | 40 ++++++++++++++++++ chart/templates/deployment.yaml | 75 ++++++++++++++++++++++++++++++++++ chart/templates/env.yaml | 11 +++++ chart/templates/query-service.yaml | 32 +++++++++++++++ chart/values.yaml | 52 +++++++++++++++++++++++ 11 files changed, 448 insertions(+) create mode 100644 LICENSES.txt create mode 100644 README.md create mode 100644 chart/.helmignore create mode 100644 chart/Chart.yaml create mode 100644 chart/templates/_helpers.tpl create mode 100644 chart/templates/agent-service.yaml create mode 100644 chart/templates/collector-service.yaml create mode 100644 chart/templates/deployment.yaml create mode 100644 chart/templates/env.yaml create mode 100644 chart/templates/query-service.yaml create mode 100644 chart/values.yaml diff --git a/LICENSES.txt b/LICENSES.txt new file mode 100644 index 0000000..fc2ed8e --- /dev/null +++ b/LICENSES.txt @@ -0,0 +1,47 @@ +Copyright (c) 2019 AT&T Intellectual Property. +Copyright (c) 2019 Nokia. + + +Unless otherwise specified, all software contained herein is licensed +under the Apache License, Version 2.0 (the "License"); +you may not use this software 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. + + + +Unless otherwise specified, all documentation contained herein is licensed +under the Creative Commons License, Attribution 4.0 Intl. (the "License"); +you may not use this documentation except in compliance with the License. +You may obtain a copy of the License at + +https://creativecommons.org/licenses/by/4.0/ + +Unless required by applicable law or agreed to in writing, documentation +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. + + + + +Unless otherwise specified, all data contained herein is licensed +under the CDLA-Permissive 1.0 License (the "License"); +you may not use this data except in compliance with the License. +You may obtain a copy of the License at + +https://cdla.io/permissive-1-0/ + +Unless required by applicable law or agreed to in writing, data +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. diff --git a/README.md b/README.md new file mode 100644 index 0000000..6f7747d --- /dev/null +++ b/README.md @@ -0,0 +1,34 @@ +# Jaeger adapter + +This repository contains jaeger configuration files, like the heml charts + +## Current information + +Currently only supported configuration is jaeger-all-in-one deployment. +The heml chart defines following three services. + +### The jaeger agent + +Jaeger agent receives trace data from jaeger client(s) with UDP to ports 5775 or 6831 or 6832. +So the jaeger pods needs to expose these ports and the jaeger agent service IP address +should be available with DNS. + +With these helm charts the DNS entry will be `jaeger-all-in-one-agent`. + +### the jaeger collector + +Jaeger collector receives trace data from jaeger agent(s) with TCP to ports 14267 or 14268 or 9411. +Jaeger pod need to expose these ports and the collector service IP address should be available +with DNS + +With these helm charts the DNS entry will be `jaeger-all-in-one-collector`. + +### the jaeger query + +Jaeger query implements a web service for quering trace data. It should expose a http port, for example 80. + +With these helm charts the DNS entry will be `jaeger-all-in-one-query`. + +## Config map + +A config map for creating trace client configuration is provided. Currently it configures a disabled tracer client. diff --git a/chart/.helmignore b/chart/.helmignore new file mode 100644 index 0000000..d29b399 --- /dev/null +++ b/chart/.helmignore @@ -0,0 +1,37 @@ +# Copyright (c) 2019 AT&T Intellectual Property. +# Copyright (c) 2019 Nokia. +# +# 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. + +# 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/chart/Chart.yaml b/chart/Chart.yaml new file mode 100644 index 0000000..c83771b --- /dev/null +++ b/chart/Chart.yaml @@ -0,0 +1,20 @@ +# Copyright (c) 2019 AT&T Intellectual Property. +# Copyright (c) 2019 Nokia. +# +# 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 +appVersion: "1.0" +description: A Helm chart for Kubernetes +name: ric-jaeger-all-in-one +version: 0.1.0 diff --git a/chart/templates/_helpers.tpl b/chart/templates/_helpers.tpl new file mode 100644 index 0000000..8840d47 --- /dev/null +++ b/chart/templates/_helpers.tpl @@ -0,0 +1,60 @@ +# Copyright (c) 2019 AT&T Intellectual Property. +# Copyright (c) 2019 Nokia. +# +# 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. + +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "jaeger-all-in-one.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "jaeger-all-in-one.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "jaeger-all-in-one.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Common labels +*/}} +{{- define "jaeger-all-in-one.labels" -}} +app.kubernetes.io/name: {{ include "jaeger-all-in-one.name" . }} +helm.sh/chart: {{ include "jaeger-all-in-one.chart" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end -}} diff --git a/chart/templates/agent-service.yaml b/chart/templates/agent-service.yaml new file mode 100644 index 0000000..4d1300a --- /dev/null +++ b/chart/templates/agent-service.yaml @@ -0,0 +1,40 @@ +# Copyright (c) 2019 AT&T Intellectual Property. +# Copyright (c) 2019 Nokia. +# +# 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: "jaeger-all-in-one-agent" + labels: +{{ include "jaeger-all-in-one.labels" . | indent 4 }} +spec: + type: ClusterIP + ports: + - name: agent-zipkin-thrift + port: 5775 + protocol: UDP + targetPort: 5775 + - name: agent-compact + port: 6831 + protocol: UDP + targetPort: 6831 + - name: agent-binary + port: 6832 + protocol: UDP + targetPort: 6832 + selector: + app.kubernetes.io/name: {{ include "jaeger-all-in-one.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + diff --git a/chart/templates/collector-service.yaml b/chart/templates/collector-service.yaml new file mode 100644 index 0000000..a26c3d4 --- /dev/null +++ b/chart/templates/collector-service.yaml @@ -0,0 +1,40 @@ +# Copyright (c) 2019 AT&T Intellectual Property. +# Copyright (c) 2019 Nokia. +# +# 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: "jaeger-all-in-one-query" + labels: +{{ include "jaeger-all-in-one.labels" . | indent 4 }} +spec: + type: ClusterIP + ports: + - name: jaeger-collector-tchannel + port: 14267 + protocol: TCP + targetPort: 14267 + - name: jaeger-collector-http + port: 14268 + protocol: TCP + targetPort: 14268 + - name: jaeger-collector-zipkin + port: 9411 + protocol: TCP + targetPort: 9411 + selector: + app.kubernetes.io/name: {{ include "jaeger-all-in-one.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + diff --git a/chart/templates/deployment.yaml b/chart/templates/deployment.yaml new file mode 100644 index 0000000..38b9719 --- /dev/null +++ b/chart/templates/deployment.yaml @@ -0,0 +1,75 @@ +# Copyright (c) 2019 AT&T Intellectual Property. +# Copyright (c) 2019 Nokia. +# +# 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: {{ include "jaeger-all-in-one.fullname" . }} + labels: +{{ include "jaeger-all-in-one.labels" . | indent 4 }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + app.kubernetes.io/name: {{ include "jaeger-all-in-one.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + template: + metadata: + labels: + app.kubernetes.io/name: {{ include "jaeger-all-in-one.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + containers: + - name: {{ .Chart.Name }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - containerPort: 5775 + protocol: UDP + - containerPort: 6831 + protocol: UDP + - containerPort: 6832 + protocol: UDP + - containerPort: 16686 + protocol: TCP + - containerPort: 9411 + protocol: TCP + livenessProbe: + httpGet: + path: / + port: 16686 + readinessProbe: + httpGet: + path: / + port: 16686 + initialDelaySeconds: 5 + resources: + {{- toYaml .Values.resources | nindent 12 }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/chart/templates/env.yaml b/chart/templates/env.yaml new file mode 100644 index 0000000..24207ba --- /dev/null +++ b/chart/templates/env.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: tracing-config + namespace: default +data: + TRACING_ENABLED: "0" + TRACING_JAEGER_SAMPLER_TYPE: "const" + TRACING_JAEGER_SAMPLER_PARAM: "1" + TRACING_JAEGER_AGENT_ADDR: "jaeger-all-in-one-agent" + TRACING_JAEGER_LOG_LEVEL: "error" diff --git a/chart/templates/query-service.yaml b/chart/templates/query-service.yaml new file mode 100644 index 0000000..c768b93 --- /dev/null +++ b/chart/templates/query-service.yaml @@ -0,0 +1,32 @@ +# Copyright (c) 2019 AT&T Intellectual Property. +# Copyright (c) 2019 Nokia. +# +# 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: "jaeger-all-in-one-collector" + labels: +{{ include "jaeger-all-in-one.labels" . | indent 4 }} +spec: + type: ClusterIP + ports: + - name: query-http + port: {{ default 80 .Values.port }} + protocol: TCP + targetPort: 16686 + selector: + app.kubernetes.io/name: {{ include "jaeger-all-in-one.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + diff --git a/chart/values.yaml b/chart/values.yaml new file mode 100644 index 0000000..60e997b --- /dev/null +++ b/chart/values.yaml @@ -0,0 +1,52 @@ +# Copyright (c) 2019 AT&T Intellectual Property. +# Copyright (c) 2019 Nokia. +# +# 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. + +# Default values for jaeger-all-in-one. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +replicaCount: 1 + +image: + repository: jaegertracing/all-in-one + tag: 1.12 + pullPolicy: IfNotPresent + +imagePullSecrets: [] +nameOverride: "" +fullnameOverride: "" + +ingress: + enabled: false + annotations: {} + tls: [] + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 100m + # memory: 128Mi + +nodeSelector: {} + +tolerations: [] + +affinity: {} -- 2.16.6