mirror of
https://github.com/helm/charts.git
synced 2026-08-23 22:37:45 +00:00
initial commit for wavefront chart (#11098)
* initial commit for wavefront chart Signed-off-by: Pierre Tessier <pierre@pierretessier.com> * removed trailing spaces Signed-off-by: Pierre Tessier <pierre@pierretessier.com> * fixed trailing spaces Signed-off-by: Pierre Tessier <pierre@pierretessier.com> * chart version, new lines, helm.sh/chart labels Signed-off-by: Pierre Tessier <pierre@pierretessier.com> * use 0.9.7 collector Signed-off-by: Pierre Tessier <pierre@pierretessier.com>
This commit is contained in:
committed by
Kubernetes Prow Robot
parent
1e206341fe
commit
67fe96ff62
@@ -0,0 +1,23 @@
|
||||
# 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
|
||||
# OWNERS file for Kubernetes
|
||||
OWNERS
|
||||
@@ -0,0 +1,21 @@
|
||||
apiVersion: v1
|
||||
name: wavefront
|
||||
description: Wavefront Kubernetes collector
|
||||
appVersion: 0.9.7
|
||||
version: 1.0.0
|
||||
keywords:
|
||||
- metric
|
||||
- monitoring
|
||||
- observability
|
||||
- alerting
|
||||
home: https://www.wavefront.com
|
||||
sources:
|
||||
- https://github.com/wavefrontHQ/wavefront-kubernetes-collector
|
||||
- https://github.com/wavefrontHQ/java/tree/master/proxy
|
||||
maintainers:
|
||||
- name: vikramraman
|
||||
email: rvikram@vmware.com
|
||||
- name: puckpuck
|
||||
email: pierre@wavefront.com
|
||||
- name: krisclarkdev
|
||||
email: clarkk@vmware.com
|
||||
@@ -0,0 +1,8 @@
|
||||
approvers:
|
||||
- vikramraman
|
||||
- puckpuck
|
||||
- krisclarkdev
|
||||
reviewers:
|
||||
- vikramraman
|
||||
- puckpuck
|
||||
- krisclarkdev
|
||||
@@ -0,0 +1,20 @@
|
||||
# Wavefront Kubenetes collector
|
||||
|
||||
[Wavefront](https://wavefront.com) is a cloud-native monitoring and analytics platform that provides
|
||||
three dimensional microservices observability with metrics, histograms and OpenTracing-compatible distributed tracing.
|
||||
|
||||
## Introduction
|
||||
|
||||
This chart will deploy the Wavefront Kubernetes collector and Wavefront Proxy to your
|
||||
Kubernetes cluster. You can use this chart to install multiple Wavefront Proxy releases,
|
||||
though only one Wavefront Kubernetes collector per cluster should be used.
|
||||
|
||||
You can learn more about the Wavefront and Kubernetes integration [here](https://docs.wavefront.com/wavefront_kubernetes.html)
|
||||
|
||||
## Configuration
|
||||
|
||||
The [values.yaml](./values.yaml) file contains information about all configuration
|
||||
options for this chart.
|
||||
|
||||
The **requried** options are `clusterName`, `wavefront.url` and `wavefront.token`.
|
||||
You will need to provide values for those options for a successful installation of the chart.
|
||||
@@ -0,0 +1,6 @@
|
||||
dependencies:
|
||||
- name: kube-state-metrics
|
||||
repository: https://kubernetes-charts.storage.googleapis.com/
|
||||
version: 0.13.0
|
||||
digest: sha256:a009e6781117de69f26b9ac1e72267407f5f598642fd20043b88ad815915391c
|
||||
generated: 2019-01-17T23:00:41.957053-05:00
|
||||
@@ -0,0 +1,5 @@
|
||||
dependencies:
|
||||
- name: kube-state-metrics
|
||||
version: ^0.8.0
|
||||
repository: https://kubernetes-charts.storage.googleapis.com/
|
||||
condition: kubeStateMetrics.enabled
|
||||
@@ -0,0 +1,55 @@
|
||||
{{- $validClusterName := and (.Values.clusterName) (ne .Values.clusterName "KUBERNETES_CLUSTER_NAME") -}}
|
||||
{{- $validUrl := and (.Values.wavefront.url) (ne .Values.wavefront.url "https://YOUR_CLUSTER.wavefront.com") -}}
|
||||
{{- $validToken := and (.Values.wavefront.token) (ne .Values.wavefront.token "YOUR_API_TOKEN") -}}
|
||||
|
||||
{{- if not $validClusterName }}
|
||||
|
||||
##### ERROR:
|
||||
You must set the value for 'clusterName' to uniquely identify this Kubernetes cluster in Wavefront.
|
||||
#####
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.collector.useProxy }}
|
||||
{{- if and (not .Values.proxy.enabled) (not .Values.collector.proxyAddress) }}
|
||||
|
||||
##### ERROR:
|
||||
Collector is set to use proxy but `proxy.enabled` is not true and `collector.proxyAddress` is not provided.
|
||||
#####
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- if or (not $validUrl) (not $validToken) }}
|
||||
|
||||
##### ERROR:
|
||||
Collector is set to use direct ingestion API but `wavefront.url` or `wavefront.token` are not specified.
|
||||
#####
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.proxy.enabled }}
|
||||
{{- if or (not $validUrl) (not $validToken) }}
|
||||
|
||||
##### ERROR:
|
||||
Proxy is enabled but `wavefront.url` or `wavefront.token` are not specified.
|
||||
#####
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
|
||||
{{- if or (not $validUrl) (not $validToken) }}
|
||||
|
||||
You did not specify a valid URL or Token for Wavefront.
|
||||
If you do not have a Wavefront instance you can get a free trial here
|
||||
|
||||
https://www.wavefront.com/sign-up
|
||||
|
||||
If you already have access to Wavefront please specify your URL and Token then try again.
|
||||
{{- end }}
|
||||
|
||||
|
||||
Wavefront is setup and configured to collect metrics from your Kubernetes cluster. You
|
||||
should see metrics flowing within a few minutes.
|
||||
|
||||
You can visit this dashboard in Wavefront to see your Kubernetes metrics:
|
||||
|
||||
{{ .Values.wavefront.url }}/dashboard/integration-kubernetes-main
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "wavefront.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "wavefront.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | 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 "wavefront.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 a name for Wavefront Collector
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
*/}}
|
||||
{{- define "wavefront.collector.fullname" -}}
|
||||
{{- printf "%s-collector" (include "wavefront.fullname" .) | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a name for Wavefront Proxy
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
*/}}
|
||||
{{- define "wavefront.proxy.fullname" -}}
|
||||
{{- printf "%s-proxy" (include "wavefront.fullname" .) | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create the name of the service account to use
|
||||
*/}}
|
||||
{{- define "wavefront.collector.serviceAccountName" -}}
|
||||
{{- if .Values.serviceAccount.create -}}
|
||||
{{ default (include "wavefront.collector.fullname" .) .Values.serviceAccount.name }}
|
||||
{{- else -}}
|
||||
{{ default "default" .Values.serviceAccount.name }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create template used as options for Wavefront sink in collector
|
||||
*/}}
|
||||
{{- define "wavefront.collector.sinkOptions" -}}
|
||||
{{- printf "&clusterName=%s&includeLabels=%t&includeContainers=%t&prefix=%s" .Values.clusterName (default .Values.collector.includeLabels true) (default .Values.collector.includeContainers true) (default .Values.collector.prefix "kubernetes.") -}}
|
||||
{{- end -}}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
{{- if .Values.wavefront.token }}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name : {{ template "wavefront.fullname" . }}
|
||||
helm.sh/chart: {{ template "wavefront.chart" . }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
|
||||
app.kubernetes.io.instance: {{ .Release.Name | quote }}
|
||||
app.kubernetes.io/component: collector
|
||||
name: {{ template "wavefront.fullname" . }}
|
||||
type: Opaque
|
||||
data:
|
||||
api-token: {{ .Values.wavefront.token | b64enc | quote }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,37 @@
|
||||
{{- if and .Values.rbac.create .Values.collector.enabled }}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name : {{ template "wavefront.fullname" . }}
|
||||
helm.sh/chart: {{ template "wavefront.chart" . }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
|
||||
app.kubernetes.io.instance: {{ .Release.Name | quote }}
|
||||
app.kubernetes.io/component: collector
|
||||
kubernetes.io/bootstrapping: rbac-defaults
|
||||
annotations:
|
||||
rbac.authorization.kubernetes.io/autoupdate: "true"
|
||||
name: {{ template "wavefront.collector.fullname" . }}
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
- namespaces
|
||||
- nodes
|
||||
- nodes/stats
|
||||
- pods
|
||||
- services
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- extensions
|
||||
resources:
|
||||
- deployments
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
{{- end }}
|
||||
@@ -0,0 +1,14 @@
|
||||
{{- if and .Values.collector.discovery.enabled .Values.collector.discovery.config }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name : {{ template "wavefront.fullname" . }}
|
||||
helm.sh/chart: {{ template "wavefront.chart" . }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
|
||||
app.kubernetes.io.instance: {{ .Release.Name | quote }}
|
||||
app.kubernetes.io/component: collector
|
||||
name: {{ template "wavefront.collector.fullname" . }}-config
|
||||
data:
|
||||
{{ tpl (toYaml .Values.collector.discovery.config) . | indent 2 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,84 @@
|
||||
{{- if .Values.collector.enabled }}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name : {{ template "wavefront.fullname" . }}
|
||||
helm.sh/chart: {{ template "wavefront.chart" . }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
|
||||
app.kubernetes.io.instance: {{ .Release.Name | quote }}
|
||||
app.kubernetes.io/component: collector
|
||||
name: {{ template "wavefront.collector.fullname" . }}
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name : {{ template "wavefront.fullname" .}}
|
||||
app.kubernetes.io/component: collector
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name : {{ template "wavefront.fullname" .}}
|
||||
app.kubernetes.io/component: collector
|
||||
spec:
|
||||
serviceAccountName: {{ template "wavefront.collector.serviceAccountName" . }}
|
||||
containers:
|
||||
- name: wavefront-collector
|
||||
image: {{ .Values.collector.image.repository }}:{{ .Values.collector.image.tag }}
|
||||
imagePullPolicy: {{ .Values.collector.image.pullPolicy }}
|
||||
command:
|
||||
- /wavefront-collector
|
||||
- --source={{ .Values.collector.kubernetesSource | default "kubernetes.summary_api:''" }}
|
||||
{{- if and (.Values.kubeStateMetrics.enabled) (not .Values.collector.discovery.enabled) }}
|
||||
- --source=prometheus:''?url=http://{{ .Release.Name }}-kube-state-metrics:{{ index .Values "kube-state-metrics" "service" "port" }}/metrics
|
||||
{{- end }}
|
||||
{{- if .Values.collector.useProxy }}
|
||||
{{- if .Values.collector.proxyAddress }}
|
||||
- --sink=wavefront:?proxyAddress={{ .Values.collector.proxyAddress }}{{ template "wavefront.collector.sinkOptions" . }}
|
||||
{{- else }}
|
||||
- --sink=wavefront:?proxyAddress={{ template "wavefront.proxy.fullname" . }}:{{ .Values.proxy.port }}{{ template "wavefront.collector.sinkOptions" . }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
- --sink=wavefront:?server={{ .Values.wavefront.url }}&token={{ .Values.wavefront.token }}{{ template "wavefront.collector.sinkOptions" . }}
|
||||
{{- end }}
|
||||
- --enable-discovery={{ .Values.collector.discovery.enabled }}
|
||||
{{- if and .Values.collector.discovery.enabled .Values.collector.discovery.config }}
|
||||
- --discovery-config=/etc/collector/config.yaml
|
||||
{{- end }}
|
||||
{{- if .Values.collector.maxProcs }}
|
||||
- --max-procs={{ .Values.collector.maxProcs }}
|
||||
{{- end }}
|
||||
{{- if .Values.collector.interval }}
|
||||
- --metric-resolution={{ .Values.collector.interval }}
|
||||
{{- end }}
|
||||
{{- if .Values.collector.sinkDelay }}
|
||||
- --sink-export-data-timeout={{ .Values.collector.sinkDelay }}
|
||||
{{- end }}
|
||||
{{- if .Values.collector.logVerbosity }}
|
||||
- --v={{ .Values.collector.logVerbosity }}
|
||||
{{- end }}
|
||||
resources:
|
||||
{{ toYaml .Values.collector.resources | indent 10 }}
|
||||
volumeMounts:
|
||||
{{- if and .Values.collector.discovery.enabled .Values.collector.discovery.config }}
|
||||
- name: config
|
||||
mountPath: /etc/collector/
|
||||
readOnly: true
|
||||
{{- end }}
|
||||
{{- if not .Values.openshift.enabled }}
|
||||
- name: ssl-certs
|
||||
mountPath: /etc/ssl/certs
|
||||
readOnly: true
|
||||
{{- end }}
|
||||
volumes:
|
||||
{{- if and .Values.collector.discovery.enabled .Values.collector.discovery.config }}
|
||||
- name: config
|
||||
configMap:
|
||||
name: {{ template "wavefront.collector.fullname" . }}-config
|
||||
{{- end }}
|
||||
{{- if not .Values.openshift.enabled }}
|
||||
- name: ssl-certs
|
||||
hostPath:
|
||||
path: /etc/ssl/certs
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,20 @@
|
||||
{{- if and .Values.rbac.create .Values.collector.enabled }}
|
||||
kind: ClusterRoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name : {{ template "wavefront.fullname" . }}
|
||||
helm.sh/chart: {{ template "wavefront.chart" . }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
|
||||
app.kubernetes.io.instance: {{ .Release.Name | quote }}
|
||||
app.kubernetes.io/component: collector
|
||||
name: {{ template "wavefront.collector.fullname" . }}
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: {{ template "wavefront.collector.fullname" . }}
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ template "wavefront.collector.serviceAccountName" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,13 @@
|
||||
{{- if and .Values.serviceAccount.create .Values.collector.enabled }}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name : {{ template "wavefront.fullname" . }}
|
||||
helm.sh/chart: {{ template "wavefront.chart" . }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
|
||||
app.kubernetes.io.instance: {{ .Release.Name | quote }}
|
||||
app.kubernetes.io/component: collector
|
||||
name: {{ template "wavefront.collector.serviceAccountName" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,85 @@
|
||||
{{- if .Values.proxy.enabled }}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name : {{ template "wavefront.fullname" . }}
|
||||
helm.sh/chart: {{ template "wavefront.chart" . }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
|
||||
app.kubernetes.io.instance: {{ .Release.Name | quote }}
|
||||
app.kubernetes.io/component: proxy
|
||||
name: {{ template "wavefront.proxy.fullname" . }}
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name : {{ template "wavefront.fullname" .}}
|
||||
app.kubernetes.io/component: proxy
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name : {{ template "wavefront.fullname" .}}
|
||||
app.kubernetes.io/component: proxy
|
||||
spec:
|
||||
containers:
|
||||
- name: wavefront-proxy
|
||||
image: {{ .Values.proxy.image.repository }}:{{ .Values.proxy.image.tag }}
|
||||
imagePullPolicy: {{ .Values.proxy.image.pullPolicy }}
|
||||
env:
|
||||
- name: WAVEFRONT_URL
|
||||
value: {{ .Values.wavefront.url }}/api
|
||||
- name: WAVEFRONT_TOKEN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ template "wavefront.fullname" . }}
|
||||
key: api-token
|
||||
- name: WAVEFRONT_PROXY_ARGS
|
||||
value: {{ .Values.proxy.args }}
|
||||
{{- if .Values.proxy.tracePort }} --traceListenerPorts {{ .Values.proxy.tracePort }}{{- end -}}
|
||||
{{- if .Values.proxy.jaegerPort }} --traceJaegerListenerPorts {{ .Values.proxy.jaegerPort }}{{- end -}}
|
||||
{{- if .Values.proxy.zipkinPort }} --traceZipkinListenerPorts {{ .Values.proxy.zipkinPort }}{{- end -}}
|
||||
{{- if .Values.proxy.traceSamplingRate }} --traceSamplingRate {{ .Values.proxy.traceSamplingRate }}{{- end -}}
|
||||
{{- if .Values.proxy.traceSamplingDuration }} --traceSamplingDuration {{ .Values.proxy.traceSamplingDuration }}{{- end -}}
|
||||
{{- if .Values.proxy.preprocessor }} --preprocessorConfigFile /etc/wavefront/wavefront-proxy/preprocessor/rules.yaml{{- end -}}
|
||||
{{- if .Values.proxy.heap }}
|
||||
- name: JAVA_HEAP_USAGE
|
||||
value: {{ .Values.proxy.heap | quote }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- containerPort: {{ .Values.proxy.port }}
|
||||
protocol: TCP
|
||||
{{- if .Values.proxy.tracePort }}
|
||||
- containerPort: {{ .Values.proxy.tracePort }}
|
||||
protocol: TCP
|
||||
{{- end }}
|
||||
{{- if .Values.proxy.jaegerPort }}
|
||||
- containerPort: {{ .Values.proxy.jaegerPort }}
|
||||
protocol: TCP
|
||||
{{- end }}
|
||||
{{- if .Values.proxy.zipkinPort }}
|
||||
- containerPort: {{ .Values.proxy.zipkinPort }}
|
||||
protocol: TCP
|
||||
{{- end }}
|
||||
securityContext:
|
||||
privileged: false
|
||||
volumeMounts:
|
||||
{{- if .Values.proxy.preprocessor }}
|
||||
- name: preprocessor
|
||||
mountPath: /etc/wavefront/wavefront-proxy/preprocessor
|
||||
{{- end }}
|
||||
{{- if .Values.openshift.enabled }}
|
||||
- name: spool
|
||||
mountPath: /var/spool/wavefront-proxy
|
||||
{{- end }}
|
||||
volumes:
|
||||
{{- if .Values.proxy.preprocessor }}
|
||||
- name: preprocessor
|
||||
configMap:
|
||||
name: {{ template "wavefront.proxy.fullname" . }}-preprocessor
|
||||
{{- end }}
|
||||
{{- if .Values.openshift.enabled }}
|
||||
- name: spool
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ .Values.openshift.pvcName | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,14 @@
|
||||
{{- if .Values.proxy.preprocessor }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name : {{ template "wavefront.fullname" . }}
|
||||
helm.sh/chart: {{ template "wavefront.chart" . }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
|
||||
app.kubernetes.io.instance: {{ .Release.Name | quote }}
|
||||
app.kubernetes.io/component: proxy
|
||||
name: {{ template "wavefront.proxy.fullname" . }}-preprocessor
|
||||
data:
|
||||
{{ tpl (toYaml .Values.proxy.preprocessor) . | indent 2 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,35 @@
|
||||
{{- if .Values.proxy.enabled }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name : {{ template "wavefront.fullname" . }}
|
||||
helm.sh/chart: {{ template "wavefront.chart" . }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
|
||||
app.kubernetes.io.instance: {{ .Release.Name | quote }}
|
||||
app.kubernetes.io/component: proxy
|
||||
name: {{ template "wavefront.proxy.fullname" . }}
|
||||
spec:
|
||||
ports:
|
||||
- name: wavefront
|
||||
port: {{ .Values.proxy.port }}
|
||||
protocol: TCP
|
||||
{{- if .Values.proxy.tracePort }}
|
||||
- name: wavefront-trace
|
||||
port: {{ .Values.proxy.tracePort }}
|
||||
protocol: TCP
|
||||
{{- end }}
|
||||
{{- if .Values.proxy.jaegerPort }}
|
||||
- name: jaeger
|
||||
port: {{ .Values.proxy.jaegerPort }}
|
||||
protocol: TCP
|
||||
{{- end }}
|
||||
{{- if .Values.proxy.zipkinPort }}
|
||||
- name: zipkin
|
||||
port: {{ .Values.proxy.zipkinPort }}
|
||||
protocol: TCP
|
||||
{{- end }}
|
||||
selector:
|
||||
app.kubernetes.io/name : {{ template "wavefront.fullname" .}}
|
||||
app.kubernetes.io/component: proxy
|
||||
{{ end }}
|
||||
@@ -0,0 +1,194 @@
|
||||
## Default values for Wavefront
|
||||
|
||||
## This is a unique name for the cluster
|
||||
## All metrics will receive a `cluster` tag with this value
|
||||
## Required
|
||||
clusterName: KUBERNETES_CLUSTER_NAME
|
||||
|
||||
|
||||
## Wavefront URL (cluster) and API Token
|
||||
## Required
|
||||
wavefront:
|
||||
url: https://YOUR_CLUSTER.wavefront.com
|
||||
token: YOUR_API_TOKEN
|
||||
|
||||
|
||||
## Wavefront Collector is responsible to get all Kubernetes metrics from your cluster.
|
||||
## It will capture Kubernetes resources metrics available from the kubelets,
|
||||
## as well as auto-discovery capabilities.
|
||||
collector:
|
||||
enabled: true
|
||||
image:
|
||||
repository: wavefronthq/wavefront-kubernetes-collector
|
||||
tag: 0.9.7
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
## If set to true, metrics will be sent to Wavefront via a Wavefront Proxy.
|
||||
## When true you must either specify a value for `collector.proxyAddress` or set `proxy.enabled` to true
|
||||
## If set to false, metrics will be sent to Wavefront via the Direct Ingestion API
|
||||
useProxy: true
|
||||
|
||||
## Can be used to specify a specific address for the Wavefront Proxy
|
||||
## The proxy can be anywhere network reachable including outside of the cluster
|
||||
## Required if `collector.useProxy` is true and `proxy.enabled` is false
|
||||
# proxyAddress: wavefront-proxy:2878
|
||||
|
||||
## This is the Kubelet summary api endpoint and options.
|
||||
## Ref: https://github.com/wavefrontHQ/wavefront-kubernetes-collector/blob/master/docs/configuration.md#kubernetes-source
|
||||
# kubernetesSource: kubernetes.summary_api:''
|
||||
## If using Openshift (see below to enable) use the following for kubernetesSource
|
||||
# kubernetesSource: kubernetes.summary_api:${MASTER_URL}?useServiceAccount=true&kubeletHttps=true&kubeletPort=10250
|
||||
|
||||
## If set to true, any Kubernetes labels will be applied to metrics as tags. Defaults to false.
|
||||
includeLabels: true
|
||||
|
||||
## If set to true, all container metrics will be sent to Wavefront.
|
||||
## When set to false, container level metrics are skipped (pod level and above are still sent to Wavefront). Defaults to true.
|
||||
# includeContainers: true
|
||||
|
||||
## The global prefix to be added for Kubernetes metrics. Defaults to `kubernetes.`.
|
||||
## This does not apply to other sources. Use source level prefixes for sources other than the Kubernetes source.
|
||||
# prefix: kubernetes.
|
||||
|
||||
## max number of CPUs that can be used simultaneously. Less than 1 for default (number of cores)
|
||||
# maxProcs: 0
|
||||
|
||||
## The resolution at which the collector will retain metrics. (default 1m)
|
||||
# interval: 1m
|
||||
|
||||
## Timeout for exporting data (default 20s)
|
||||
# sinkDelay: 20s
|
||||
|
||||
## log level. Uses V logs (glog)
|
||||
# logVerbosity: 0
|
||||
|
||||
## Discovery capabilities of Wavefront Collector
|
||||
discovery:
|
||||
enabled: true
|
||||
|
||||
## Rules based discovery collection configuration
|
||||
## Ref: https://github.com/wavefrontHQ/wavefront-kubernetes-collector/blob/master/docs/discovery.md#rules-based-discovery
|
||||
# config:
|
||||
# config.yaml: |
|
||||
# global:
|
||||
# discovery_interval: 10m
|
||||
# prom_configs:
|
||||
# - name: kube-dns-discovery
|
||||
# labels:
|
||||
# k8s-app: kube-dns
|
||||
# port: 10055
|
||||
# path: /metrics
|
||||
# scheme: http
|
||||
# source: kube-dns
|
||||
# prefix: kube.dns.
|
||||
# tags:
|
||||
# env: prod
|
||||
# collector: wavefront-collector
|
||||
|
||||
## Wavefront Collector resource requests and limits
|
||||
## Make sure to keep requests and limits equal to keep the pods in the Guaranteed QoS class
|
||||
## Ref: http://kubernetes.io/docs/user-guide/compute-resources/
|
||||
resources:
|
||||
requests:
|
||||
cpu: 200m
|
||||
memory: 256Mi
|
||||
limits:
|
||||
cpu: 200m
|
||||
memory: 256Mi
|
||||
|
||||
|
||||
## Wavefront Proxy is a metrics forwarder that is used to relay metrics to the Wavefront SaaS service.
|
||||
## It can receive metrics from the Wavefront Collector as well as other metrics collection services
|
||||
## within your cluster. The proxy also supports preprocessor rules to allow you to further filter
|
||||
## and enhance your metric names, and tags. Should network connectivity fall between the proxy and
|
||||
## Wavefront SaaS service, the proxy will buffer metrics, which will be flushed when connectivity resumes.
|
||||
## Ref: https://docs.wavefront.com/proxies.html
|
||||
proxy:
|
||||
enabled: true
|
||||
image:
|
||||
repository: wavefronthq/proxy
|
||||
tag: 4.35
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
## The port number the proxy will listen on for metrics in Wavefront data format.
|
||||
## This is usually 2878
|
||||
port: 2878
|
||||
|
||||
## The port nubmer the proxy will listen on for tracing spans in Wavefront trace data format.
|
||||
## This is usually 30000
|
||||
# tracePort: 30000
|
||||
|
||||
## The port nubmer the proxy will listen on for tracing spans in Jaeger data format.
|
||||
## This is usually 30001
|
||||
# jaegerPort: 30001
|
||||
|
||||
## The port nubmer the proxy will listen on for tracing spans in Zipkin data format.
|
||||
## This is usually 9411
|
||||
# zipkinPort: 9411
|
||||
|
||||
## Sampling rate to apply to tracing spans sent to the proxy.
|
||||
## This rate is applied to all data formats the proxy is listening on.
|
||||
## Value should be between 0.0 and 1.0. Default is 1.0
|
||||
# traceSamplingRate: 0.25
|
||||
|
||||
## When this is set to a value greater than 0,
|
||||
## spans that are greater than or equal to this value will be sampled.
|
||||
# traceSamplingDuration: 500
|
||||
|
||||
## Any configuration property can be passed to the proxy via command line args in
|
||||
## in the format: `--<property_name> <value>`. Multiple properties can be specified
|
||||
## separated by whitespace.
|
||||
## Ref: https://docs.wavefront.com/proxies_configuring.html
|
||||
# args:
|
||||
|
||||
## Proxy is a Java application. By default Java will consume upto 4G of heap memory.
|
||||
## This can be used to override the default. Uses the `-Xmx` command line option for java
|
||||
# heap: 1024m
|
||||
|
||||
## Preprocessor rules is a powerful way to apply filtering or to enhance metrics as they flow
|
||||
## through the proxy. You can configure the rules here. By default a rule to drop Kubernetes
|
||||
## generated labels is applied to remove unecessary and often noisy tags.
|
||||
## Ref: https://docs.wavefront.com/proxies_preprocessor_rules.html
|
||||
preprocessor:
|
||||
rules.yaml: |
|
||||
'2878':
|
||||
- rule : drop-generated-label-tags
|
||||
action : dropTag
|
||||
tag : label\.(controller-revision-hash|pod-template-.*|.*kubernetes\.io.*)
|
||||
# - rule : add-cluster-tag
|
||||
# action : addTag
|
||||
# tag : cluster
|
||||
# value : {{ .Values.clusterName | quote }}
|
||||
|
||||
|
||||
## Specifies whether RBAC resources should be created
|
||||
rbac:
|
||||
create: true
|
||||
|
||||
|
||||
## Specifies whether a ServiceAccount should be created
|
||||
serviceAccount:
|
||||
create: true
|
||||
|
||||
## The name of the ServiceAccount to use.
|
||||
## If not set and create is true, a name is generated using the fullname template
|
||||
name:
|
||||
|
||||
|
||||
## kube-state-metrics are used to get metrics about the state of the Kubernetes scheduler
|
||||
## If enabled the kube-state-metrics chart will be installed as a subchart and the collector
|
||||
## will be configured to capture metrics.
|
||||
kubeStateMetrics:
|
||||
enabled: true
|
||||
|
||||
|
||||
## Openshift integration can be enabled here
|
||||
## If enabled is true, you must specify `collector.kubernetesSource` to be a valid
|
||||
## summary api endpoint within your Openshift environment.
|
||||
openshift:
|
||||
enabled: false
|
||||
|
||||
## Wavefront proxy requires a persistent volume claim for its metrics buffers in Openshift
|
||||
## If `proxy.enabled` is true, this must be set to the name of a persistent volume claim
|
||||
## that the proxy can use for its buffers.
|
||||
# pvcName: wavefront-storage
|
||||
Reference in New Issue
Block a user