otelcollector/deploy/addon-chart/ccp-metrics-plugin/templates/ama-metrics-deployment.yaml (232 lines of code) (raw):

apiVersion: apps/v1 kind: Deployment metadata: name: ama-metrics-ccp namespace: {{ .Values.global.commonGlobals.Customer.Namespace }} labels: component: ama-metrics-ccp spec: replicas: 1 revisionHistoryLimit: 2 paused: false selector: matchLabels: rsName: ama-metrics-ccp strategy: type: RollingUpdate template: metadata: labels: rsName: ama-metrics-ccp annotations: agentVersion: "0.0.0.1" schema-versions: "v1" cluster-autoscaler.kubernetes.io/safe-to-evict: "true" spec: serviceAccountName: ama-metrics-ccp-sa containers: - name: prometheus-collector image: "{{ .Values.AzureMonitorMetrics.ImageRepository }}:{{ .Values.AzureMonitorMetrics.ImageTag }}" imagePullPolicy: IfNotPresent resources: limits: cpu: 1 memory: 1Gi requests: cpu: 150m memory: 500Mi env: - name: CLUSTER value: "{{ .Values.global.commonGlobals.Customer.AzureResourceID }}" - name: AKSREGION value: "{{ .Values.global.commonGlobals.Region }}" - name: MAC value: "true" - name: CCP_METRICS_ENABLED value: "true" - name: AZMON_COLLECT_ENV value: "false" - name: customEnvironment value: "{{ lower .Values.global.commonGlobals.CloudEnvironment }}" - name: OMS_TLD value: "opinsights.azure.com" - name: CONTROLLER_TYPE value: "ReplicaSet" - 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 valueFrom: fieldRef: fieldPath: metadata.namespace - name: CONTAINER_CPU_LIMIT valueFrom: resourceFieldRef: containerName: prometheus-collector resource: limits.cpu divisor: 1m - name: CONTAINER_MEMORY_LIMIT valueFrom: resourceFieldRef: containerName: prometheus-collector resource: limits.memory divisor: 1Mi - name: NODE_EXPORTER_NAME value: "" # Replace this with the node exporter shipped out of box with AKS - name: NODE_EXPORTER_TARGETPORT value: "19100" - name: NODE_EXPORTER_VERSION value: "v1.5.0" # Replace this with the version shipped by default - name: AGENT_VERSION value: {{ .Values.AzureMonitorMetrics.ImageTag }} - name: MODE value: "advanced" # only supported mode is 'advanced', any other value will be the default/non-advance mode - 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" # false scrapes all metrics securityContext: privileged: false volumeMounts: - mountPath: /etc/config/settings name: settings-vol-config - mountPath: /etc/config/settings/prometheus name: prometheus-config-vol readOnly: true - mountPath: /anchors/mariner name: anchors-mariner readOnly: true - mountPath: /anchors/ubuntu name: anchors-ubuntu readOnly: true - mountPath: /etc/kubernetes/secrets name: kubernetes-secrets readOnly: true livenessProbe: httpGet: path: /health port: 8080 initialDelaySeconds: 60 periodSeconds: 15 timeoutSeconds: 5 failureThreshold: 3 - name: configmap-watcher image: mcr.microsoft.com/aks/hcp/configmap-watcher:master.20231031-bdfc08a4 command: - /configmap-watcher args: - --configmap-namespace=kube-system - --configmap-name=ama-metrics-settings-configmap - --kubeconfig-file=/etc/kubernetes/kubeconfig/kubeconfig.yaml - --settings-volume=/etc/config/settings resources: limits: cpu: 20m memory: 40Mi requests: cpu: 10m memory: 20Mi volumeMounts: - name: kubeconfig readOnly: true mountPath: /etc/kubernetes/kubeconfig - name: settings-vol-config mountPath: /etc/config/settings - name: addon-token-adapter command: - /addon-token-adapter args: - --secret-namespace=kube-system - --secret-name=aad-msi-auth-token - --token-server-listening-port=7777 - --health-server-listening-port=9999 image: "mcr.microsoft.com/aks/msi/addon-token-adapter:master.230804.1" imagePullPolicy: IfNotPresent env: - name: AZMON_COLLECT_ENV value: "false" livenessProbe: httpGet: path: /healthz port: 9999 initialDelaySeconds: 10 periodSeconds: 60 resources: limits: cpu: 500m memory: 500Mi requests: cpu: 20m memory: 30Mi securityContext: capabilities: drop: - ALL add: - NET_ADMIN - NET_RAW 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 - key: kubernetes.azure.com/cluster operator: Exists volumes: - name: settings-vol-config emptyDir: { } - name: prometheus-config-vol configMap: name: ama-metrics-prometheus-config optional: true - name: anchors-mariner hostPath: path: /etc/pki/ca-trust/source/anchors/ type: DirectoryOrCreate - name: anchors-ubuntu hostPath: path: /usr/local/share/ca-certificates/ type: DirectoryOrCreate - name: kubeconfig secret: secretName: kubeconfig-file - name: kubernetes-secrets projected: defaultMode: 420 sources: - secret: name: kube-apiserver-ssl - secret: name: etcd-client-tls