apiVersion: v1 kind: Namespace metadata: name: aws-otel-eks labels: name: aws-otel-eks --- apiVersion: v1 kind: ServiceAccount metadata: name: aws-otel-collector namespace: aws-otel-eks --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: otel-prometheus-role rules: - apiGroups: - "" resources: - nodes - nodes/proxy - services - endpoints - pods verbs: - get - list - watch - apiGroups: - extensions resources: - ingresses verbs: - get - list - watch - nonResourceURLs: - /metrics verbs: - get --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: otel-prometheus-role-binding roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: otel-prometheus-role subjects: - kind: ServiceAccount name: aws-otel-collector namespace: aws-otel-eks --- apiVersion: apps/v1 kind: Deployment metadata: name: aws-otel-collector namespace: aws-otel-eks labels: name: aws-otel-collector spec: replicas: 1 selector: matchLabels: name: aws-otel-collector template: metadata: labels: name: aws-otel-collector spec: serviceAccountName: aws-otel-collector containers: - name: aws-otel-collector image: public.ecr.aws/aws-observability/aws-otel-collector:latest command: [ "/awscollector" ] args: [ "--config", "/etc/eks/prometheus/config-all.yaml" ] env: - name: AWS_REGION value: {{region}} - name: OTEL_RESOURCE_ATTRIBUTES value: ClusterName={{cluster_name}} imagePullPolicy: Always resources: limits: cpu: 256m memory: 512Mi requests: cpu: 32m memory: 24Mi