mirror of
https://github.com/helm/charts.git
synced 2026-08-23 22:37:45 +00:00
[stable/instana-agent] Add instana-agent chart to stable (#12799)
* Add instana-agent chart to stable. Signed-off-by: Dahlia Bock <dlbock@gmail.com> * Add environment variables for agent mode and download key Signed-off-by: Dahlia Bock <dlbock@gmail.com> * [feedback] Remove Helm docs in chart's README as Helm is a prerequisite Signed-off-by: Dahlia Bock <dlbock@gmail.com> * [feedback] Since agent.image is specific in values.yaml, removing the else condition as it is unreachable Signed-off-by: Dahlia Bock <dlbock@gmail.com> * [feedback] Fix formatting and indentation specifications in daemonset.yaml Signed-off-by: Dahlia Bock <dlbock@gmail.com> * [feedback] Use rbac.authorization.k8s.io/v1 RBAC api version Signed-off-by: Dahlia Bock <dlbock@gmail.com> * [feedback] Remove the definition and use of 'baseName' helper. Instead use the default `instana-agent.name` helper created by `helm create`. Signed-off-by: Dahlia Bock <dlbock@gmail.com> * [feedback] Following RBAC best practices specified in https://github.com/helm/helm/blob/master/docs/chart_best_practices/rbac.md Signed-off-by: Dahlia Bock <dlbock@gmail.com> * [feedback] Use standard resource and selector labels as suggested in the guidelines. Signed-off-by: Dahlia Bock <dlbock@gmail.com> * [feedback] Use apps/v1beta2 as the apiVersion for daemonset Signed-off-by: Dahlia Bock <dlbock@gmail.com> * [feedback] .Values.serviceAccount.name should not be set by default. Signed-off-by: Dahlia Bock <dlbock@gmail.com> * [feedback] Remove name suffixes for resources unless there are multiple resources of the same kind. Use fullname template for resource names. Signed-off-by: Dahlia Bock <dlbock@gmail.com> * [feedback] Remove the component label. Rename helmChartLabels to commonLabels. Signed-off-by: Dahlia Bock <dlbock@gmail.com> * [feedback] Formatting changes in daemonset.yaml and removal of int function usage. Signed-off-by: Dahlia Bock <dlbock@gmail.com> * [feedback] Set agent image tag version to 1.0.17 Signed-off-by: Dahlia Bock <dlbock@gmail.com> * [feedback] Remove rbacApiVersion helper, specify it directly in clusterrole.yaml and clusterrolebinding.yaml Signed-off-by: Dahlia Bock <dlbock@gmail.com>
This commit is contained in:
committed by
Kubernetes Prow Robot
parent
9d7c9a14ac
commit
4ddc5537b7
@@ -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 helm
|
||||
OWNERS
|
||||
@@ -0,0 +1,21 @@
|
||||
name: instana-agent
|
||||
version: 1.0.4
|
||||
appVersion: 1.0
|
||||
description: Instana Agent for Kubernetes
|
||||
home: https://www.instana.com/
|
||||
icon: http://instana-management-assets.s3-website-eu-west-1.amazonaws.com/stan_icon_front_black_big.png
|
||||
sources:
|
||||
- https://github.com/instana/instana-agent-docker
|
||||
maintainers:
|
||||
- name: jbrisbin
|
||||
email: jon.brisbin@instana.com
|
||||
- name: wiggzz
|
||||
email: william.james@instana.com
|
||||
- name: JeroenSoeters
|
||||
email: jeroen.soeters@instana.com
|
||||
- name: fstab
|
||||
email: fabian.staeber@instana.com
|
||||
- name: mdonkers
|
||||
email: miel.donkers@instana.com
|
||||
- name: dlbock
|
||||
email: dahlia.bock@instana.com
|
||||
@@ -0,0 +1,14 @@
|
||||
approvers:
|
||||
- jbrisbin
|
||||
- wiggzz
|
||||
- JeroenSoeters
|
||||
- fstab
|
||||
- mdonkers
|
||||
- dlbock
|
||||
reviewers:
|
||||
- jbrisbin
|
||||
- wiggzz
|
||||
- JeroenSoeters
|
||||
- fstab
|
||||
- mdonkers
|
||||
- dlbock
|
||||
@@ -0,0 +1,122 @@
|
||||
# Instana
|
||||
|
||||
[Instana](https://www.instana.com/) is a Dynamic APM for Microservice Applications
|
||||
|
||||
## Introduction
|
||||
|
||||
This chart adds the Instana Agent to all schedulable nodes (e.g. by default, not masters) in your cluster via a `DaemonSet`.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Kubernetes 1.8.x - 1.13.x
|
||||
|
||||
Working `helm` and `tiller`.
|
||||
|
||||
_Note:_ Tiller may need a service account and role binding if RBAC is enabled in your cluster.
|
||||
|
||||
## Installing the Chart
|
||||
|
||||
To configure the installation you can either specify the options on the command line using the **--set** switch, or you can edit **values.yaml**. Either way you should ensure that you set values for:
|
||||
|
||||
* agent.key
|
||||
* zone.name
|
||||
|
||||
If you're in the EU, you'll probably also want to set the regional equivalent values for:
|
||||
|
||||
* agent.endpointHost
|
||||
* agent.endpointPort
|
||||
|
||||
Optionally, if your infrastructure uses a proxy, you should ensure that you set values for:
|
||||
|
||||
* agent.pod.proxyHost
|
||||
* agent.pod.proxyPort
|
||||
* agent.pod.proxyProtocol
|
||||
* agent.pod.proxyUser
|
||||
* agent.pod.proxyPassword
|
||||
* agent.pod.proxyUseDNS
|
||||
|
||||
Optionally, if your infrastructure has multiple networks defined, you might need to allow the agent to listen on all addresses (typically with value set to '*'):
|
||||
|
||||
* agent.listenAddress
|
||||
|
||||
If your agent requires download key, you should ensure that you set values for it:
|
||||
|
||||
* agent.downloadKey
|
||||
|
||||
Agent can have APM, INFRASTRUCTURE or AWS mode. Default is APM and if you want to override that, ensure you set value:
|
||||
|
||||
* agent.mode
|
||||
|
||||
_Note:_ Check the values for the endpoint entries in the [agent backend configuration](https://docs.instana.io/quick_start/agent_configuration/#backend).
|
||||
|
||||
To install the chart with the release name `instana-agent` and set the values on the command line run:
|
||||
|
||||
```bash
|
||||
$ helm install --name instana-agent --namespace instana-agent \
|
||||
--set agent.key=INSTANA_AGENT_KEY \
|
||||
--set agent.endpointHost=HOST \
|
||||
--set agent.endpointPort=PORT \
|
||||
--set zone.name=CLUSTER_NAME \
|
||||
--set agent.downloadKey=INSTANA_DOWNLOAD_KEY \
|
||||
--set agent.proxyHost=INSTANA_AGENT_PROXY_HOST \
|
||||
--set agent.proxyPort=INSTANA_AGENT_PROXY_PORT \
|
||||
--set agent.proxyProtocol=INSTANA_AGENT_PROXY_PROTOCOL \
|
||||
--set agent.proxyUser=INSTANA_AGENT_PROXY_USER \
|
||||
--set agent.proxyPassword=INSTANA_AGENT_PROXY_PASSWORD \
|
||||
--set agent.proxyUseDNS=INSTANA_AGENT_PROXY_USE_DNS \
|
||||
--set agent.listenAddress=INSTANA_AGENT_HTTP_LISTEN \
|
||||
stable/instana-agent
|
||||
```
|
||||
|
||||
To install the chart with the release name `instana-agent` after editing the **values.yaml** file, run:
|
||||
|
||||
```bash
|
||||
$ helm install --name instana-agent --namespace instana-agent stable/instana-agent
|
||||
```
|
||||
|
||||
## Uninstalling the Chart
|
||||
|
||||
To uninstall/delete the `instana-agent` daemon set:
|
||||
|
||||
```bash
|
||||
$ helm del --purge instana-agent
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
### Helm Chart
|
||||
|
||||
The following table lists the configurable parameters of the Instana chart and their default values.
|
||||
|
||||
| Parameter | Description | Default |
|
||||
|------------------------------------|-------------------------------------------------------------------------|----------------------------------------------|
|
||||
| `agent.key` | Your Instana Agent key | `nil` You must provide your own key |
|
||||
| `zone.name` | Instana zone/cluster name | `nil` You must provide your own zone name |
|
||||
| `agent.image.name` | The image name to pull | `instana/agent` |
|
||||
| `agent.image.tag` | The image tag to pull | `1.0.17` |
|
||||
| `agent.image.pullPolicy` | Image pull policy | `IfNotPresent` |
|
||||
| `agent.leaderElectorPort` | Instana leader elector sidecar port | `42655` |
|
||||
| `agent.endpointHost` | Instana agent backend endpoint host | `saas-us-west-2.instana.io` |
|
||||
| `agent.endpointPort` | Instana agent backend endpoint port | `443` |
|
||||
| `agent.downloadKey` | Your Instana Download key | `nil` You must provide your own download key |
|
||||
| `agent.mode` | Agent mode (Supported values are APM, INFRASTRUCTURE, AWS) | `APM` |
|
||||
| `agent.pod.annotations` | Additional annotations to apply to the pod | `{}` |
|
||||
| `agent.pod.tolerations` | Tolerations for pod assignment | `[]` |
|
||||
| `agent.pod.proxyHost` | Hostname/address of a proxy | `nil` |
|
||||
| `agent.pod.proxyPort` | Port of a proxy | `nil` |
|
||||
| `agent.pod.proxyProtocol` | Proxy protocol (Supported proxy types are "http", "socks4", "socks5") | `nil` |
|
||||
| `agent.pod.proxyUser` | Username of the proxy auth | `nil` |
|
||||
| `agent.pod.proxyPassword` | Password of the proxy auth | `nil` |
|
||||
| `agent.pod.proxyUseDNS` | Boolean if proxy also does DNS | `nil` |
|
||||
| `agent.listenAddress` | List of addresses to listen on, or "*" for all interfaces | `nil` |
|
||||
| `agent.pod.requests.memory` | Container memory requests in MiB | `512` |
|
||||
| `agent.pod.requests.cpu` | Container cpu requests in cpu cores | `0.5` |
|
||||
| `agent.pod.limits.memory` | Container memory limits in MiB | `512` |
|
||||
| `agent.pod.limits.cpu` | Container cpu limits in cpu cores | `1.5` |
|
||||
| `rbac.create` | Whether RBAC resources should be created | `true` |
|
||||
| `serviceAccount.create` | Whether a ServiceAccount should be created | `true` |
|
||||
| `serviceAccount.name` | Name of the ServiceAccount to use | `instana-agent` |
|
||||
|
||||
### Agent
|
||||
|
||||
There is a [config map](templates/configmap.yaml) which you can edit to configure the agent. This configuration will be used for all instana agents on all nodes.
|
||||
@@ -0,0 +1,49 @@
|
||||
{{- if (and (not .Values.agent.key) (not .Values.zone.name)) }}
|
||||
##############################################################################
|
||||
#### ERROR: You did not specify your secret agent key. ####
|
||||
#### ERROR: You also did not specify a zone name for this cluster. ####
|
||||
##############################################################################
|
||||
|
||||
This agent deployment will be incomplete until you set your agent key and zone name for this cluster:
|
||||
|
||||
helm upgrade {{ .Release.Name }} --reuse-values \
|
||||
--set agent.key=$(YOUR_SECRET_AGENT_KEY) \
|
||||
--set zone.name=$(YOUR_CLUSTER_NAME) stable/instana-agent
|
||||
|
||||
- YOUR_SECRET_AGENT_KEY can be obtained from the Management Portal section of your Instana installation.
|
||||
- YOUR_CLUSTER_NAME should be a name that uniquely identifies this cluster.
|
||||
|
||||
{{- else if not .Values.zone.name }}
|
||||
##############################################################################
|
||||
#### ERROR: You did not specify a zone name for this cluster. ####
|
||||
##############################################################################
|
||||
|
||||
This agent deployment will be incomplete until you set a zone name for this cluster:
|
||||
|
||||
helm upgrade {{ .Release.Name }} --reuse-values \
|
||||
--set zone.name=$(YOUR_CLUSTER_NAME) stable/instana-agent
|
||||
|
||||
- YOUR_CLUSTER_NAME should be a name that uniquely identifies this cluster.
|
||||
|
||||
{{- else if not .Values.agent.key }}
|
||||
##############################################################################
|
||||
#### ERROR: You did not specify your secret agent key. ####
|
||||
##############################################################################
|
||||
|
||||
This agent deployment will be incomplete until you set your agent key:
|
||||
|
||||
helm upgrade {{ .Release.Name }} --reuse-values \
|
||||
--set agent.key=$(YOUR_SECRET_AGENT_KEY) stable/instana-agent
|
||||
|
||||
- YOUR_SECRET_AGENT_KEY can be obtained from the Management Portal section of your Instana installation.
|
||||
|
||||
{{- else -}}
|
||||
It may take a few moments for the agents to fully deploy. You can see what agents are running by listing resources in the {{ .Release.Namespace }} namespace:
|
||||
|
||||
kubectl get all -n {{ .Release.Namespace }}
|
||||
|
||||
You can get the logs for all of the agents with `kubectl logs`:
|
||||
|
||||
kubectl logs -f $(kubectl get pods -n {{ .Release.Namespace }} -o name) -n {{ .Release.Namespace }} -c instana-agent
|
||||
|
||||
{{- end }}
|
||||
@@ -0,0 +1,61 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "instana-agent.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "instana-agent.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "instana-agent.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
The name of the ServiceAccount used.
|
||||
*/}}
|
||||
{{- define "instana-agent.serviceAccountName" -}}
|
||||
{{- if .Values.serviceAccount.create -}}
|
||||
{{ default (include "instana-agent.fullname" .) .Values.serviceAccount.name }}
|
||||
{{- else -}}
|
||||
{{ default "default" .Values.serviceAccount.name }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Add Helm metadata to resource labels.
|
||||
*/}}
|
||||
{{- define "instana-agent.commonLabels" -}}
|
||||
app.kubernetes.io/name: {{ include "instana-agent.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
helm.sh/chart: {{ include "instana-agent.chart" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Add Helm metadata to selector labels specifically for deployments/daemonsets/statefulsets.
|
||||
*/}}
|
||||
{{- define "instana-agent.selectorLabels" -}}
|
||||
app.kubernetes.io/name: {{ include "instana-agent.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,11 @@
|
||||
{{- if .Values.agent.key }}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ template "instana-agent.fullname" . }}-agent-secret
|
||||
labels:
|
||||
{{- include "instana-agent.commonLabels" . | nindent 4 }}
|
||||
type: Opaque
|
||||
data:
|
||||
key: {{ .Values.agent.key | b64enc | quote }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,44 @@
|
||||
{{- if .Values.rbac.create -}}
|
||||
kind: ClusterRole
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: {{ template "instana-agent.fullname" . }}
|
||||
labels:
|
||||
{{- include "instana-agent.commonLabels" . | nindent 4 }}
|
||||
rules:
|
||||
- nonResourceURLs:
|
||||
- "/version"
|
||||
- "/healthz"
|
||||
verbs: ["get"]
|
||||
- apiGroups: ["batch"]
|
||||
resources:
|
||||
- "jobs"
|
||||
verbs: ["get", "list", "watch"]
|
||||
- apiGroups: ["extensions"]
|
||||
resources:
|
||||
- "deployments"
|
||||
- "replicasets"
|
||||
- "ingresses"
|
||||
verbs: ["get", "list", "watch"]
|
||||
- apiGroups: ["apps"]
|
||||
resources:
|
||||
- "deployments"
|
||||
- "replicasets"
|
||||
verbs: ["get", "list", "watch"]
|
||||
- apiGroups: [""]
|
||||
resources:
|
||||
- "namespaces"
|
||||
- "events"
|
||||
- "services"
|
||||
- "endpoints"
|
||||
- "nodes"
|
||||
- "pods"
|
||||
- "replicationcontrollers"
|
||||
- "componentstatuses"
|
||||
- "resourcequotas"
|
||||
verbs: ["get", "list", "watch"]
|
||||
- apiGroups: [""]
|
||||
resources:
|
||||
- "endpoints"
|
||||
verbs: ["create", "update", "patch"]
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,16 @@
|
||||
{{- if .Values.rbac.create -}}
|
||||
kind: ClusterRoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: {{ template "instana-agent.fullname" . }}
|
||||
labels:
|
||||
{{- include "instana-agent.commonLabels" . | nindent 4 }}
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ template "instana-agent.serviceAccountName" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
roleRef:
|
||||
kind: ClusterRole
|
||||
name: {{ template "instana-agent.fullname" . }}
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,40 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ template "instana-agent.fullname" . }}
|
||||
labels:
|
||||
{{- include "instana-agent.commonLabels" . | nindent 4 }}
|
||||
data:
|
||||
configuration.yaml: |
|
||||
# Manual a-priori configuration. Configuration will be only used when the sensor
|
||||
# is actually installed by the agent.
|
||||
# The commented out example values represent example configuration and are not
|
||||
# necessarily defaults. Defaults are usually 'absent' or mentioned separately.
|
||||
# Changes are hot reloaded unless otherwise mentioned.
|
||||
|
||||
# It is possible to create files called 'configuration-abc.yaml' which are
|
||||
# merged with this file in file system order. So 'configuration-cde.yaml' comes
|
||||
# after 'configuration-abc.yaml'. Only nested structures are merged, values are
|
||||
# overwritten by subsequent configurations.
|
||||
|
||||
# Secrets
|
||||
# To filter sensitive data from collection by the agent, all sensors respect
|
||||
# the following secrets configuration. If a key collected by a sensor matches
|
||||
# an entry from the list, the value is redacted.
|
||||
#com.instana.secrets:
|
||||
# matcher: 'contains-ignore-case' # 'contains-ignore-case', 'contains', 'regex'
|
||||
# list:
|
||||
# - 'key'
|
||||
# - 'password'
|
||||
# - 'secret'
|
||||
|
||||
# Host
|
||||
#com.instana.plugin.host:
|
||||
# tags:
|
||||
# - 'dev'
|
||||
# - 'app1'
|
||||
|
||||
# Hardware & Zone
|
||||
#com.instana.plugin.generic.hardware:
|
||||
# enabled: true # disabled by default
|
||||
# availability-zone: 'zone'
|
||||
@@ -0,0 +1,164 @@
|
||||
{{- if .Values.agent.key -}}
|
||||
{{- if .Values.zone.name -}}
|
||||
apiVersion: apps/v1beta2
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
name: {{ template "instana-agent.fullname" . }}
|
||||
labels:
|
||||
{{- include "instana-agent.commonLabels" . | nindent 4 }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "instana-agent.selectorLabels" . | nindent 6 }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "instana-agent.commonLabels" . | nindent 8 }}
|
||||
{{- if .Values.agent.pod.annotations }}
|
||||
annotations:
|
||||
{{- toYaml .Values.agent.pod.annotations | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
serviceAccount: {{ template "instana-agent.serviceAccountName" . }}
|
||||
hostIPC: true
|
||||
hostNetwork: true
|
||||
hostPID: true
|
||||
containers:
|
||||
- name: {{ template "instana-agent.name" . }}
|
||||
image: "{{ .Values.agent.image.name }}:{{ .Values.agent.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.agent.image.pullPolicy }}
|
||||
env:
|
||||
- name: INSTANA_AGENT_LEADER_ELECTOR_PORT
|
||||
value: {{ .Values.agent.leaderElectorPort | quote }}
|
||||
- name: INSTANA_ZONE
|
||||
value: {{ .Values.zone.name | quote }}
|
||||
- name: INSTANA_AGENT_ENDPOINT
|
||||
value: {{ .Values.agent.endpointHost | quote }}
|
||||
- name: INSTANA_AGENT_ENDPOINT_PORT
|
||||
value: {{ .Values.agent.endpointPort | quote }}
|
||||
- name: INSTANA_AGENT_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ template "instana-agent.fullname" . }}-agent-secret
|
||||
key: key
|
||||
{{- if .Values.agent.mode }}
|
||||
- name: INSTANA_AGENT_MODE
|
||||
value: {{ .Values.agent.mode | quote }}
|
||||
{{- end }}
|
||||
{{- if .Values.agent.downloadKey }}
|
||||
- name: INSTANA_DOWNLOAD_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ template "instana-agent.fullname" . }}-download-secret
|
||||
key: key
|
||||
{{- end }}
|
||||
{{- if .Values.agent.proxyHost }}
|
||||
- name: INSTANA_AGENT_PROXY_HOST
|
||||
value: {{ .Values.agent.proxyHost | quote }}
|
||||
{{- end }}
|
||||
{{- if .Values.agent.proxyPort }}
|
||||
- name: INSTANA_AGENT_PROXY_PORT
|
||||
value: {{ .Values.agent.proxyPort | quote }}
|
||||
{{- end }}
|
||||
{{- if .Values.agent.proxyProtocol }}
|
||||
- name: INSTANA_AGENT_PROXY_PROTOCOL
|
||||
value: {{ .Values.agent.proxyProtocol | quote }}
|
||||
{{- end }}
|
||||
{{- if .Values.agent.proxyUser }}
|
||||
- name: INSTANA_AGENT_PROXY_USER
|
||||
value: {{ .Values.agent.proxyUser | quote }}
|
||||
{{- end }}
|
||||
{{- if .Values.agent.proxyPassword }}
|
||||
- name: INSTANA_AGENT_PROXY_PASSWORD
|
||||
value: {{ .Values.agent.proxyPassword | quote }}
|
||||
{{- end }}
|
||||
{{- if .Values.agent.proxyUseDNS }}
|
||||
- name: INSTANA_AGENT_PROXY_USE_DNS
|
||||
value: {{ .Values.agent.proxyUseDNS | quote }}
|
||||
{{- end }}
|
||||
{{- if .Values.agent.listenAddress }}
|
||||
- name: INSTANA_AGENT_HTTP_LISTEN
|
||||
value: {{ .Values.agent.listenAddress | quote }}
|
||||
{{- end }}
|
||||
- name: JAVA_OPTS
|
||||
value: "-Xmx{{ div (default 512 .Values.agent.pod.requests.memory) 3 }}M -XX:+ExitOnOutOfMemoryError"
|
||||
- name: INSTANA_AGENT_POD_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
securityContext:
|
||||
privileged: true
|
||||
volumeMounts:
|
||||
- name: dev
|
||||
mountPath: /dev
|
||||
- name: run
|
||||
mountPath: /var/run/docker.sock
|
||||
- name: sys
|
||||
mountPath: /sys
|
||||
- name: log
|
||||
mountPath: /var/log
|
||||
- name: machine-id
|
||||
mountPath: /etc/machine-id
|
||||
- name: configuration
|
||||
subPath: configuration.yaml
|
||||
mountPath: /root/configuration.yaml
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /status
|
||||
port: 42699
|
||||
initialDelaySeconds: 75
|
||||
periodSeconds: 5
|
||||
resources:
|
||||
requests:
|
||||
memory: "{{ default 512 .Values.agent.pod.requests.memory }}Mi"
|
||||
cpu: {{ default 0.5 .Values.agent.pod.requests.cpu }}
|
||||
limits:
|
||||
memory: "{{ default 512 .Values.agent.pod.limits.memory }}Mi"
|
||||
cpu: {{ default 1.5 .Values.agent.pod.limits.cpu }}
|
||||
ports:
|
||||
- containerPort: 42699
|
||||
- name: {{ template "instana-agent.name" . }}-leader-elector
|
||||
image: instana/leader-elector:0.5.1
|
||||
env:
|
||||
- name: INSTANA_AGENT_POD_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
args: ["--election=instana", "--http=localhost:{{ default 42655 .Values.agent.leaderElectorPort }}", "--id=$(INSTANA_AGENT_POD_NAME)"]
|
||||
resources:
|
||||
requests:
|
||||
cpu: 0.1
|
||||
memory: 64Mi
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /status
|
||||
port: 42699
|
||||
initialDelaySeconds: 75
|
||||
periodSeconds: 5
|
||||
ports:
|
||||
- containerPort: {{ .Values.agent.leaderElectorPort }}
|
||||
{{- if .Values.agent.pod.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml .Values.agent.pod.tolerations | nindent 8 }}
|
||||
{{- end }}
|
||||
volumes:
|
||||
- name: dev
|
||||
hostPath:
|
||||
path: /dev
|
||||
- name: run
|
||||
hostPath:
|
||||
path: /var/run/docker.sock
|
||||
- name: sys
|
||||
hostPath:
|
||||
path: /sys
|
||||
- name: log
|
||||
hostPath:
|
||||
path: /var/log
|
||||
- name: machine-id
|
||||
hostPath:
|
||||
path: /etc/machine-id
|
||||
- name: configuration
|
||||
configMap:
|
||||
name: {{ template "instana-agent.fullname" . }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,11 @@
|
||||
{{- if .Values.agent.downloadKey }}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ template "instana-agent.fullname" . }}-download-secret
|
||||
labels:
|
||||
{{- include "instana-agent.commonLabels" . | nindent 4 }}
|
||||
type: Opaque
|
||||
data:
|
||||
key: {{ .Values.agent.downloadKey | b64enc | quote }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,8 @@
|
||||
{{- if .Values.serviceAccount.create -}}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: {{ template "instana-agent.serviceAccountName" . }}
|
||||
labels:
|
||||
{{- include "instana-agent.commonLabels" . | nindent 4 }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,74 @@
|
||||
# name is the value which will be used as the base resource name for various resources associated with the agent.
|
||||
# name: instana-agent
|
||||
|
||||
zone:
|
||||
# zone.name is the uniquely-identifiable name by which your cluster will be known inside Instana.
|
||||
name: null
|
||||
|
||||
agent:
|
||||
# agent.key is the secret token which your agent uses to authenticate to Instana's servers.
|
||||
key: null
|
||||
# agent.mode is used to set agent mode and it can be APM, INFRASTRUCTURE or AWS
|
||||
# mode: APM
|
||||
# agent.downloadKey is optional, if used it doesn't have to match agent.key
|
||||
# downloadKey: null
|
||||
# agent.listenAddress is the IP address the agent HTTP server will listen to.
|
||||
# listenAddress: *
|
||||
# agent.leaderElectorPort is the port on which the leader elector sidecar is exposed.
|
||||
leaderElectorPort: 42655
|
||||
|
||||
# agent.endpointHost is the hostname of the Instana server your agents will connect to.
|
||||
endpointHost: saas-us-west-2.instana.io
|
||||
# agent.endpointPort is the port number (as a String) of the Instana server your agents will connect to.
|
||||
endpointPort: 443
|
||||
|
||||
image:
|
||||
# agent.image.name is the name of the container image of the Instana agent.
|
||||
name: instana/agent
|
||||
# agent.image.tag is the tag name of the agent container image.
|
||||
tag: 1.0.17
|
||||
# agent.image.pullPolicy specifies when to pull the image container.
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
pod:
|
||||
# agent.pod.annotations are additional annotations to be added to the agent pods.
|
||||
annotations: {}
|
||||
|
||||
# agent.pod.tolerations are tolerations to influence agent pod assignment.
|
||||
# https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
||||
tolerations: []
|
||||
|
||||
requests:
|
||||
# agent.pod.requests.memory is the requested memory allocation in MiB for the agent pods.
|
||||
memory: 512
|
||||
# agent.pod.requests.cpu are the requested CPU units allocation for the agent pods.
|
||||
cpu: 0.5
|
||||
limits:
|
||||
# agent.pod.limits.memory set the memory allocation limits in MiB for the agent pods.
|
||||
memory: 512
|
||||
# agent.pod.limits.cpu sets the CPU units allocation limits for the agent pods.
|
||||
cpu: 1.5
|
||||
|
||||
# agent.proxyHost sets the INSTANA_AGENT_PROXY_HOST environment variable.
|
||||
# proxyHost: null
|
||||
# agent.proxyPort sets the INSTANA_AGENT_PROXY_PORT environment variable.
|
||||
# proxyPort: null
|
||||
# agent.proxyProtocol sets the INSTANA_AGENT_PROXY_PROTOCOL environment variable.
|
||||
# proxyProtocol: null
|
||||
# agent.proxyUser sets the INSTANA_AGENT_PROXY_USER environment variable.
|
||||
# proxyUser: null
|
||||
# agent.proxyPassword sets the INSTANA_AGENT_PROXY_PASSWORD environment variable.
|
||||
# proxyPassword: null
|
||||
# agent.proxyUseDNS sets the INSTANA_AGENT_PROXY_USE_DNS environment variable.
|
||||
# proxyUseDNS: null
|
||||
|
||||
rbac:
|
||||
# Specifies whether RBAC resources should be created
|
||||
create: true
|
||||
|
||||
serviceAccount:
|
||||
# Specifies whether a ServiceAccount should be created
|
||||
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: instana-agent
|
||||
Reference in New Issue
Block a user