rancher-partner-charts/charts/instana/instana-agent/1.0.2900/templates/daemonset.yaml

211 lines
7.6 KiB
YAML

{{- if .Values.agent.key -}}
{{- if or .Values.zone.name .Values.cluster.name -}}
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: {{ template "instana-agent.fullname" . }}
namespace: {{ .Release.Namespace }}
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:
{{- if .Values.agent.pod.nodeSelector }}
nodeSelector:
{{- range $key, $value := .Values.agent.pod.nodeSelector }}
{{ $key }}: {{ $value | quote }}
{{- end }}
{{- end }}
serviceAccountName: {{ template "instana-agent.serviceAccountName" . }}
hostIPC: true
hostNetwork: true
hostPID: true
containers:
- name: instana-agent
image: "{{ .Values.agent.image.name }}:{{ .Values.agent.image.tag }}"
imagePullPolicy: {{ .Values.agent.image.pullPolicy }}
env:
- name: INSTANA_AGENT_LEADER_ELECTOR_PORT
value: {{ .Values.leaderElector.port | quote }}
- name: INSTANA_ZONE
value: {{ .Values.zone.name | quote }}
{{- if .Values.cluster.name }}
- name: INSTANA_KUBERNETES_CLUSTER_NAME
value: {{ .Values.cluster.name | quote }}
{{- end }}
- 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" . }}
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" . }}
key: downloadKey
{{- 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 }}
{{- if .Values.agent.redactKubernetesSecrets }}
- name: INSTANA_KUBERNETES_REDACT_SECRETS
value: {{ .Values.agent.redactKubernetesSecrets | quote }}
{{- end }}
- name: JAVA_OPTS
# Approximately 1/3 of container memory requests to allow for direct-buffer memory usage and JVM overhead
value: "-Xmx{{ div (default 512 .Values.agent.pod.requests.memory) 3 }}M -XX:+ExitOnOutOfMemoryError"
- name: INSTANA_AGENT_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
{{- range $key, $value := .Values.agent.env }}
- name: {{ $key }}
value: {{ $value | quote }}
{{- end }}
securityContext:
privileged: true
volumeMounts:
- name: dev
mountPath: /dev
- name: run
mountPath: /run
- name: var-run
mountPath: /var/run
- name: sys
mountPath: /sys
- name: var-log
mountPath: /var/log
- name: var-lib
mountPath: /var/lib/containers/storage
- name: machine-id
mountPath: /etc/machine-id
- name: configuration
subPath: configuration.yaml
mountPath: /root/configuration.yaml
{{- if .Values.agent.host.repository }}
- name: repo
mountPath: /opt/instana/agent/data/repo
{{- end }}
livenessProbe:
httpGet:
path: /status
port: 42699
initialDelaySeconds: 300
timeoutSeconds: 3
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: instana-agent-leader-elector
image: "{{ .Values.leaderElector.image.name }}:{{ .Values.leaderElector.image.tag }}"
env:
- name: INSTANA_AGENT_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
command:
- "/busybox/sh"
- "-c"
- "sleep 12 && /app/server --election=instana --http=localhost:{{ .Values.leaderElector.port }} --id=$(INSTANA_AGENT_POD_NAME)"
resources:
requests:
cpu: 0.1
memory: 64Mi
livenessProbe:
httpGet: # Leader elector liveness is tied to agent, published on localhost:42699
path: /com.instana.agent.coordination.sidecar/health
port: 42699
initialDelaySeconds: 300
timeoutSeconds: 3
ports:
- containerPort: {{ .Values.leaderElector.port }}
{{- if .Values.agent.pod.tolerations }}
tolerations:
{{- toYaml .Values.agent.pod.tolerations | nindent 8 }}
{{- end }}
volumes:
- name: dev
hostPath:
path: /dev
- name: run
hostPath:
path: /run
- name: var-run
hostPath:
path: /var/run
- name: sys
hostPath:
path: /sys
- name: var-log
hostPath:
path: /var/log
- name: var-lib
hostPath:
path: /var/lib/containers/storage
- name: machine-id
hostPath:
path: /etc/machine-id
- name: configuration
configMap:
name: {{ template "instana-agent.fullname" . }}
{{- if .Values.agent.host.repository }}
- name: repo
hostPath:
path: {{ .Values.agent.host.repository }}
{{- end }}
{{- end -}}
{{- end -}}