Skip to content

Commit 993798a

Browse files
authoredAug 6, 2024··
Merge pull request #61 from DataDog/mackjmr/add-converged-agent-staging
Add converged agent deployment
2 parents 25e5477 + e4341f8 commit 993798a

File tree

3 files changed

+219
-0
lines changed

3 files changed

+219
-0
lines changed
 

‎.gitlab-ci.yml

+27
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,21 @@ staging-deploy-dd-ingest-demo-eks:
297297
ORDERPRODUCER_DEPLOYMENT: deployment-staging.yaml
298298
REGISTRY: $BUILD_SANDBOX_REGISTRY
299299

300+
# Demo env:converged-agent-staging
301+
staging-deploy-converged-agent-demo-eks:
302+
!!merge <<: *staging-deploy
303+
variables:
304+
NAMESPACE: converged-agent-staging
305+
VALUES:
306+
NODE_GROUP: ng-8
307+
SCRIPT: ./ci/scripts/ci-deploy-demo.sh
308+
CLUSTER_NAME: dd-otel
309+
CLUSTER_ARN: "arn:aws:eks:us-east-1:601427279990:cluster/dd-otel"
310+
REGION: us-east-1
311+
ZOOKEEPER_DEPLOYMENT: deployment-staging.yaml
312+
ORDERPRODUCER_DEPLOYMENT: deployment-staging.yaml
313+
REGISTRY: $BUILD_SANDBOX_REGISTRY
314+
300315
# Agent env:otel-ingest-staging
301316
staging-deploy-otel-ingest-agent-eks:
302317
!!merge <<: *staging-deploy
@@ -320,3 +335,15 @@ staging-deploy-dd-ingest-agent-eks:
320335
REGION: us-east-1
321336
RELEASE_NAME: datadog-agent-dd
322337
NODE_GROUP: ng-7
338+
339+
# Agent env:converged-agent-staging
340+
staging-deploy-converged-agent-staging-eks:
341+
!!merge <<: *staging-deploy
342+
variables:
343+
NAMESPACE: converged-agent-staging
344+
SCRIPT: ./ci/scripts/ci-deploy-converged-agent.sh
345+
CLUSTER_NAME: dd-otel
346+
CLUSTER_ARN: "arn:aws:eks:us-east-1:601427279990:cluster/dd-otel"
347+
REGION: us-east-1
348+
RELEASE_NAME: converged-agent
349+
NODE_GROUP: ng-8

‎ci/converged-agent-values/values.yaml

+155
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
registry: docker.io/datadog
2+
agents:
3+
image:
4+
repository: datadog/agent-dev
5+
tag: nightly-ot-beta-main-jmx
6+
datadog:
7+
apiKeyExistingSecret: datadog-secrets
8+
otelCollector:
9+
ports: [{"containerPort":"4317", "hostPort":"4317" ,"name":"otel-grpc"},{"containerPort":"4318", "hostPort":"4318" ,"name":"otel-http"}]
10+
enabled: true
11+
config: |
12+
receivers:
13+
otlp:
14+
protocols:
15+
grpc:
16+
endpoint: 0.0.0.0:4317
17+
http:
18+
endpoint: 0.0.0.0:4318
19+
exporters:
20+
debug:
21+
verbosity: detailed
22+
datadog:
23+
host_metadata:
24+
tags: ['env:${env:OTEL_K8S_NAMESPACE}']
25+
metrics:
26+
resource_attributes_as_tags: true
27+
histograms:
28+
mode: counters
29+
send_count_sum_metrics: true
30+
traces:
31+
span_name_as_resource_name: true
32+
compute_stats_by_span_kind: true
33+
peer_service_aggregation: true
34+
trace_buffer: 1000
35+
api:
36+
key: "$DD_API_KEY"
37+
processors:
38+
resourcedetection:
39+
# ensures host.name and other important resource tags
40+
# get picked up
41+
detectors: [env, gcp, ecs, ec2, azure, system]
42+
timeout: 5s
43+
override: false
44+
system:
45+
# Enable optional system attributes
46+
resource_attributes:
47+
os.type:
48+
enabled: true
49+
os.description:
50+
enabled: true
51+
host.ip:
52+
enabled: true
53+
host.mac:
54+
enabled: true
55+
host.arch:
56+
enabled: true
57+
host.cpu.vendor.id:
58+
enabled: true
59+
host.cpu.model.name:
60+
enabled: true
61+
host.cpu.family:
62+
enabled: true
63+
host.cpu.model.id:
64+
enabled: true
65+
host.cpu.stepping:
66+
enabled: true
67+
host.cpu.cache.l2.size:
68+
enabled: true
69+
host.id:
70+
enabled: false
71+
# adds various tags related to k8s
72+
# adds various tags related to k8s
73+
k8sattributes:
74+
passthrough: false
75+
auth_type: "serviceAccount"
76+
pod_association:
77+
- sources:
78+
- from: resource_attribute
79+
name: k8s.pod.ip
80+
extract:
81+
metadata:
82+
- k8s.pod.name
83+
- k8s.pod.uid
84+
- k8s.deployment.name
85+
- k8s.node.name
86+
- k8s.namespace.name
87+
- k8s.pod.start_time
88+
- k8s.replicaset.name
89+
- k8s.replicaset.uid
90+
- k8s.daemonset.name
91+
- k8s.daemonset.uid
92+
- k8s.job.name
93+
- k8s.job.uid
94+
- k8s.cronjob.name
95+
- k8s.statefulset.name
96+
- k8s.statefulset.uid
97+
- container.image.name
98+
- container.image.tag
99+
- container.id
100+
- k8s.container.name
101+
- container.image.name
102+
- container.image.tag
103+
- container.id
104+
labels:
105+
- tag_name: kube_app_name
106+
key: app.kubernetes.io/name
107+
from: pod
108+
- tag_name: kube_app_instance
109+
key: app.kubernetes.io/instance
110+
from: pod
111+
- tag_name: kube_app_version
112+
key: app.kubernetes.io/version
113+
from: pod
114+
- tag_name: kube_app_component
115+
key: app.kubernetes.io/component
116+
from: pod
117+
- tag_name: kube_app_part_of
118+
key: app.kubernetes.io/part-of
119+
from: pod
120+
- tag_name: kube_app_managed_by
121+
key: app.kubernetes.io/managed-by
122+
from: pod
123+
batch:
124+
send_batch_max_size: 1000
125+
send_batch_size: 100
126+
timeout: 10s
127+
probabilistic_sampler:
128+
hash_seed: 22
129+
sampling_percentage: 15.3
130+
connectors:
131+
datadog/connector:
132+
traces:
133+
span_name_as_resource_name: true
134+
service:
135+
telemetry:
136+
logs:
137+
encoding: "json"
138+
initial_fields:
139+
- service: "converged-agent"
140+
pipelines:
141+
metrics:
142+
receivers: [otlp, datadog/connector]
143+
processors: [resourcedetection, k8sattributes, batch]
144+
exporters: [datadog]
145+
traces:
146+
receivers: [otlp]
147+
processors: [resourcedetection, k8sattributes, batch]
148+
exporters: [datadog/connector, debug]
149+
traces/sampled:
150+
receivers: [datadog/connector]
151+
processors: [probabilistic_sampler, batch]
152+
exporters: [datadog]
153+
logs:
154+
processors: [resourcedetection, k8sattributes, batch]
155+
exporters: [datadog]
+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/usr/bin/env bash
2+
3+
# Copyright The OpenTelemetry Authors
4+
# SPDX-License-Identifier: Apache-2.0
5+
6+
# This script is used to deploy collector on demo account cluster
7+
8+
set -euo pipefail
9+
IFS=$'\n\t'
10+
11+
clusterName=$CLUSTER_NAME
12+
clusterArn=$CLUSTER_ARN
13+
region=$REGION
14+
namespace=$NAMESPACE
15+
releaseName=$RELEASE_NAME
16+
nodegroup=$NODE_GROUP
17+
18+
install_agent() {
19+
# if repo already exists, helm 3+ will skip
20+
helm repo add datadog https://helm.datadoghq.com
21+
22+
# --install will run `helm install` if not already present.
23+
helm_cmd="helm --debug upgrade "${releaseName}" -n "${namespace}" datadog/datadog --install \
24+
-f ./ci/converged-agent-values/values.yaml \
25+
--set datadog.tags=env:"${namespace}" \
26+
--set agents.nodeSelector.\"alpha\\.eksctl\\.io/nodegroup-name\"=${nodegroup} \
27+
--set agents.image.doNotCheckTag=true"
28+
29+
eval $helm_cmd
30+
}
31+
32+
###########################################################################################################
33+
34+
aws eks --region "${region}" update-kubeconfig --name "${clusterName}"
35+
kubectl config use-context "${clusterArn}"
36+
37+
install_agent

0 commit comments

Comments
 (0)
Please sign in to comment.