Datadog for EKS on Fargate
kind: ServiceAccount | |
apiVersion: v1 | |
metadata: | |
name: datadog-cluster-agent | |
namespace: default | |
--- | |
apiVersion: rbac.authorization.k8s.io/v1 | |
kind: ClusterRole | |
metadata: | |
name: datadog-cluster-agent | |
rules: | |
- apiGroups: | |
- "" | |
resources: | |
- services | |
- events | |
- endpoints | |
- pods | |
- nodes | |
- componentstatuses | |
verbs: | |
- get | |
- list | |
- watch | |
- apiGroups: ["quota.openshift.io"] | |
resources: | |
- clusterresourcequotas | |
verbs: | |
- get | |
- list | |
- apiGroups: | |
- "" | |
resources: | |
- configmaps | |
resourceNames: | |
- datadogtoken # Kubernetes event collection state | |
- datadog-leader-election # Leader election token | |
verbs: | |
- get | |
- update | |
- apiGroups: # To create the leader election token | |
- "" | |
resources: | |
- configmaps | |
verbs: | |
- create | |
- nonResourceURLs: | |
- "/version" | |
- "/healthz" | |
- "/metrics" | |
verbs: | |
- get | |
- apiGroups: # Kubelet connectivity | |
- "" | |
resources: | |
- nodes/metrics | |
- nodes/spec | |
- nodes/proxy | |
- nodes/stats | |
verbs: | |
- get | |
--- | |
apiVersion: rbac.authorization.k8s.io/v1 | |
kind: ClusterRoleBinding | |
metadata: | |
name: datadog-cluster-agent | |
roleRef: | |
apiGroup: rbac.authorization.k8s.io | |
kind: ClusterRole | |
name: datadog-cluster-agent | |
subjects: | |
- kind: ServiceAccount | |
name: datadog-cluster-agent | |
namespace: default | |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: datadog-cluster-agent | |
labels: | |
app: datadog-cluster-agent | |
spec: | |
ports: | |
- port: 5005 # Has to be the same as the one exposed in the DCA. Default is 5005. | |
protocol: TCP | |
selector: | |
app: datadog-cluster-agent | |
--- | |
apiVersion: apps/v1 | |
kind: Deployment | |
metadata: | |
name: datadog-cluster-agent | |
namespace: default | |
spec: | |
selector: | |
matchLabels: | |
app: datadog-cluster-agent | |
template: | |
metadata: | |
labels: | |
app: datadog-cluster-agent | |
name: datadog-agent | |
annotations: | |
ad.datadoghq.com/datadog-cluster-agent.check_names: '["prometheus"]' | |
ad.datadoghq.com/datadog-cluster-agent.init_configs: '[{}]' | |
ad.datadoghq.com/datadog-cluster-agent.instances: '[{"prometheus_url": "http://%%host%%:5000/metrics","namespace": "datadog.cluster_agent","metrics": ["go_goroutines","go_memstats_*","process_*","api_requests","datadog_requests","external_metrics", "cluster_checks_*"]}]' | |
spec: | |
serviceAccountName: datadog-cluster-agent | |
containers: | |
- image: datadog/cluster-agent:latest | |
imagePullPolicy: Always | |
name: datadog-cluster-agent | |
env: | |
- name: DD_API_KEY | |
value: "<YOUR API KEY>" | |
# Optionally reference an APP KEY for the External Metrics Provider. | |
# - name: DD_APP_KEY | |
# value: '<YOUR_APP_KEY>' | |
- name: DD_COLLECT_KUBERNETES_EVENTS | |
value: "true" | |
- name: DD_LEADER_ELECTION | |
value: "true" | |
- name: DD_EXTERNAL_METRICS_PROVIDER_ENABLED | |
value: 'true' | |
- name: DD_CLUSTER_AGENT_AUTH_TOKEN | |
valueFrom: | |
secretKeyRef: | |
name: datadog-auth-token | |
key: token |
apiVersion: rbac.authorization.k8s.io/v1 | |
kind: ClusterRole | |
metadata: | |
name: datadog-agent | |
rules: | |
- apiGroups: | |
- "" | |
resources: | |
- nodes/metrics | |
- nodes/spec | |
- nodes/stats | |
- nodes/proxy | |
- nodes/pods | |
- nodes/healthz | |
verbs: | |
- get | |
--- | |
apiVersion: rbac.authorization.k8s.io/v1 | |
kind: ClusterRoleBinding | |
metadata: | |
name: datadog-agent | |
roleRef: | |
apiGroup: rbac.authorization.k8s.io | |
kind: ClusterRole | |
name: datadog-agent | |
subjects: | |
- kind: ServiceAccount | |
name: datadog-agent | |
namespace: default | |
--- | |
apiVersion: v1 | |
kind: ServiceAccount | |
metadata: | |
name: datadog-agent | |
namespace: default | |
--- | |
apiVersion: apps/v1beta1 | |
kind: Deployment | |
metadata: | |
name: redis | |
namespace: default | |
spec: | |
replicas: 1 | |
template: | |
metadata: | |
labels: | |
app: redis | |
name: redis | |
annotations: | |
ad.datadoghq.com/redis.check_names: '["redisdb"]' | |
ad.datadoghq.com/redis.init_configs: '[{}]' | |
ad.datadoghq.com/redis.instances: | | |
[ | |
{ | |
"host": "%%host%%", | |
"port": "6379" | |
} | |
] | |
spec: | |
serviceAccountName: datadog-agent | |
containers: | |
- name: redis | |
image: redis:latest | |
args: | |
- "redis-server" | |
ports: | |
- containerPort: 6379 | |
- image: datadog/agent:eks-fargate-beta | |
name: datadog-agent | |
env: | |
- name: DD_API_KEY | |
value: "<YOUR API KEY>" | |
- name: DD_TAGS | |
value: "[clustername:test3]" | |
- name: DD_EKS_FARGATE | |
value: "true" | |
- name: DD_KUBERNETES_KUBELET_NODENAME | |
valueFrom: | |
fieldRef: | |
apiVersion: v1 | |
fieldPath: spec.nodeName |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment