From 3dfd3180c0a4d192f4524d74e36d2ba50bffff71 Mon Sep 17 00:00:00 2001 From: Dileep Ranganathan Date: Tue, 5 Mar 2019 10:24:06 -0800 Subject: Collection Service Helm charts package The packages needed for distributed analytics are separated as collection, messaging, training, inference and visualization. Collection package consists of collection agents, Prometheus operator. and Prometheus. Change-Id: I12c6ed0607fbaedf7bbc207562fb5bf2a1950623 Issue-ID: ONAPARC-366 Signed-off-by: Dileep Ranganathan --- vnfs/DAaaS/collection/charts/collectd/.helmignore | 21 ++++++ vnfs/DAaaS/collection/charts/collectd/Chart.yaml | 19 +++++ .../collection/charts/collectd/templates/NOTES.txt | 1 + .../charts/collectd/templates/_helpers.tpl | 25 +++++++ .../charts/collectd/templates/configmap.yaml | 71 +++++++++++++++++++ .../charts/collectd/templates/daemonset.yaml | 81 ++++++++++++++++++++++ .../charts/collectd/templates/service.yaml | 32 +++++++++ vnfs/DAaaS/collection/charts/collectd/values.yaml | 26 +++++++ 8 files changed, 276 insertions(+) create mode 100644 vnfs/DAaaS/collection/charts/collectd/.helmignore create mode 100644 vnfs/DAaaS/collection/charts/collectd/Chart.yaml create mode 100644 vnfs/DAaaS/collection/charts/collectd/templates/NOTES.txt create mode 100644 vnfs/DAaaS/collection/charts/collectd/templates/_helpers.tpl create mode 100644 vnfs/DAaaS/collection/charts/collectd/templates/configmap.yaml create mode 100644 vnfs/DAaaS/collection/charts/collectd/templates/daemonset.yaml create mode 100644 vnfs/DAaaS/collection/charts/collectd/templates/service.yaml create mode 100644 vnfs/DAaaS/collection/charts/collectd/values.yaml (limited to 'vnfs/DAaaS/collection/charts/collectd') diff --git a/vnfs/DAaaS/collection/charts/collectd/.helmignore b/vnfs/DAaaS/collection/charts/collectd/.helmignore new file mode 100644 index 00000000..f0c13194 --- /dev/null +++ b/vnfs/DAaaS/collection/charts/collectd/.helmignore @@ -0,0 +1,21 @@ +# 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 diff --git a/vnfs/DAaaS/collection/charts/collectd/Chart.yaml b/vnfs/DAaaS/collection/charts/collectd/Chart.yaml new file mode 100644 index 00000000..fcdcfde9 --- /dev/null +++ b/vnfs/DAaaS/collection/charts/collectd/Chart.yaml @@ -0,0 +1,19 @@ +# Copyright 2019 Intel Corporation, Inc +# +# 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: "7.1.0" +description: Collectd Helm Chart +name: collectd +version: 0.2.0 diff --git a/vnfs/DAaaS/collection/charts/collectd/templates/NOTES.txt b/vnfs/DAaaS/collection/charts/collectd/templates/NOTES.txt new file mode 100644 index 00000000..cb1494f1 --- /dev/null +++ b/vnfs/DAaaS/collection/charts/collectd/templates/NOTES.txt @@ -0,0 +1 @@ +1. CollectD Charts diff --git a/vnfs/DAaaS/collection/charts/collectd/templates/_helpers.tpl b/vnfs/DAaaS/collection/charts/collectd/templates/_helpers.tpl new file mode 100644 index 00000000..b5e98086 --- /dev/null +++ b/vnfs/DAaaS/collection/charts/collectd/templates/_helpers.tpl @@ -0,0 +1,25 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +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 some Kubernetes name fields are limited to this (by the DNS naming spec). +*/}} +{{- define "fullname" -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* Workaround for https://github.com/helm/helm/issues/3117 */}} +{{- define "rangeskipempty" -}} +{{- range $key, $value := . }} +{{- if $value }} +{{ $key }}: {{ $value }} +{{- end }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/vnfs/DAaaS/collection/charts/collectd/templates/configmap.yaml b/vnfs/DAaaS/collection/charts/collectd/templates/configmap.yaml new file mode 100644 index 00000000..90cbf176 --- /dev/null +++ b/vnfs/DAaaS/collection/charts/collectd/templates/configmap.yaml @@ -0,0 +1,71 @@ +{{/* +# Copyright 2019 Intel Corporation, Inc +# +# 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: ConfigMap +metadata: + name: {{ template "fullname" . }}-config + labels: + app: {{ template "name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} +data: + node-collectd.conf: |- + FQDNLookup false + + LoadPlugin cpu + LoadPlugin memory + LoadPlugin cpufreq + LoadPlugin disk + LoadPlugin ethstat + LoadPlugin ipc + LoadPlugin ipmi + LoadPlugin load + LoadPlugin numa + LoadPlugin processes + LoadPlugin df + LoadPlugin turbostat + LoadPlugin uptime + LoadPlugin contextswitch + LoadPlugin irq + LoadPlugin df + LoadPlugin swap + LoadPlugin write_prometheus + + LoadPlugin logfile + + LogLevel info + File "/var/log/collectd.log" + Timestamp true + PrintSeverity false + + + Interval 5 + ReportByState false + ReportByCpu false + + + + Interval 30 + ValuesAbsolute false + ValuesPercentage true + + + + Port "{{ .Values.prometheus_port }}" + + + #Last line (collectd requires ā€˜\nā€™ at the last line) diff --git a/vnfs/DAaaS/collection/charts/collectd/templates/daemonset.yaml b/vnfs/DAaaS/collection/charts/collectd/templates/daemonset.yaml new file mode 100644 index 00000000..209b853d --- /dev/null +++ b/vnfs/DAaaS/collection/charts/collectd/templates/daemonset.yaml @@ -0,0 +1,81 @@ +{{/* +# Copyright 2019 Intel Corporation, Inc +# +# 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: extensions/v1beta1 +kind: DaemonSet +metadata: + name: {{ template "fullname" . }} + annotations: + checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }} + labels: + app: {{ template "name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} +spec: + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ template "name" . }} + collector: collectd + release: {{ .Release.Name }} + spec: + hostNetwork: true + containers: + - name: {{ .Chart.Name }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + securityContext: + privileged: true + volumeMounts: + - name: {{ template "fullname" . }}-config + mountPath: /opt/collectd/etc + - name: proc + mountPath: /mnt/proc + readOnly: true + - name: root + mountPath: /hostfs + readOnly: true + - name: etc + mountPath: /mnt/etc + readOnly: true + - name: run + mountPath: /var/run/docker.sock + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 8 }} + {{- end }} + volumes: + - name: {{ template "fullname" . }}-config + configMap: + name: {{ template "fullname" . }}-config + items: + - key: node-collectd.conf + path: collectd.conf + - name: proc + hostPath: + path: /proc + - name: root + hostPath: + path: / + - name: etc + hostPath: + path: /etc + - name: run + hostPath: + path: /var/run/docker.sock \ No newline at end of file diff --git a/vnfs/DAaaS/collection/charts/collectd/templates/service.yaml b/vnfs/DAaaS/collection/charts/collectd/templates/service.yaml new file mode 100644 index 00000000..37be5cc5 --- /dev/null +++ b/vnfs/DAaaS/collection/charts/collectd/templates/service.yaml @@ -0,0 +1,32 @@ +{{/* +# Copyright 2019 Intel Corporation, Inc +# +# 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: collectd-metrics + labels: + app: collectd + release: {{ .Release.Name }} +spec: + ports: + - name: collectd-prometheus + port: {{ .Values.collectd_prometheus.service.port }} + protocol: TCP + targetPort: {{ .Values.collectd_prometheus.service.targetPort }} + selector: +{{ include "rangeskipempty" .Values.collectd_prometheus.service.selector | indent 4 }} + type: ClusterIP diff --git a/vnfs/DAaaS/collection/charts/collectd/values.yaml b/vnfs/DAaaS/collection/charts/collectd/values.yaml new file mode 100644 index 00000000..54c9a850 --- /dev/null +++ b/vnfs/DAaaS/collection/charts/collectd/values.yaml @@ -0,0 +1,26 @@ +# Default values for collectd. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. +namespace: default +image: + repository: opnfv/barometer-collectd + tag: latest + pullPolicy: IfNotPresent +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 +collectd_prometheus: + service: + port: 9103 + targetPort: 9103 + selector: + app: collectd + jobLabel: collectd -- cgit 1.2.3-korg