mirror of
https://github.com/bitnami/charts.git
synced 2026-08-10 14:15:55 +08:00
[bitnami/wavefront-adapter-for-istio] Add chart (#5868)
* [bitnami/wavefront-adapter-for-istio] Add chart * fix incorrect kind * Fix issues * Make istio objects optional * Update bitnami/wavefront-adapter-for-istio/README.md Co-authored-by: Alejandro Moreno <amorenoc@vmware.com> * Bump wavefront dep * [bitnami/wavefront-adapter-for-istio] Update components versions Signed-off-by: Bitnami Containers <containers@bitnami.com> Co-authored-by: Alejandro Moreno <amorenoc@vmware.com> Co-authored-by: Bitnami Containers <containers@bitnami.com>
This commit is contained in:
co-authored by
Alejandro Moreno
Bitnami Containers
parent
fe13a2a076
commit
1e1f5e3893
@@ -0,0 +1,9 @@
|
||||
dependencies:
|
||||
- name: wavefront
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 2.0.1
|
||||
- name: common
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 1.4.2
|
||||
digest: sha256:c3646beb3cc1cf1f77ac0f469b265f48cfb1c12b8d80dab8b69d9ec070cf40ec
|
||||
generated: "2021-03-25T15:33:52.335524027Z"
|
||||
@@ -0,0 +1,33 @@
|
||||
annotations:
|
||||
category: Infrastructure
|
||||
apiVersion: v2
|
||||
appVersion: 0.1.5
|
||||
dependencies:
|
||||
- condition: wavefront.enabled
|
||||
name: wavefront
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 2.x.x
|
||||
- name: common
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
tags:
|
||||
- bitnami-common
|
||||
version: 1.x.x
|
||||
description: Wavefront Adapter for Istio is a lightweight Istio adapter that exposes Istio metrics to Wavefront. It supports Istio v1.4+ and Kubernetes v1.15+.
|
||||
engine: gotpl
|
||||
home: https://github.com/vmware/wavefront-adapter-for-istio/
|
||||
icon: https://bitnami.com/assets/stacks/wavefront-adapter-for-istio/img/wavefront-adapter-for-istio-stack-220x234.png
|
||||
keywords:
|
||||
- alerting
|
||||
- adapter
|
||||
- istio
|
||||
- metrics
|
||||
- monitoring
|
||||
- observability
|
||||
- wavefront
|
||||
maintainers:
|
||||
- email: containers@bitnami.com
|
||||
name: Bitnami
|
||||
name: wavefront-adapter-for-istio
|
||||
sources:
|
||||
- https://github.com/bitnami/bitnami-docker-wavefront-adapter-for-istio
|
||||
version: 0.1.0
|
||||
@@ -0,0 +1,239 @@
|
||||
# Wavefront Adapter for Istio
|
||||
|
||||
[Wavefront Adapter for Istio](https://github.com/vmware/wavefront-adapter-for-istio/) is a lightweight Istio adapter that exposes Istio metrics to Wavefront.
|
||||
|
||||
## TL;DR
|
||||
|
||||
```console
|
||||
$ helm repo add bitnami https://charts.bitnami.com/bitnami
|
||||
$ helm install my-release bitnami/wavefront-adapter-for-istio
|
||||
```
|
||||
|
||||
## Introduction
|
||||
Bitnami charts for Helm are carefully engineered, actively maintained and are the quickest and easiest way to deploy containers on a Kubernetes cluster that are ready to handle production workloads.
|
||||
|
||||
This will deploy a [Wavefront Adapter for Istio](https://github.com/vmware/wavefront-adapter-for-istio/) Deployment in a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
|
||||
|
||||
Bitnami charts can be used with [Kubeapps](https://kubeapps.com/) for deployment and management of Helm Charts in clusters. This Helm chart has been tested on top of [Bitnami Kubernetes Production Runtime](https://kubeprod.io/) (BKPR). Deploy BKPR to get automated TLS certificates, logging and monitoring for your applications.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Kubernetes 1.15+
|
||||
- Helm 3.1.0
|
||||
- Istio v1.4, v1.5 and v1.6 with `Mixer` support
|
||||
|
||||
In order to enable the `Mixer` in Istio versions starting from v1.5, execute the following commands:
|
||||
|
||||
##### Istio v1.5.x
|
||||
```console
|
||||
istioctl manifest apply --set values.prometheus.enabled=true --set values.telemetry.v1.enabled=true --set values.telemetry.v2.enabled=false --set components.citadel.enabled=true --set components.telemetry.enabled=true
|
||||
```
|
||||
|
||||
##### Istio v1.6.x
|
||||
```console
|
||||
istioctl install --set values.prometheus.enabled=true --set values.telemetry.v1.enabled=true --set values.telemetry.v2.enabled=false --set components.citadel.enabled=true --set components.telemetry.enabled=true
|
||||
```
|
||||
|
||||
## Installing the Chart
|
||||
|
||||
To install the chart with the release name `my-release`:
|
||||
|
||||
```console
|
||||
$ helm repo add bitnami https://charts.bitnami.com/bitnami
|
||||
$ helm install my-release bitnami/wavefront-adapter-for-istio
|
||||
```
|
||||
|
||||
These commands deploy wavefront-adapter-for-istio on the Kubernetes cluster in the default configuration. The [Parameters](#parameters) section lists the parameters that can be configured during installation.
|
||||
|
||||
> **Tip**: List all releases using `helm list`
|
||||
|
||||
## Uninstalling the Chart
|
||||
|
||||
To uninstall/delete the `my-release` helm release:
|
||||
|
||||
```console
|
||||
$ helm uninstall my-release
|
||||
```
|
||||
|
||||
The command removes all the Kubernetes components associated with the chart and deletes the release.
|
||||
|
||||
## Parameters
|
||||
|
||||
### Global parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
|---------------------------|----------------------------------------------------|-----------------|
|
||||
| `global.imageRegistry` | Global Docker image registry | `nil` |
|
||||
| `global.imagePullSecrets` | Global Docker registry secret names as an array | `[]` |
|
||||
| `kubeVersion` | Override Kubernetes version | `nil` |
|
||||
| `nameOverride` | String to partially override common.names.fullname | `nil` |
|
||||
| `fullnameOverride` | String to fully override common.names.fullname | `nil` |
|
||||
| `commonLabels` | Labels to add to all deployed objects | `{}` |
|
||||
| `commonAnnotations` | Annotations to add to all deployed objects | `{}` |
|
||||
| `clusterDomain` | Kubernetes cluster domain name | `cluster.local` |
|
||||
| `extraDeploy` | Array of extra objects to deploy with the release | `[]` |
|
||||
|
||||
### Wavefront Adapter for Istio deployment parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
|-----------------------------------------|-------------------------------------------------------------------------------------------|---------------------------------------|
|
||||
| `image.registry` | Adapter image registry | `docker.io` |
|
||||
| `image.repository` | Adapter image repository | `bitnami/wavefront-adapter-for-istio` |
|
||||
| `image.tag` | Adapter image tag (immutabe tags are recommended) | `1.0.3-debian-10-r0` |
|
||||
| `image.pullPolicy` | Adapter image pull policy | `IfNotPresent` |
|
||||
| `image.pullSecrets` | Adapter image pull secrets | `[]` |
|
||||
| `image.debug` | Enable image debug mode | `false` |
|
||||
| `livenessProbe.enabled` | Enable livenessProbe | `true` |
|
||||
| `livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `10` |
|
||||
| `livenessProbe.periodSeconds` | Period seconds for livenessProbe | `10` |
|
||||
| `livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `1` |
|
||||
| `livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `3` |
|
||||
| `livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` |
|
||||
| `readinessProbe.enabled` | Enable readinessProbe | `true` |
|
||||
| `readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `10` |
|
||||
| `readinessProbe.periodSeconds` | Period seconds for readinessProbe | `10` |
|
||||
| `readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `1` |
|
||||
| `readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `3` |
|
||||
| `readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` |
|
||||
| `command` | Override default container command (useful when using custom images) | `[]` |
|
||||
| `args` | Override default container args (useful when using custom images) | `[]` |
|
||||
| `hostAliases` | Add deployment host aliases | `[]` |
|
||||
| `resources.limits` | The resources limits for the Adapter container | `{}` |
|
||||
| `resources.requests` | The requested resourcesc for the Adapter container | `{}` |
|
||||
| `containerSecurityContext.enabled` | Enabled Adapter containers' Security Context | `true` |
|
||||
| `containerSecurityContext.runAsUser` | Set Adapter container's Security Context runAsUser | `1001` |
|
||||
| `containerSecurityContext.runAsNonRoot` | Set Adapter container's Security Context runAsNonRoot | `true` |
|
||||
| `podSecurityContext.enabled` | Enabled Adapter pods' Security Context | `true` |
|
||||
| `podSecurityContext.fsGroup` | Set Adapter pod's Security Context fsGroup | `1001` |
|
||||
| `podAffinityPreset` | Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
|
||||
| `podAntiAffinityPreset` | Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `soft` |
|
||||
| `nodeAffinityPreset.type` | Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
|
||||
| `nodeAffinityPreset.key` | Node label key to match. Ignored if `affinity` is set | `""` |
|
||||
| `nodeAffinityPreset.values` | Node label values to match. Ignored if `affinity` is set | `[]` |
|
||||
| `affinity` | Affinity for pod assignment | `{}` |
|
||||
| `nodeSelector` | Node labels for pod assignment | `{}` |
|
||||
| `tolerations` | Tolerations for pod assignment | `[]` |
|
||||
| `podLabels` | Extra labels for Adapter pods | `{}` |
|
||||
| `priorityClassName` | Adapter pod priority | `""` |
|
||||
| `lifecycleHooks` | Add lifecycle hooks to the Adapter deployment | `{}` |
|
||||
| `customLivenessProbe` | Override default liveness probe | `{}` |
|
||||
| `customReadinessProbe` | Override default readiness probe | `{}` |
|
||||
| `updateStrategy.type` | Adapter deployment update strategy | `RollingUpdate` |
|
||||
| `containerPort` | Adapter container port | `8000` |
|
||||
| `extraEnvVars` | Add extra environment variables to the Adapter container | `[]` |
|
||||
| `extraEnvVarsCM` | Name of existing ConfigMap containing extra env vars | `nil` |
|
||||
| `extraEnvVarsSecret` | Name of existing Secret containing extra env vars | `nil` |
|
||||
| `extraVolumes` | Optionally specify extra list of additional volumes for Adapter pods | `[]` |
|
||||
| `extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for Adapter container(s) | `[]` |
|
||||
| `initContainers` | Add additional init containers to the Adapter pods | `{}` |
|
||||
| `sidecars` | Add additional sidecar containers to the Adapter pod | `{}` |
|
||||
| `externalProxy.host` | Host of a wavefront-proxy instance (required if wavefront.enabled = false) | `nil` |
|
||||
| `externalProxy.port` | Host of a wavefront-proxy instance (required if wavefront.enabled = false) | `2878` |
|
||||
| `adapterLogLevel` | Adapter log level | `info` |
|
||||
| `istio.namespace` | Namespace to deploy the Istio objects | `istio-system` |
|
||||
| `istio.apiVersion` | Override Istio API version | `nil` |
|
||||
| `metrics.flushInterval` | Interval to flush the metrics | `5s` |
|
||||
| `metrics.source` | Source tag for all metrics handled by the adapter | `istio` |
|
||||
| `metrics.prefix` | Prefix to prepend to all metrics handled by the adapter | `istio` |
|
||||
| `metrics.http` | Enable the collection of http metrics | `true` |
|
||||
| `metrics.tcp` | Enable the collection of tcp metrics | `true` |
|
||||
|
||||
### Traffic Exposure Parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
|------------------------------------|----------------------------------------------|-------------|
|
||||
| `service.type` | Adapter service type | `ClusterIP` |
|
||||
| `service.port` | Adapter service port | `8000` |
|
||||
| `service.loadBalancerIP` | Adapter service LoadBalancer IP | `nil` |
|
||||
| `service.loadBalancerSourceRanges` | loadBalancerIP source ranges for the Service | `nil` |
|
||||
| `service.nodePorts.http` | NodePort for the HTTP endpoint | `""` |
|
||||
| `service.externalTrafficPolicy` | External traffic policy for the service | `Cluster` |
|
||||
|
||||
### Wavefront sub-chart parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
|-----------------------------------|-------------------------------------------------------------------------------------------|--------------------------------------|
|
||||
| `wavefront.enabled` | Deploy Wavefront chart (necessary if externalProxyHost is not set) | `true` |
|
||||
| `wavefront.wavefront.url` | Wavefront SAAS service URL | `https://YOUR_CLUSTER.wavefront.com` |
|
||||
| `wavefront.wavefront.token` | Wavefront SAAS token | `YOUR_API_TOKEN` |
|
||||
| `wavefront.collector.enabled` | Deploy Wavefront collector (not used by the Adapter pod) | `false` |
|
||||
| `wavefront.rbac.create` | Create RBAC rules (not necessary as the Adapter only uses wavefront-proxy) | `false` |
|
||||
| `wavefront.proxy.enabled` | Deploy Wavefront Proxy (required if externalProxyHost is not set) | `true` |
|
||||
| `wavefront.proxy.port` | Deployed Wavefront Proxy port (required if externalProxyHost is not set) | `2878` |
|
||||
| `wavefront.serviceAccount.create` | Create Wavefront serivce account (not necessary as the Adapter only uses wavefront-proxy) | `false` |
|
||||
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
|
||||
|
||||
```console
|
||||
$ helm install my-release \
|
||||
--set livenessProbe.successThreshold=5 \
|
||||
bitnami/wavefront-adapter-for-istio
|
||||
```
|
||||
|
||||
The above command sets the `livenessProbe.successThreshold` to `5`.
|
||||
|
||||
Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,
|
||||
|
||||
```bash
|
||||
$ helm install my-release -f values.yaml bitnami/wavefront-adapter-for-istio
|
||||
```
|
||||
|
||||
## Configuration and installation details
|
||||
|
||||
### [Rolling VS Immutable tags](https://docs.bitnami.com/containers/how-to/understand-rolling-tags-containers/)
|
||||
|
||||
It is strongly recommended to use immutable tags in a production environment. This ensures your deployment does not change automatically if the same tag is updated with a different image.
|
||||
|
||||
Bitnami will release a new chart updating its containers if a new version of the main container, significant changes, or critical vulnerabilities exist.
|
||||
|
||||
### Connecting to Wavefront
|
||||
|
||||
The Wavefront Adapter for Istio chart needs to be connected to a Wavefront instance. This can be done in three different ways:
|
||||
|
||||
- Deploying the Wavefront subchart, using only the Wavefront Proxy component (default behavior). This is done by setting `wavefront.enabled=true` and `wavefront.proxy.enabled=true`. We recommend disabling the rest of the Wavefront sub-chart resources as they would not be used by the Prometheus Storage Adapter. In this case, you should not set the `externalProxy.host` value. You also need to configure the Wavefront SaaS URL and token using the `wavefont.wavefront.url` and `wavefront.wavefront.token`.
|
||||
|
||||
```yaml
|
||||
externalProxy:
|
||||
host:
|
||||
port:
|
||||
|
||||
wavefront:
|
||||
enabled: true
|
||||
collector:
|
||||
enabled: false
|
||||
rbac:
|
||||
create: false
|
||||
serviceAccount:
|
||||
create: false
|
||||
proxy:
|
||||
enabled: true
|
||||
wavefront:
|
||||
url: http://WAVEFRONT_URL
|
||||
token: WAVEFRONT_TOKEN
|
||||
```
|
||||
|
||||
- Using an external Wavefront Proxy instance. This is done by setting the `externalProxy.host` and `externalProxy.port` values. In this case, you should not set the `wavefront.enabled` value to `true`. You also need to configure the Wavefront SaaS URL and token using the `wavefont.wavefront.url` and `wavefront.wavefront.token`.
|
||||
|
||||
```yaml
|
||||
externalProxy:
|
||||
host:
|
||||
port:
|
||||
|
||||
wavefront:
|
||||
enabled: false
|
||||
wavefront:
|
||||
url: http://WAVEFRONT_URL
|
||||
token: WAVEFRONT_TOKEN
|
||||
```
|
||||
|
||||
- Use direct ingestion without a Wavefront Proxy instance. This is done by not setting the `externalProxy` values and setting the `wavefront.enabled` value to false.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
Find more information about how to deal with common errors related to Bitnami’s Helm charts in [this troubleshooting guide](https://docs.bitnami.com/general/how-to/troubleshoot-helm-chart-issues).
|
||||
|
||||
## Upgrading
|
||||
|
||||
```bash
|
||||
$ helm upgrade my-release bitnami/wavefront-adapter-for-istio
|
||||
```
|
||||
@@ -0,0 +1,6 @@
|
||||
wavefront:
|
||||
enabled: false
|
||||
|
||||
externalProxy:
|
||||
host: test-proxy
|
||||
port: 1234
|
||||
@@ -0,0 +1,20 @@
|
||||
** Please be patient while the chart is being deployed **
|
||||
|
||||
1. Get the application URL by running these commands:
|
||||
|
||||
{{- if contains "NodePort" .Values.service.type }}
|
||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "common.names.fullname" . }})
|
||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
echo http://$NODE_IP:$NODE_PORT
|
||||
{{- else if contains "LoadBalancer" .Values.service.type }}
|
||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ template "common.names.fullname" . }}
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "common.names.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
|
||||
echo http://$SERVICE_IP:{{ .Values.service.port }}
|
||||
{{- else if contains "ClusterIP" .Values.service.type }}
|
||||
echo "The renconciler is available at http://127.0.0.1:{{ .Values.service.port }}"
|
||||
kubectl port-forward svc/{{ template "common.names.fullname" . }} {{ .Values.service.port }}:{{ .Values.service.port }} &
|
||||
{{- end }}
|
||||
|
||||
{{- include "common.warnings.rollingTag" .Values.image }}
|
||||
{{- include "wfafi.validateValues" . }}
|
||||
@@ -0,0 +1,87 @@
|
||||
{{/*
|
||||
Return the proper wavefront-adapter-for-istio image name
|
||||
*/}}
|
||||
{{- define "wfafi.image" -}}
|
||||
{{ include "common.images.image" (dict "imageRoot" .Values.image "global" .Values.global) }}
|
||||
{{- 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 "wfafi.proxy.fullname" -}}
|
||||
{{- printf "%s-%s" .Release.Name "wavefront-proxy" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return the proper Docker Image Registry Secret Names
|
||||
*/}}
|
||||
{{- define "wfafi.imagePullSecrets" -}}
|
||||
{{- include "common.images.pullSecrets" (dict "images" (list .Values.image) "global" .Values.global) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return the proper Docker Image Registry Secret Names
|
||||
*/}}
|
||||
{{- define "wfafi.istio.apiVersion" -}}
|
||||
{{- if .Values.istio.apiVersion -}}
|
||||
{{- .Values.istio.apiVersion -}}
|
||||
{{- else -}}
|
||||
{{ print "config.istio.io/v1alpha2" }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Compile all warnings into a single message.
|
||||
*/}}
|
||||
{{- define "wfafi.validateValues" -}}
|
||||
{{- $messages := list -}}
|
||||
{{- $messages := append $messages (include "wfafi.validateValues.proxy" .) -}}
|
||||
{{- $messages := without $messages "" -}}
|
||||
{{- $message := join "\n" $messages -}}
|
||||
|
||||
{{- if $message -}}
|
||||
{{- printf "\nVALUES VALIDATION:\n%s" $message -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Validate values of Wavefront Adapter for Istio - Wavefront Proxy configuration */}}
|
||||
{{- define "wfafi.validateValues.proxy" -}}
|
||||
{{- if and (.Values.wavefront.enabled) (not .Values.wavefront.proxy.enabled) -}}
|
||||
wavefront-adapter-for-istio: SubchartProxyNotDeployed
|
||||
The Wavefront subchart is being deployed without the mandatory Wavefront Proxy instance. Set wavefront.proxy.enabled=true. We recommend the following values:
|
||||
|
||||
wavefront:
|
||||
enabled: true
|
||||
collector:
|
||||
enabled: false
|
||||
rbac:
|
||||
create: false
|
||||
serviceAccount:
|
||||
create: false
|
||||
proxy:
|
||||
enabled: true
|
||||
{{- end }}
|
||||
|
||||
{{- if and .Values.wavefront.enabled .Values.externalProxy.host -}}
|
||||
wavefront-adapter-for-istio: ConflictingProxies
|
||||
The Wavefront subchart is being deployed and an external Wavefront Proxy is set. Select ONLY one of the following options:
|
||||
|
||||
1) Deploy the Wavefront subchart with the Wavefront Proxy. Recommended values:
|
||||
|
||||
wavefront:
|
||||
enabled: true
|
||||
collector:
|
||||
enabled: false
|
||||
rbac:
|
||||
create: false
|
||||
serviceAccount:
|
||||
create: false
|
||||
proxy:
|
||||
enabled: true
|
||||
|
||||
2) Use an existing Wavefront Proxy instance. Set the externalProxy.host and externalProxy.port values
|
||||
|
||||
3) Do not use Wavefront Proxy and connect directly to Wavefront by setting wavefront.enabled=false and not setting the externalProxy.host value
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,149 @@
|
||||
apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }}
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
app.kubernetes.io/component: wavefront-adapter-for-istio
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
name: {{ template "common.names.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if .Values.updateStrategy }}
|
||||
strategy: {{- toYaml .Values.updateStrategy | nindent 4 }}
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }}
|
||||
app.kubernetes.io/component: wavefront-adapter-for-istio
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
{{- if .Values.podAnnotations }}
|
||||
{{- include "common.tplvalues.render" (dict "value" .Values.podAnnotations "context" $) | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 8 }}
|
||||
{{- end }}
|
||||
labels: {{- include "common.labels.standard" . | nindent 8 }}
|
||||
app.kubernetes.io/component: wavefront-adapter-for-istio
|
||||
{{- if .Values.podLabels }}
|
||||
{{- include "common.tplvalues.render" (dict "value" .Values.podLabels "context" $) | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- include "wfafi.imagePullSecrets" . | nindent 6 }}
|
||||
{{- if .Values.hostAliases }}
|
||||
hostAliases: {{- include "common.tplvalues.render" (dict "value" .Values.hostAliases "context" $) | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.affinity }}
|
||||
affinity: {{- include "common.tplvalues.render" ( dict "value" .Values.affinity "context" $) | nindent 8 }}
|
||||
{{- else }}
|
||||
affinity:
|
||||
podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.podAffinityPreset "component" "wavefront-adapter-for-istio" "context" $) | nindent 10 }}
|
||||
podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.podAntiAffinityPreset "component" "wavefront-adapter-for-istio" "context" $) | nindent 10 }}
|
||||
nodeAffinity: {{- include "common.affinities.nodes" (dict "type" .Values.nodeAffinityPreset.type "key" .Values.nodeAffinityPreset.key "values" .Values.nodeAffinityPreset.values) | nindent 10 }}
|
||||
{{- end }}
|
||||
{{- if .Values.nodeSelector }}
|
||||
nodeSelector: {{- include "common.tplvalues.render" ( dict "value" .Values.nodeSelector "context" $) | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.tolerations }}
|
||||
tolerations: {{- include "common.tplvalues.render" (dict "value" .Values.tolerations "context" .) | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.priorityClassName }}
|
||||
priorityClassName: {{ .Values.priorityClassName | quote }}
|
||||
{{- end }}
|
||||
{{- if .Values.podSecurityContext.enabled }}
|
||||
securityContext: {{- omit .Values.podSecurityContext "enabled" | toYaml | nindent 8 }}
|
||||
{{- end }}
|
||||
initContainers:
|
||||
{{- if .Values.initContainers }}
|
||||
{{- include "common.tplvalues.render" (dict "value" .Values.initContainers "context" $) | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: wavefront-adapter-for-istio
|
||||
image: {{ template "wfafi.image" . }}
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
{{- if .Values.lifecycleHooks }}
|
||||
lifecycle: {{- include "common.tplvalues.render" (dict "value" .Values.lifecycleHooks "context" $) | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.containerSecurityContext.enabled }}
|
||||
securityContext: {{- omit .Values.containerSecurityContext "enabled" | toYaml | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.command }}
|
||||
command: {{- include "common.tplvalues.render" (dict "value" .Values.command "context" $) | nindent 12 }}
|
||||
{{- else }}
|
||||
command:
|
||||
- wavefront
|
||||
{{- end }}
|
||||
{{- if .Values.args }}
|
||||
args: {{- include "common.tplvalues.render" (dict "value" .Values.args "context" $) | nindent 12 }}
|
||||
{{- else }}
|
||||
args:
|
||||
- {{ .Values.containerPort | quote }}
|
||||
{{- end }}
|
||||
env:
|
||||
{{- if .Values.extraEnvVars }}
|
||||
{{- include "common.tplvalues.render" (dict "value" .Values.extraEnvVars "context" $) | nindent 12 }}
|
||||
{{- end }}
|
||||
envFrom:
|
||||
{{- if .Values.extraEnvVarsCM }}
|
||||
- configMapRef:
|
||||
name: {{ include "common.tplvalues.render" (dict "value" .Values.extraEnvVarsCM "context" $) }}
|
||||
{{- end }}
|
||||
{{- if .Values.extraEnvVarsSecret }}
|
||||
- secretRef:
|
||||
name: {{ include "common.tplvalues.render" (dict "value" .Values.extraEnvVarsSecret "context" $) }}
|
||||
{{- end }}
|
||||
{{- if .Values.resources }}
|
||||
resources: {{- toYaml .Values.resources | nindent 12 }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- containerPort: {{ .Values.containerPort }}
|
||||
name: grpc
|
||||
{{- if .Values.livenessProbe.enabled }}
|
||||
livenessProbe:
|
||||
exec:
|
||||
# As it is a grpc port, we cannot httpGet. tcpSocket cannot be used either
|
||||
# because it adds noise in the logs
|
||||
command:
|
||||
- bash
|
||||
- -ec
|
||||
- |
|
||||
ps auxf | grep wavefront
|
||||
initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
|
||||
timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
|
||||
successThreshold: {{ .Values.livenessProbe.successThreshold }}
|
||||
failureThreshold: {{ .Values.livenessProbe.failureThreshold }}
|
||||
{{- else if .Values.customLivenessProbe }}
|
||||
livenessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customLivenessProbe "context" $) | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.readinessProbe.enabled }}
|
||||
readinessProbe:
|
||||
exec:
|
||||
# As it is a grpc port, we cannot httpGet. tcpSocket cannot be used either
|
||||
# because it adds noise in the logs
|
||||
command:
|
||||
- bash
|
||||
- -ec
|
||||
- |
|
||||
ps auxf | grep wavefront
|
||||
initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
|
||||
timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
|
||||
successThreshold: {{ .Values.readinessProbe.successThreshold }}
|
||||
failureThreshold: {{ .Values.readinessProbe.failureThreshold }}
|
||||
{{- else if .Values.customReadinessProbe }}
|
||||
readinessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customReadinessProbe "context" $) | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.extraVolumeMounts }}
|
||||
volumeMounts: {{- include "common.tplvalues.render" (dict "value" .Values.extraVolumeMounts "context" $) | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.sidecars }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.sidecars "context" $) | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.extraVolumes }}
|
||||
volumes: {{- include "common.tplvalues.render" (dict "value" .Values.extraVolumes "context" $) | nindent 8 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,4 @@
|
||||
{{- range .Values.extraDeploy }}
|
||||
---
|
||||
{{ include "common.tplvalues.render" (dict "value" . "context" $) }}
|
||||
{{- end }}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,187 @@
|
||||
{{- if .Values.istio.create }}
|
||||
apiVersion: {{ include "wfafi.istio.apiVersion" . }}
|
||||
kind: attributemanifest
|
||||
metadata:
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
app.kubernetes.io/component: wavefront-adapter-for-istio
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
# We cannot set a different name: https://istio.io/latest/zh/docs/reference/config/policy-and-telemetry/istio.policy.v1beta1/
|
||||
name: istio-proxy
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
attributes:
|
||||
origin.ip:
|
||||
valueType: IP_ADDRESS
|
||||
origin.uid:
|
||||
valueType: STRING
|
||||
origin.user:
|
||||
valueType: STRING
|
||||
request.headers:
|
||||
valueType: STRING_MAP
|
||||
request.total_size:
|
||||
valueType: INT64
|
||||
request.id:
|
||||
valueType: STRING
|
||||
request.host:
|
||||
valueType: STRING
|
||||
request.method:
|
||||
valueType: STRING
|
||||
request.path:
|
||||
valueType: STRING
|
||||
request.reason:
|
||||
valueType: STRING
|
||||
request.referer:
|
||||
valueType: STRING
|
||||
request.scheme:
|
||||
valueType: STRING
|
||||
request.size:
|
||||
valueType: INT64
|
||||
request.time:
|
||||
valueType: TIMESTAMP
|
||||
request.useragent:
|
||||
valueType: STRING
|
||||
response.code:
|
||||
valueType: INT64
|
||||
response.duration:
|
||||
valueType: DURATION
|
||||
response.headers:
|
||||
valueType: STRING_MAP
|
||||
response.total_size:
|
||||
valueType: INT64
|
||||
response.size:
|
||||
valueType: INT64
|
||||
response.time:
|
||||
valueType: TIMESTAMP
|
||||
source.uid:
|
||||
valueType: STRING
|
||||
source.user: # DEPRECATED
|
||||
valueType: STRING
|
||||
source.principal:
|
||||
valueType: STRING
|
||||
destination.principal:
|
||||
valueType: STRING
|
||||
destination.uid:
|
||||
valueType: STRING
|
||||
connection.event:
|
||||
valueType: STRING
|
||||
connection.id:
|
||||
valueType: STRING
|
||||
connection.received.bytes:
|
||||
valueType: INT64
|
||||
connection.received.bytes_total:
|
||||
valueType: INT64
|
||||
connection.sent.bytes:
|
||||
valueType: INT64
|
||||
connection.sent.bytes_total:
|
||||
valueType: INT64
|
||||
connection.duration:
|
||||
valueType: DURATION
|
||||
connection.mtls:
|
||||
valueType: BOOL
|
||||
connection.requested_server_name:
|
||||
valueType: STRING
|
||||
context.protocol:
|
||||
valueType: STRING
|
||||
context.timestamp:
|
||||
valueType: TIMESTAMP
|
||||
context.time:
|
||||
valueType: TIMESTAMP
|
||||
context.reporter.kind:
|
||||
valueType: STRING
|
||||
context.reporter.uid:
|
||||
valueType: STRING
|
||||
api.service:
|
||||
valueType: STRING
|
||||
api.version:
|
||||
valueType: STRING
|
||||
api.operation:
|
||||
valueType: STRING
|
||||
api.protocol:
|
||||
valueType: STRING
|
||||
request.auth.principal:
|
||||
valueType: STRING
|
||||
request.auth.audiences:
|
||||
valueType: STRING
|
||||
request.auth.claims:
|
||||
valueType: STRING_MAP
|
||||
request.auth.raw_claims:
|
||||
valueType: STRING
|
||||
request.auth.presenter:
|
||||
valueType: STRING
|
||||
request.api_key:
|
||||
valueType: STRING
|
||||
---
|
||||
apiVersion: {{ include "wfafi.istio.apiVersion" . }}
|
||||
kind: attributemanifest
|
||||
metadata:
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
app.kubernetes.io/component: wavefront-adapter-for-istio
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
# We cannot set a different name: https://istio.io/latest/zh/docs/reference/config/policy-and-telemetry/istio.policy.v1beta1/
|
||||
name: kubernetes
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
attributes:
|
||||
source.ip:
|
||||
valueType: IP_ADDRESS
|
||||
source.labels:
|
||||
valueType: STRING_MAP
|
||||
source.name:
|
||||
valueType: STRING
|
||||
source.namespace:
|
||||
valueType: STRING
|
||||
source.owner:
|
||||
valueType: STRING
|
||||
source.service: # DEPRECATED
|
||||
valueType: STRING
|
||||
source.serviceAccount:
|
||||
valueType: STRING
|
||||
source.services:
|
||||
valueType: STRING
|
||||
source.workload.uid:
|
||||
valueType: STRING
|
||||
source.workload.name:
|
||||
valueType: STRING
|
||||
source.workload.namespace:
|
||||
valueType: STRING
|
||||
destination.ip:
|
||||
valueType: IP_ADDRESS
|
||||
destination.labels:
|
||||
valueType: STRING_MAP
|
||||
destination.metadata:
|
||||
valueType: STRING_MAP
|
||||
destination.name:
|
||||
valueType: STRING
|
||||
destination.namespace:
|
||||
valueType: STRING
|
||||
destination.owner:
|
||||
valueType: STRING
|
||||
destination.service: # DEPRECATED
|
||||
valueType: STRING
|
||||
destination.service.uid:
|
||||
valueType: STRING
|
||||
destination.service.name:
|
||||
valueType: STRING
|
||||
destination.service.namespace:
|
||||
valueType: STRING
|
||||
destination.service.host:
|
||||
valueType: STRING
|
||||
destination.serviceAccount:
|
||||
valueType: STRING
|
||||
destination.workload.uid:
|
||||
valueType: STRING
|
||||
destination.workload.name:
|
||||
valueType: STRING
|
||||
destination.workload.namespace:
|
||||
valueType: STRING
|
||||
{{- end }}
|
||||
@@ -0,0 +1,93 @@
|
||||
{{- if .Values.istio.create }}
|
||||
apiVersion: {{ include "wfafi.istio.apiVersion" . }}
|
||||
kind: handler
|
||||
metadata:
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
app.kubernetes.io/component: wavefront-adapter-for-istio
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
name: {{ include "common.names.fullname" . }}-wavefront-handler
|
||||
namespace: {{ .Values.istio.namespace }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
adapter: {{ include "common.names.fullname" . }}-wavefront
|
||||
connection:
|
||||
address: {{ printf "%s.%s.svc.%s:%d" (include "common.names.fullname" .) .Release.Namespace .Values.clusterDomain (int .Values.service.port) }}
|
||||
params:
|
||||
{{- if .Values.wavefront.proxy.enabled }}
|
||||
proxy:
|
||||
address: {{ printf "%s.%s.svc.%s:%d" (include "wfafi.proxy.fullname" .) .Release.Namespace .Values.clusterDomain (int .Values.wavefront.proxy.port) }}
|
||||
{{- else if .Values.externalProxy.host }}
|
||||
proxy:
|
||||
address: {{ printf "%s:%s" .Values.externalProxy.host (int .Values.externalProxy.port) }}
|
||||
{{- else }}
|
||||
direct:
|
||||
server: {{ .Values.wavefront.wavefront.url }}
|
||||
token: {{ .Values.wavefront.wavefront.token }}
|
||||
{{- end }}
|
||||
flushInterval: {{ .Values.metrics.flushInterval }}
|
||||
source: {{ .Values.metrics.source }}
|
||||
prefix: {{ .Values.metrics.prefix }}
|
||||
metrics:
|
||||
{{- if eq .Values.metrics.http true }}
|
||||
- name: requestsize
|
||||
instanceName: {{ include "common.names.fullname" . }}-requestsize.instance.{{ .Release.Namespace }}
|
||||
type: HISTOGRAM
|
||||
sample:
|
||||
expDecay:
|
||||
reservoirSize: 1024
|
||||
alpha: 0.015
|
||||
- name: requestcount
|
||||
instanceName: {{ include "common.names.fullname" . }}-requestcount.instance.{{ .Release.Namespace }}
|
||||
type: DELTA_COUNTER
|
||||
- name: requestduration
|
||||
instanceName: {{ include "common.names.fullname" . }}-requestduration.instance.{{ .Release.Namespace }}
|
||||
type: HISTOGRAM
|
||||
sample:
|
||||
expDecay:
|
||||
reservoirSize: 1024
|
||||
alpha: 0.015
|
||||
- name: responsesize
|
||||
instanceName: {{ include "common.names.fullname" . }}-responsesize.instance.{{ .Release.Namespace }}
|
||||
type: HISTOGRAM
|
||||
sample:
|
||||
expDecay:
|
||||
reservoirSize: 1024
|
||||
alpha: 0.015
|
||||
{{- end }}
|
||||
{{- if eq .Values.metrics.tcp true }}
|
||||
- name: tcpsentbytes
|
||||
instanceName: {{ include "common.names.fullname" . }}-tcpsentbytes.instance.{{ .Release.Namespace }}
|
||||
type: HISTOGRAM
|
||||
sample:
|
||||
expDecay:
|
||||
reservoirSize: 1024
|
||||
alpha: 0.015
|
||||
- name: tcpreceivedbytes
|
||||
instanceName: {{ include "common.names.fullname" . }}-tcpreceivedbytes.instance.{{ .Release.Namespace }}
|
||||
type: HISTOGRAM
|
||||
sample:
|
||||
expDecay:
|
||||
reservoirSize: 1024
|
||||
alpha: 0.015
|
||||
- name: tcpconnectionsopened
|
||||
instanceName: {{ include "common.names.fullname" . }}-tcpconnectionsopened.instance.{{ .Release.Namespace }}
|
||||
type: HISTOGRAM
|
||||
sample:
|
||||
expDecay:
|
||||
reservoirSize: 1024
|
||||
alpha: 0.015
|
||||
- name: tcpconnectionsclosed
|
||||
instanceName: {{ include "common.names.fullname" . }}-tcpconnectionsclosed.instance.{{ .Release.Namespace }}
|
||||
type: HISTOGRAM
|
||||
sample:
|
||||
expDecay:
|
||||
reservoirSize: 1024
|
||||
alpha: 0.015
|
||||
{{- end }}
|
||||
logs:
|
||||
level: {{ .Values.adapterLogLevel }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,117 @@
|
||||
{{- if and .Values.istio.create .Values.metrics.http }}
|
||||
# requestsize instance for template metric
|
||||
apiVersion: {{ include "wfafi.istio.apiVersion" . }}
|
||||
kind: instance
|
||||
metadata:
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
app.kubernetes.io/component: wavefront-adapter-for-istio
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
name: {{ include "common.names.fullname" . }}-requestsize
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
template: {{ include "common.names.fullname" . }}-metric
|
||||
params:
|
||||
value: request.total_size | 0
|
||||
dimensions:
|
||||
reporter: conditional((context.reporter.kind | "inbound") == "outbound", "client", "server")
|
||||
source_service: source.workload.name | "unknown"
|
||||
source_service_namespace: source.workload.namespace | "unknown"
|
||||
source_version: source.labels["version"] | "unknown"
|
||||
destination_service: destination.service.name | "unknown"
|
||||
destination_service_namespace: destination.service.namespace | "unknown"
|
||||
destination_version: destination.labels["version"] | "unknown"
|
||||
response_code: response.code | 200
|
||||
monitored_resource_type: '"UNSPECIFIED"'
|
||||
---
|
||||
# requestcount instance for template metric
|
||||
apiVersion: {{ include "wfafi.istio.apiVersion" . }}
|
||||
kind: instance
|
||||
metadata:
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
app.kubernetes.io/component: wavefront-adapter-for-istio
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
name: {{ include "common.names.fullname" . }}-requestcount
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
template: {{ include "common.names.fullname" . }}-metric
|
||||
params:
|
||||
value: 1
|
||||
dimensions:
|
||||
reporter: conditional((context.reporter.kind | "inbound") == "outbound", "client", "server")
|
||||
source_service: source.workload.name | "unknown"
|
||||
source_service_namespace: source.workload.namespace | "unknown"
|
||||
source_version: source.labels["version"] | "unknown"
|
||||
destination_service: destination.service.name | "unknown"
|
||||
destination_service_namespace: destination.service.namespace | "unknown"
|
||||
destination_version: destination.labels["version"] | "unknown"
|
||||
response_code: response.code | 200
|
||||
monitored_resource_type: '"UNSPECIFIED"'
|
||||
---
|
||||
# requestduration instance for template metric
|
||||
apiVersion: {{ include "wfafi.istio.apiVersion" . }}
|
||||
kind: instance
|
||||
metadata:
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
app.kubernetes.io/component: wavefront-adapter-for-istio
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
name: {{ include "common.names.fullname" . }}-requestduration
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
template: {{ include "common.names.fullname" . }}-metric
|
||||
params:
|
||||
value: response.duration | "0ms"
|
||||
dimensions:
|
||||
reporter: conditional((context.reporter.kind | "inbound") == "outbound", "client", "server")
|
||||
source_service: source.workload.name | "unknown"
|
||||
source_service_namespace: source.workload.namespace | "unknown"
|
||||
source_version: source.labels["version"] | "unknown"
|
||||
destination_service: destination.service.name | "unknown"
|
||||
destination_service_namespace: destination.service.namespace | "unknown"
|
||||
destination_version: destination.labels["version"] | "unknown"
|
||||
response_code: response.code | 200
|
||||
monitored_resource_type: '"UNSPECIFIED"'
|
||||
---
|
||||
# responsesize instance for template metric
|
||||
apiVersion: {{ include "wfafi.istio.apiVersion" . }}
|
||||
kind: instance
|
||||
metadata:
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
app.kubernetes.io/component: wavefront-adapter-for-istio
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
name: {{ include "common.names.fullname" . }}-responsesize
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
template: {{ include "common.names.fullname" . }}-metric
|
||||
params:
|
||||
value: response.total_size | 0
|
||||
dimensions:
|
||||
reporter: conditional((context.reporter.kind | "inbound") == "outbound", "client", "server")
|
||||
source_service: source.workload.name | "unknown"
|
||||
source_service_namespace: source.workload.namespace | "unknown"
|
||||
source_version: source.labels["version"] | "unknown"
|
||||
destination_service: destination.service.name | "unknown"
|
||||
destination_service_namespace: destination.service.namespace | "unknown"
|
||||
destination_version: destination.labels["version"] | "unknown"
|
||||
response_code: response.code | 200
|
||||
monitored_resource_type: '"UNSPECIFIED"'
|
||||
{{- end }}
|
||||
@@ -0,0 +1,117 @@
|
||||
{{- if and .Values.istio.create .Values.metrics.tcp }}
|
||||
# tcpsentbytes instance for template metric
|
||||
apiVersion: {{ include "wfafi.istio.apiVersion" . }}
|
||||
kind: instance
|
||||
metadata:
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
app.kubernetes.io/component: wavefront-adapter-for-istio
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
name: {{ include "common.names.fullname" . }}-tcpsentbytes
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
template: {{ include "common.names.fullname" . }}-metric
|
||||
params:
|
||||
value: connection.sent.bytes | 0
|
||||
dimensions:
|
||||
reporter: conditional((context.reporter.kind | "inbound") == "outbound", "client", "server")
|
||||
source_service: source.workload.name | "unknown"
|
||||
source_service_namespace: source.workload.namespace | "unknown"
|
||||
source_version: source.labels["version"] | "unknown"
|
||||
destination_service: destination.service.name | "unknown"
|
||||
destination_service_namespace: destination.service.namespace | "unknown"
|
||||
destination_version: destination.labels["version"] | "unknown"
|
||||
response_code: response.code | 200
|
||||
monitored_resource_type: '"UNSPECIFIED"'
|
||||
---
|
||||
# tcpreceivedbytes instance for template metric
|
||||
apiVersion: {{ include "wfafi.istio.apiVersion" . }}
|
||||
kind: instance
|
||||
metadata:
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
app.kubernetes.io/component: wavefront-adapter-for-istio
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
name: {{ include "common.names.fullname" . }}-tcpreceivedbytes
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
template: {{ include "common.names.fullname" . }}-metric
|
||||
params:
|
||||
value: connection.received.bytes | 0
|
||||
dimensions:
|
||||
reporter: conditional((context.reporter.kind | "inbound") == "outbound", "client", "server")
|
||||
source_service: source.workload.name | "unknown"
|
||||
source_service_namespace: source.workload.namespace | "unknown"
|
||||
source_version: source.labels["version"] | "unknown"
|
||||
destination_service: destination.service.name | "unknown"
|
||||
destination_service_namespace: destination.service.namespace | "unknown"
|
||||
destination_version: destination.labels["version"] | "unknown"
|
||||
response_code: response.code | 200
|
||||
monitored_resource_type: '"UNSPECIFIED"'
|
||||
---
|
||||
# tcpconnectionsopened instance for template metric
|
||||
apiVersion: {{ include "wfafi.istio.apiVersion" . }}
|
||||
kind: instance
|
||||
metadata:
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
app.kubernetes.io/component: wavefront-adapter-for-istio
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
name: {{ include "common.names.fullname" . }}-tcpconnectionsopened
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
template: {{ include "common.names.fullname" . }}-metric
|
||||
params:
|
||||
value: 1
|
||||
dimensions:
|
||||
reporter: conditional((context.reporter.kind | "inbound") == "outbound", "client", "server")
|
||||
source_service: source.workload.name | "unknown"
|
||||
source_service_namespace: source.workload.namespace | "unknown"
|
||||
source_version: source.labels["version"] | "unknown"
|
||||
destination_service: destination.service.name | "unknown"
|
||||
destination_service_namespace: destination.service.namespace | "unknown"
|
||||
destination_version: destination.labels["version"] | "unknown"
|
||||
response_code: response.code | 200
|
||||
monitored_resource_type: '"UNSPECIFIED"'
|
||||
---
|
||||
# tcpconnectionsclosed instance for template metric
|
||||
apiVersion: {{ include "wfafi.istio.apiVersion" . }}
|
||||
kind: instance
|
||||
metadata:
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
app.kubernetes.io/component: wavefront-adapter-for-istio
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
name: {{ include "common.names.fullname" . }}-tcpconnectionsclosed
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
template: {{ include "common.names.fullname" . }}-metric
|
||||
params:
|
||||
value: 1
|
||||
dimensions:
|
||||
reporter: conditional((context.reporter.kind | "inbound") == "outbound", "client", "server")
|
||||
source_service: source.workload.name | "unknown"
|
||||
source_service_namespace: source.workload.namespace | "unknown"
|
||||
source_version: source.labels["version"] | "unknown"
|
||||
destination_service: destination.service.name | "unknown"
|
||||
destination_service_namespace: destination.service.namespace | "unknown"
|
||||
destination_version: destination.labels["version"] | "unknown"
|
||||
response_code: response.code | 200
|
||||
monitored_resource_type: '"UNSPECIFIED"'
|
||||
{{- end }}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,25 @@
|
||||
{{- if and .Values.istio.create .Values.metrics.http }}
|
||||
# rule to dispatch to handler wavefront-handler
|
||||
apiVersion: {{ include "wfafi.istio.apiVersion" . }}
|
||||
kind: rule
|
||||
metadata:
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
app.kubernetes.io/component: wavefront-adapter-for-istio
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
name: {{ include "common.names.fullname" . }}-wavefront-http-rule
|
||||
namespace: {{ .Values.istio.namespace }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
match: context.protocol == "http"
|
||||
actions:
|
||||
- handler: {{ include "common.names.fullname" . }}-wavefront-handler.{{ .Values.istio.namespace }}
|
||||
instances:
|
||||
- {{ include "common.names.fullname" . }}-requestsize.instance.{{ .Release.Namespace }}
|
||||
- {{ include "common.names.fullname" . }}-requestcount.instance.{{ .Release.Namespace }}
|
||||
- {{ include "common.names.fullname" . }}-requestduration.instance.{{ .Release.Namespace }}
|
||||
- {{ include "common.names.fullname" . }}-responsesize.instance.{{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,60 @@
|
||||
{{- if and .Values.istio.create .Values.metrics.tcp }}
|
||||
# rule to dispatch tcp metrics to handler wavefront-handler
|
||||
apiVersion: {{ include "wfafi.istio.apiVersion" . }}
|
||||
kind: rule
|
||||
metadata:
|
||||
name: {{ include "common.names.fullname" . }}-wavefront-tcp-rule
|
||||
namespace: {{ .Values.istio.namespace }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
match: context.protocol == "tcp"
|
||||
actions:
|
||||
- handler: {{ include "common.names.fullname" . }}-wavefront-handler.{{ .Values.istio.namespace }}
|
||||
instances:
|
||||
- {{ include "common.names.fullname" . }}-tcpsentbytes.instance.{{ .Release.Namespace }}
|
||||
- {{ include "common.names.fullname" . }}-tcpreceivedbytes.instance.{{ .Release.Namespace }}
|
||||
---
|
||||
# rule to dispatch tcp connection open metric to handler wavefront-handler
|
||||
apiVersion: {{ include "wfafi.istio.apiVersion" . }}
|
||||
kind: rule
|
||||
metadata:
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
app.kubernetes.io/component: wavefront-adapter-for-istio
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
name: {{ include "common.names.fullname" . }}-wavefront-tcp-connection-open-rule
|
||||
namespace: {{ .Values.istio.namespace }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
match: context.protocol == "tcp" && connection.event == "open"
|
||||
actions:
|
||||
- handler: {{ include "common.names.fullname" . }}-wavefront-handler.{{ .Values.istio.namespace }}
|
||||
instances:
|
||||
- {{ include "common.names.fullname" . }}-tcpconnectionsopened.instance.{{ .Release.Namespace }}
|
||||
---
|
||||
# rule to dispatch tcp connection close metric to handler wavefront-handler
|
||||
apiVersion: {{ include "wfafi.istio.apiVersion" . }}
|
||||
kind: rule
|
||||
metadata:
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
app.kubernetes.io/component: wavefront-adapter-for-istio
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
name: {{ include "common.names.fullname" . }}-wavefront-tcp-connection-close-rule
|
||||
namespace: {{ .Values.istio.namespace }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
match: context.protocol == "tcp" && connection.event == "close"
|
||||
actions:
|
||||
- handler: {{ include "common.names.fullname" . }}-wavefront-handler.{{ .Values.istio.namespace }}
|
||||
instances:
|
||||
- {{ include "common.names.fullname" . }}-tcpconnectionsclosed.instance.{{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,36 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
app.kubernetes.io/component: wavefront-adapter-for-istio
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
name: {{ template "common.names.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
{{- if (or (eq .Values.service.type "LoadBalancer") (eq .Values.service.type "NodePort")) }}
|
||||
externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy | quote }}
|
||||
{{- end }}
|
||||
{{ if eq .Values.service.type "LoadBalancer" }}
|
||||
loadBalancerSourceRanges: {{ .Values.service.loadBalancerSourceRanges }}
|
||||
{{ end }}
|
||||
{{- if (and (eq .Values.service.type "LoadBalancer") (not (empty .Values.service.loadBalancerIP))) }}
|
||||
loadBalancerIP: {{ .Values.service.loadBalancerIP }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: grpc
|
||||
port: {{ .Values.service.port }}
|
||||
targetPort: grpc
|
||||
protocol: TCP
|
||||
{{- if (and (or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer")) (not (empty .Values.service.nodePorts.http))) }}
|
||||
nodePort: {{ .Values.service.nodePorts.http }}
|
||||
{{- else if eq .Values.service.type "ClusterIP" }}
|
||||
nodePort: null
|
||||
{{- end }}
|
||||
selector: {{- include "common.labels.matchLabels" . | nindent 4 }}
|
||||
app.kubernetes.io/component: wavefront-adapter-for-istio
|
||||
@@ -0,0 +1,445 @@
|
||||
## Global Docker image parameters
|
||||
## Please, note that this will override the image parameters, including dependencies, configured to use the global value
|
||||
## Current available global Docker image parameters: imageRegistry and imagePullSecrets
|
||||
##
|
||||
## @section Global parameters
|
||||
## @param global.imageRegistry Global Docker image registry
|
||||
## @param global.imagePullSecrets Global Docker registry secret names as an array
|
||||
##
|
||||
global:
|
||||
imageRegistry:
|
||||
imagePullSecrets: []
|
||||
# - myRegistryKeySecretName
|
||||
# storageClass: myStorageClass
|
||||
|
||||
## Override Kubernetes version
|
||||
## @param kubeVersion Override Kubernetes version
|
||||
##
|
||||
kubeVersion:
|
||||
|
||||
## String to partially override common.names.fullname template (will maintain the release name)
|
||||
## @param nameOverride String to partially override common.names.fullname
|
||||
##
|
||||
nameOverride:
|
||||
|
||||
## String to fully override common.names.fullname template
|
||||
## @param fullnameOverride String to fully override common.names.fullname
|
||||
##
|
||||
fullnameOverride:
|
||||
|
||||
## Add labels to all the deployed resources
|
||||
## @param commonLabels Labels to add to all deployed objects
|
||||
##
|
||||
commonLabels: {}
|
||||
|
||||
## Add annotations to all the deployed resources
|
||||
## @param commonAnnotations Annotations to add to all deployed objects
|
||||
##
|
||||
commonAnnotations: {}
|
||||
|
||||
## Kubernetes Cluster Domain
|
||||
## @param clusterDomain Kubernetes cluster domain name
|
||||
##
|
||||
clusterDomain: cluster.local
|
||||
|
||||
## Extra objects to deploy (value evaluated as a template)
|
||||
## @param extraDeploy Array of extra objects to deploy with the release
|
||||
##
|
||||
extraDeploy: []
|
||||
|
||||
## @section Wavefront Adapter for Istio deployment parameters
|
||||
##
|
||||
image:
|
||||
## @param image.registry Adapter image registry
|
||||
##
|
||||
registry: docker.io
|
||||
## @param image.repository Adapter image repository
|
||||
##
|
||||
repository: bitnami/wavefront-adapter-for-istio
|
||||
## @param image.tag Adapter image tag (immutabe tags are recommended)
|
||||
##
|
||||
tag: 0.1.5-debian-10-r2
|
||||
## Specify a imagePullPolicy
|
||||
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
|
||||
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
|
||||
##
|
||||
## @param image.pullPolicy Adapter image pull policy
|
||||
##
|
||||
pullPolicy: IfNotPresent
|
||||
## Optionally specify an array of imagePullSecrets.
|
||||
## Secrets must be manually created in the namespace.
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
|
||||
##
|
||||
## @param image.pullSecrets Adapter image pull secrets
|
||||
##
|
||||
pullSecrets: []
|
||||
# - myRegistryKeySecretName
|
||||
## Enable debug mode
|
||||
## @param image.debug Enable image debug mode
|
||||
##
|
||||
debug: false
|
||||
|
||||
## Configure extra options for liveness and readiness probes
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
|
||||
## @param livenessProbe.enabled Enable livenessProbe
|
||||
## @param livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
|
||||
## @param livenessProbe.periodSeconds Period seconds for livenessProbe
|
||||
## @param livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
|
||||
## @param livenessProbe.failureThreshold Failure threshold for livenessProbe
|
||||
## @param livenessProbe.successThreshold Success threshold for livenessProbe
|
||||
##
|
||||
livenessProbe:
|
||||
enabled: true
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
## @param readinessProbe.enabled Enable readinessProbe
|
||||
## @param readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
|
||||
## @param readinessProbe.periodSeconds Period seconds for readinessProbe
|
||||
## @param readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
|
||||
## @param readinessProbe.failureThreshold Failure threshold for readinessProbe
|
||||
## @param readinessProbe.successThreshold Success threshold for readinessProbe
|
||||
##
|
||||
readinessProbe:
|
||||
enabled: true
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
|
||||
## Command and args for running the container (set to default if not set). Use array form
|
||||
## @param command Override default container command (useful when using custom images)
|
||||
##
|
||||
command: []
|
||||
## Args for running the container (set to default if not set). Use array form
|
||||
## @param args Override default container args (useful when using custom images)
|
||||
##
|
||||
args: []
|
||||
|
||||
## Deployment pod host aliases
|
||||
## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
|
||||
## @param hostAliases Add deployment host aliases
|
||||
##
|
||||
hostAliases: []
|
||||
|
||||
## wavefront-adapter-for-istio resource requests and limits
|
||||
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
|
||||
##
|
||||
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:'.
|
||||
## @param resources.limits The resources limits for the Adapter container
|
||||
##
|
||||
limits: {}
|
||||
# cpu: 200m
|
||||
# memory: 256Mi
|
||||
## @param resources.requests The requested resourcesc for the Adapter container
|
||||
##
|
||||
requests: {}
|
||||
# cpu: 200m
|
||||
# memory: 10Mi
|
||||
|
||||
## wavefront-adapter-for-istio containers' Security Context
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
|
||||
## @param containerSecurityContext.enabled Enabled Adapter containers' Security Context
|
||||
## @param containerSecurityContext.runAsUser Set Adapter container's Security Context runAsUser
|
||||
## @param containerSecurityContext.runAsNonRoot Set Adapter container's Security Context runAsNonRoot
|
||||
##
|
||||
containerSecurityContext:
|
||||
enabled: true
|
||||
runAsUser: 1001
|
||||
runAsNonRoot: true
|
||||
|
||||
## wavefront-adapter-for-istio pods' Security Context
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
|
||||
## @param podSecurityContext.enabled Enabled Adapter pods' Security Context
|
||||
## @param podSecurityContext.fsGroup Set Adapter pod's Security Context fsGroup
|
||||
##
|
||||
podSecurityContext:
|
||||
enabled: true
|
||||
fsGroup: 1001
|
||||
|
||||
## Pod affinity preset
|
||||
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
|
||||
## Allowed values: soft, hard
|
||||
## @param podAffinityPreset Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
|
||||
##
|
||||
podAffinityPreset: ""
|
||||
|
||||
## Pod anti-affinity preset
|
||||
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
|
||||
## @param podAntiAffinityPreset Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
|
||||
## Allowed values: soft, hard
|
||||
##
|
||||
podAntiAffinityPreset: soft
|
||||
|
||||
## Node affinity preset
|
||||
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
|
||||
## Allowed values: soft, hard
|
||||
## @param nodeAffinityPreset.type Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
|
||||
## @param nodeAffinityPreset.key Node label key to match. Ignored if `affinity` is set
|
||||
## @param nodeAffinityPreset.values Node label values to match. Ignored if `affinity` is set
|
||||
##
|
||||
nodeAffinityPreset:
|
||||
## Node affinity type
|
||||
## Allowed values: soft, hard
|
||||
##
|
||||
type: ""
|
||||
## Node label key to match
|
||||
## E.g.
|
||||
## key: "kubernetes.io/e2e-az-name"
|
||||
##
|
||||
key: ""
|
||||
## Node label values to match
|
||||
## E.g.
|
||||
## values:
|
||||
## - e2e-az1
|
||||
## - e2e-az2
|
||||
##
|
||||
values: []
|
||||
|
||||
## Affinity for pod assignment. Evaluated as a template.
|
||||
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
|
||||
## @param affinity Affinity for pod assignment
|
||||
##
|
||||
affinity: {}
|
||||
|
||||
## Node labels for pod assignment. Evaluated as a template.
|
||||
## ref: https://kubernetes.io/docs/user-guide/node-selection/
|
||||
## @param nodeSelector Node labels for pod assignment
|
||||
##
|
||||
nodeSelector: {}
|
||||
|
||||
## Tolerations for pod assignment. Evaluated as a template.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
||||
## @param tolerations Tolerations for pod assignment
|
||||
##
|
||||
tolerations: []
|
||||
|
||||
## Pod extra labels
|
||||
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
|
||||
##
|
||||
## @param podLabels Extra labels for Adapter pods
|
||||
##
|
||||
podLabels: {}
|
||||
|
||||
## Annotations for server pods.
|
||||
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
|
||||
## @skip podAnnotations
|
||||
##
|
||||
podAnnotations:
|
||||
sidecar.istio.io/inject: "false"
|
||||
scheduler.alpha.kubernetes.io/critical-pod: ""
|
||||
|
||||
## wavefront-adapter-for-istio pods' priority.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
|
||||
## @param priorityClassName Adapter pod priority
|
||||
##
|
||||
priorityClassName: ""
|
||||
|
||||
## lifecycleHooks for the wavefront-adapter-for-istio container to automate configuration before or after startup.
|
||||
## @param lifecycleHooks Add lifecycle hooks to the Adapter deployment
|
||||
##
|
||||
lifecycleHooks: {}
|
||||
|
||||
## Custom Liveness probes for wavefront-adapter-for-istio
|
||||
## @param customLivenessProbe Override default liveness probe
|
||||
##
|
||||
customLivenessProbe: {}
|
||||
|
||||
## Custom Rediness probes wavefront-adapter-for-istio
|
||||
## @param customReadinessProbe Override default readiness probe
|
||||
##
|
||||
customReadinessProbe: {}
|
||||
|
||||
## Update strategy - only really applicable for deployments with RWO PVs attached
|
||||
## If replicas = 1, an update can get "stuck", as the previous pod remains attached to the
|
||||
## PV, and the "incoming" pod can never start. Changing the strategy to "Recreate" will
|
||||
## terminate the single previous pod, so that the new, incoming pod can attach to the PV
|
||||
## @param updateStrategy.type Adapter deployment update strategy
|
||||
##
|
||||
updateStrategy:
|
||||
type: RollingUpdate
|
||||
|
||||
## Adapter Container port
|
||||
## @param containerPort Adapter container port
|
||||
##
|
||||
containerPort: 8000
|
||||
## Additional environment variables to set
|
||||
## Example:
|
||||
## extraEnvVars:
|
||||
## - name: FOO
|
||||
## value: "bar"
|
||||
## @param extraEnvVars Add extra environment variables to the Adapter container
|
||||
##
|
||||
extraEnvVars: []
|
||||
|
||||
## ConfigMap with extra environment variables
|
||||
## @param extraEnvVarsCM Name of existing ConfigMap containing extra env vars
|
||||
##
|
||||
extraEnvVarsCM:
|
||||
|
||||
## Secret with extra environment variables
|
||||
## @param extraEnvVarsSecret Name of existing Secret containing extra env vars
|
||||
##
|
||||
extraEnvVarsSecret:
|
||||
|
||||
## Extra volumes to add to the deployment
|
||||
## @param extraVolumes Optionally specify extra list of additional volumes for Adapter pods
|
||||
##
|
||||
extraVolumes: []
|
||||
|
||||
## Extra volume mounts to add to the container
|
||||
## @param extraVolumeMounts Optionally specify extra list of additional volumeMounts for Adapter container(s)
|
||||
##
|
||||
extraVolumeMounts: []
|
||||
|
||||
## Add init containers to the wavefront-adapter-for-istio pods.
|
||||
## Example:
|
||||
## initContainers:
|
||||
## - name: your-image-name
|
||||
## image: your-image
|
||||
## imagePullPolicy: Always
|
||||
## ports:
|
||||
## - name: portname
|
||||
## containerPort: 1234
|
||||
## @param initContainers Add additional init containers to the Adapter pods
|
||||
##
|
||||
initContainers: {}
|
||||
|
||||
## Add sidecars to the wavefront-adapter-for-istio pods.
|
||||
## Example:
|
||||
## sidecars:
|
||||
## - name: your-image-name
|
||||
## image: your-image
|
||||
## imagePullPolicy: Always
|
||||
## ports:
|
||||
## - name: portname
|
||||
## containerPort: 1234
|
||||
##
|
||||
## @param sidecars Add additional sidecar containers to the Adapter pod
|
||||
##
|
||||
sidecars: {}
|
||||
|
||||
## Use an external wavefront-proxy host
|
||||
##
|
||||
externalProxy:
|
||||
## @param externalProxy.host Host of a wavefront-proxy instance (required if wavefront.enabled = false)
|
||||
##
|
||||
host:
|
||||
## @param externalProxy.port Host of a wavefront-proxy instance (required if wavefront.enabled = false)
|
||||
##
|
||||
port: 2878
|
||||
|
||||
## Adapter prefix parameter
|
||||
## @param adapterLogLevel Adapter log level
|
||||
##
|
||||
adapterLogLevel: info
|
||||
|
||||
## Istio settings
|
||||
##
|
||||
istio:
|
||||
## @param istio.create Deploy istio objects
|
||||
##
|
||||
create: true
|
||||
## @param istio.namespace Namespace to deploy the Istio objects
|
||||
##
|
||||
namespace: istio-system
|
||||
## @param istio.apiVersion Override Istio API version
|
||||
##
|
||||
apiVersion:
|
||||
|
||||
## Adapter Metrics parameters
|
||||
##
|
||||
metrics:
|
||||
## @param metrics.flushInterval Interval to flush the metrics
|
||||
##
|
||||
flushInterval: 5s
|
||||
## @param metrics.source Source tag for all metrics handled by the adapter
|
||||
##
|
||||
source: istio
|
||||
## @param metrics.prefix Prefix to prepend to all metrics handled by the adapter
|
||||
##
|
||||
prefix: istio
|
||||
## @param metrics.http Enable the collection of http metrics
|
||||
##
|
||||
http: true
|
||||
## @param metrics.tcp Enable the collection of tcp metrics
|
||||
##
|
||||
tcp: true
|
||||
|
||||
## @section Traffic Exposure Parameters
|
||||
## Service parameters
|
||||
##
|
||||
service:
|
||||
## @param service.type Adapter service type
|
||||
##
|
||||
type: ClusterIP
|
||||
## HTTP Port
|
||||
## @param service.port Adapter service port
|
||||
##
|
||||
port: 8000
|
||||
## loadBalancerIP for the Service (optional, cloud specific)
|
||||
## ref: http://kubernetes.io/docs/user-guide/services/#type-loadbalancer
|
||||
## @param service.loadBalancerIP Adapter service LoadBalancer IP
|
||||
##
|
||||
loadBalancerIP:
|
||||
## loadBalancerIP source ranges for the Service
|
||||
## @param service.loadBalancerSourceRanges loadBalancerIP source ranges for the Service
|
||||
##
|
||||
loadBalancerSourceRanges:
|
||||
##
|
||||
## nodePorts:
|
||||
## http: <to set explicitly, choose port between 30000-32767>
|
||||
## https: <to set explicitly, choose port between 30000-32767>
|
||||
## @param service.nodePorts.http NodePort for the HTTP endpoint
|
||||
##
|
||||
nodePorts:
|
||||
http: ""
|
||||
## Enable client source IP preservation
|
||||
## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
|
||||
## @param service.externalTrafficPolicy External traffic policy for the service
|
||||
##
|
||||
externalTrafficPolicy: Cluster
|
||||
|
||||
## @section Wavefront sub-chart parameters
|
||||
## Wavefront chart parameters
|
||||
## NOTE: This solution will currently work with wavefront-proxy, reason why we disable the rest of
|
||||
## the services by default
|
||||
##
|
||||
wavefront:
|
||||
## @param wavefront.enabled Deploy Wavefront chart (necessary if externalProxyHost is not set)
|
||||
##
|
||||
enabled: true
|
||||
|
||||
## @param wavefront.wavefront.url Wavefront SAAS service URL
|
||||
## @param wavefront.wavefront.token Wavefront SAAS token
|
||||
##
|
||||
wavefront:
|
||||
url: https://YOUR_CLUSTER.wavefront.com
|
||||
token: YOUR_API_TOKEN
|
||||
|
||||
## @param wavefront.collector.enabled Deploy Wavefront collector (not used by the Adapter pod)
|
||||
##
|
||||
collector:
|
||||
enabled: false
|
||||
## @param wavefront.rbac.create Create RBAC rules (not necessary as the Adapter only uses wavefront-proxy)
|
||||
##
|
||||
rbac:
|
||||
create: false
|
||||
proxy:
|
||||
## @param wavefront.proxy.enabled Deploy Wavefront Proxy (required if externalProxyHost is not set)
|
||||
##
|
||||
enabled: true
|
||||
## @param wavefront.proxy.port Deployed Wavefront Proxy port (required if externalProxyHost is not set)
|
||||
##
|
||||
port: 2878
|
||||
## @param wavefront.serviceAccount.create Create Wavefront serivce account (not necessary as the Adapter only uses wavefront-proxy)
|
||||
##
|
||||
serviceAccount:
|
||||
create: false
|
||||
Reference in New Issue
Block a user