otelcollector/deploy/addon-chart/azure-monitor-metrics-addon/templates/ama-metrics-targetallocator.yaml (239 lines of code) (raw):

{{- $arcExtensionSettings := include "arc-extension-settings" . | fromYaml }} {{- if $arcExtensionSettings.operatorEnabled }} apiVersion: apps/v1 kind: Deployment metadata: labels: component: ama-metrics-operator-targets kubernetes.azure.com/managedby: aks name: ama-metrics-operator-targets namespace: kube-system spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 2 selector: matchLabels: rsName: ama-metrics-operator-targets kubernetes.azure.com/managedby: aks strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: labels: rsName: ama-metrics-operator-targets kubernetes.azure.com/managedby: aks annotations: agentVersion: "0.0.0.1" schema-versions: "v1" cluster-autoscaler.kubernetes.io/safe-to-evict: "true" spec: priorityClassName: system-cluster-critical containers: - name: targetallocator args: - --enable-prometheus-cr-watcher image: "{{ .Values.AzureMonitorMetrics.ImageRegistry }}{{ .Values.AzureMonitorMetrics.ImageRepository }}:{{ .Values.AzureMonitorMetrics.ImageTagTargetAllocator }}" imagePullPolicy: IfNotPresent resources: limits: cpu: {{ .Values.AzureMonitorMetrics.TargetAllocatorCPULimit }} memory: {{ .Values.AzureMonitorMetrics.TargetAllocatorMemoryLimit }} requests: cpu: {{ .Values.AzureMonitorMetrics.TargetAllocatorCPURequest }} memory: {{ .Values.AzureMonitorMetrics.TargetAllocatorMemoryRequest }} env: - name: OTELCOL_NAMESPACE value: "kube-system" - name: NODE_IP valueFrom: fieldRef: fieldPath: status.hostIP - name: NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName - name: CLUSTER {{- if $arcExtensionSettings.isArcExtension }} value: "{{ $arcExtensionSettings.resourceId }}" {{- else }} value: "{{ .Values.global.commonGlobals.Customer.AzureResourceID }}" {{- end }} - name: PROMETHEUS_OPERATOR_V1_CUSTOM_GROUP value: "azmonitoring.coreos.com" - name: AGENT_VERSION value: {{ .Values.AzureMonitorMetrics.ImageTagTargetAllocator }} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File securityContext: capabilities: drop: - ALL volumeMounts: - mountPath: /conf name: ta-config-shared livenessProbe: httpGet: path: /health-ta port: 8081 initialDelaySeconds: 60 timeoutSeconds: 5 periodSeconds: 15 failureThreshold: 3 - name: config-reader image: "{{ .Values.AzureMonitorMetrics.ImageRegistry }}{{ .Values.AzureMonitorMetrics.ImageRepository }}:{{ .Values.AzureMonitorMetrics.ImageTagCfgReader }}" imagePullPolicy: IfNotPresent resources: limits: cpu: {{ .Values.AzureMonitorMetrics.CfgReaderCPULimit }} memory: {{ .Values.AzureMonitorMetrics.CfgReaderMemoryLimit }} requests: cpu: {{ .Values.AzureMonitorMetrics.CfgReaderCPURequest}} memory: {{ .Values.AzureMonitorMetrics.CfgReaderMemoryRequest }} env: - name: CLUSTER {{- if $arcExtensionSettings.isArcExtension }} value: "{{ $arcExtensionSettings.resourceId }}" {{- else }} value: "{{ .Values.global.commonGlobals.Customer.AzureResourceID }}" {{- end }} - name: AKSREGION {{- if $arcExtensionSettings.isArcExtension }} value: "{{ .Values.Azure.Cluster.Region }}" {{- else }} value: "{{ $arcExtensionSettings.region}}" {{- end }} - name: NODE_IP valueFrom: fieldRef: fieldPath: status.hostIP - name: NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: POD_NAMESPACE value: "kube-system" - name: CONTAINER_TYPE value: "ConfigReaderSidecar" - name: MODE value: "advanced" # only supported mode is 'advanced', any other value will be the default/non-advance mode - name: MAC value: "true" - name: AZMON_COLLECT_ENV value: "false" - name: KUBE_STATE_NAME value: ama-metrics-ksm - name: NODE_EXPORTER_NAME value: "" # Replace this with the node exporter shipped out of box with AKS - name: NODE_EXPORTER_TARGETPORT {{- if $arcExtensionSettings.isArcExtension }} value: "{{ $arcExtensionSettings.nodeExporterTargetPort }}" {{- else }} value: "19100" {{- end }} - name: customEnvironment {{- if .Values.AzureMonitorMetrics.isArcACluster }} value: "arcautonomous" {{- else if $arcExtensionSettings.isArcExtension }} value: "{{ $arcExtensionSettings.cloudEnvironment }}" {{- else }} value: "{{ lower .Values.global.commonGlobals.CloudEnvironment }}" {{- end }} - name: WINMODE value: "" # WINDOWS: only supported mode is 'advanced', any other value will be the default/non-advance mode - name: MINIMAL_INGESTION_PROFILE value: "true" # only supported value is the string "true" - name: AGENT_VERSION value: {{ .Values.AzureMonitorMetrics.ImageTagCfgReader }} volumeMounts: - mountPath: /etc/config/settings name: settings-vol-config readOnly: true - mountPath: /etc/prometheus/certs name: ama-metrics-tls-secret-volume readOnly: true - mountPath: /etc/config/settings/prometheus name: prometheus-config-vol readOnly: true - mountPath: /ta-configuration name: ta-config-shared securityContext: capabilities: drop: - ALL livenessProbe: httpGet: path: /health port: 8081 initialDelaySeconds: 60 periodSeconds: 15 timeoutSeconds: 5 failureThreshold: 3 dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler serviceAccount: ama-metrics-serviceaccount serviceAccountName: ama-metrics-serviceaccount terminationGracePeriodSeconds: 30 affinity: nodeAffinity: # affinity to schedule on to ephemeral os node if its available preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 preference: matchExpressions: - key: kubernetes.azure.com/mode operator: In values: - system - weight: 50 preference: matchExpressions: - key: azuremonitor/metrics.replica.preferred operator: In values: - "true" requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/os operator: In values: - linux - key: type operator: NotIn values: - virtual-kubelet {{- if not $arcExtensionSettings.isArcExtension }} - key: kubernetes.azure.com/cluster operator: Exists {{- end }} tolerations: - key: CriticalAddonsOnly operator: Exists {{- if eq (default .Values.tolerationsOnlyForControlPlane false) false }} - operator: "Exists" effect: "PreferNoSchedule" {{- end }} volumes: - name: settings-vol-config configMap: name: ama-metrics-settings-configmap optional: true - name: prometheus-config-vol configMap: name: ama-metrics-prometheus-config optional: true - name: ama-metrics-tls-secret-volume secret: secretName: ama-metrics-mtls-secret optional: true - name: ta-config-shared emptyDir: {} {{- end }}