add role: bookinfo datadog-agent

This commit is contained in:
Haitao Pan 2023-05-22 13:47:53 +08:00
parent 2ce12a3a50
commit 4a2c4dfc28
11 changed files with 556 additions and 0 deletions

View File

@ -0,0 +1,10 @@
- name: set datadog-agent with helm
hosts: all
user: root
become: yes
gather_facts: yes
tasks:
- include_role:
name: datadog-agent
vars:
group: master

View File

@ -0,0 +1,24 @@
- name: Prep DIR
shell: "mkdir -pv /tmp/bookinfo/"
- name: Prep NameSpace
shell: "kubectl create namespace default || echo true"
- name: Sync bookinfo deploy yaml
template: src=templates/{{ item }} dest=/tmp/bookinfo/{{ item }} owner=root group=root mode=0644 force=yes unsafe_writes=yes
with_items:
- apline-cli.yaml
- bookinfo-productpage-python.yaml
- bookinfo-reviews.yaml
- bookinfo-details.yaml
- bookinfo-ratings.yaml
- name: Setup bookinfo
shell: "kubectl apply -f /tmp{{ item }}"
when: inventory_hostname in groups[group]
with_items:
- apline-cli.yaml
- bookinfo-productpage-python.yaml
- bookinfo-reviews.yaml
- bookinfo-details.yaml
- bookinfo-ratings.yaml

View File

@ -0,0 +1,2 @@
/clickhouse-keeper-k8s.iml
/.idea/

View File

@ -0,0 +1,15 @@
apiVersion: v1
kind: Pod
metadata:
name: alpine
namespace: default
spec:
containers:
- image: alpine:3.13
command:
- /bin/sh
- "-c"
- "sleep 600m"
imagePullPolicy: IfNotPresent
name: alpine
restartPolicy: Always

View File

@ -0,0 +1,52 @@
##################################################################################################
# Details service
##################################################################################################
apiVersion: v1
kind: Service
metadata:
name: details
labels:
app: details
service: details
spec:
ports:
- port: 9080
name: http
selector:
app: details
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: bookinfo-details
labels:
account: details
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: details-v1
labels:
app: details
version: v1
spec:
replicas: 1
selector:
matchLabels:
app: details
version: v1
template:
metadata:
labels:
app: details
version: v1
spec:
serviceAccountName: bookinfo-details
containers:
- name: details
image: docker.io/istio/examples-bookinfo-details-v1:1.17.0
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9080
securityContext:
runAsUser: 1000

View File

@ -0,0 +1,90 @@
##################################################################################################
# Productpage services
##################################################################################################
apiVersion: v1
kind: Service
metadata:
name: productpage
labels:
app: productpage
service: productpage
spec:
ports:
- port: 9080
name: http
selector:
app: productpage
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: bookinfo-productpage
labels:
account: productpage
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: productpage-v1
labels:
tags.datadoghq.com/env: "dev"
tags.datadoghq.com/service: "productpage"
tags.datadoghq.com/version: "v1"
app: productpage
version: v1
spec:
replicas: 1
selector:
matchLabels:
app: productpage
version: v1
template:
metadata:
labels:
tags.datadoghq.com/env: "dev"
tags.datadoghq.com/service: "productpage"
tags.datadoghq.com/version: "v1"
admission.datadoghq.com/enabled: "true"
app: productpage
version: v1
annotations:
admission.datadoghq.com/python-lib.version: v1.12.0
spec:
serviceAccountName: bookinfo-productpage
containers:
- name: productpage
image: docker.io/istio/examples-bookinfo-productpage-v1:1.17.0
imagePullPolicy: IfNotPresent
env:
- name: DATADOG_HOST
value: datadog-agent
- name: DD_LOGS_INJECTION
value: "true"
- name: DD_AGENT_HOST
value: datadog-agent
- name: DD_TRACE_AGENT_PORT
value: "8126"
- name: DD_TRACE_SAMPLE_RATE
value: "1"
- name: DD_ENV
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/env']
- name: DD_SERVICE
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/service']
- name: DD_VERSION
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/version']
ports:
- containerPort: 9080
volumeMounts:
- name: tmp
mountPath: /tmp
securityContext:
runAsUser: 1000
volumes:
- name: tmp
emptyDir: {}

View File

@ -0,0 +1,84 @@
##################################################################################################
# Ratings service
##################################################################################################
apiVersion: v1
kind: Service
metadata:
name: ratings
labels:
app: ratings
service: ratings
spec:
ports:
- port: 9080
name: http
selector:
app: ratings
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: bookinfo-ratings
labels:
account: ratings
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: ratings-v1
labels:
tags.datadoghq.com/env: "dev"
tags.datadoghq.com/service: "ratings"
tags.datadoghq.com/version: "v1"
app: ratings
version: v1
spec:
replicas: 1
selector:
matchLabels:
app: ratings
version: v1
template:
metadata:
labels:
tags.datadoghq.com/env: "dev"
tags.datadoghq.com/service: "ratings"
tags.datadoghq.com/version: "v1"
admission.datadoghq.com/enabled: "true"
app: ratings
version: v1
annotations:
admission.datadoghq.com/js-lib.version: v3.17.1
spec:
serviceAccountName: bookinfo-ratings
containers:
- name: ratings
image: docker.io/istio/examples-bookinfo-ratings-v1:1.17.0
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9080
securityContext:
runAsUser: 1000
env:
- name: DD_LOGS_INJECTION
value: "true"
- name: DD_AGENT_HOST
value: datadog-agent
- name: DD_TRACE_AGENT_PORT
value: "8126"
- name: DD_TRACE_SAMPLE_RATE
value: "1"
- name: DATADOG_HOST
value: datadog-agent
- name: DD_ENV
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/env']
- name: DD_SERVICE
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/service']
- name: DD_VERSION
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/version']

View File

@ -0,0 +1,242 @@
##################################################################################################
# Reviews service
##################################################################################################
apiVersion: v1
kind: Service
metadata:
name: reviews
labels:
app: reviews
service: reviews
spec:
ports:
- port: 9080
name: http
selector:
app: reviews
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: bookinfo-reviews
labels:
account: reviews
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: reviews-v1
labels:
tags.datadoghq.com/env: "dev"
tags.datadoghq.com/service: "reviews"
tags.datadoghq.com/version: "v1"
app: reviews
version: v1
spec:
replicas: 1
selector:
matchLabels:
app: reviews
version: v1
template:
metadata:
labels:
tags.datadoghq.com/env: "dev"
tags.datadoghq.com/service: "reviews"
tags.datadoghq.com/version: "v1"
admission.datadoghq.com/enabled: "true"
app: reviews
version: v1
annotations:
admission.datadoghq.com/java-lib.version: v1.12.1
spec:
serviceAccountName: bookinfo-reviews
containers:
- name: reviews
image: docker.io/istio/examples-bookinfo-reviews-v1:1.17.0
imagePullPolicy: IfNotPresent
env:
- name: LOG_DIR
value: "/tmp/logs"
- name: DD_LOGS_INJECTION
value: "true"
- name: DD_AGENT_HOST
value: datadog-agent
- name: DD_TRACE_AGENT_PORT
value: "8126"
- name: DD_TRACE_SAMPLE_RATE
value: "1"
- name: DATADOG_HOST
value: datadog-agent
- name: DD_ENV
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/env']
- name: DD_SERVICE
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/service']
- name: DD_VERSION
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/version']
ports:
- containerPort: 9080
volumeMounts:
- name: tmp
mountPath: /tmp
- name: wlp-output
mountPath: /opt/ibm/wlp/output
securityContext:
runAsUser: 1000
volumes:
- name: wlp-output
emptyDir: {}
- name: tmp
emptyDir: {}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: reviews-v2
labels:
tags.datadoghq.com/env: "dev"
tags.datadoghq.com/service: "reviews"
tags.datadoghq.com/version: "v2"
app: reviews
version: v2
spec:
replicas: 1
selector:
matchLabels:
app: reviews
version: v2
template:
metadata:
labels:
tags.datadoghq.com/env: "dev"
tags.datadoghq.com/service: "reviews"
tags.datadoghq.com/version: "v2"
admission.datadoghq.com/enabled: "true"
app: reviews
version: v2
annotations:
admission.datadoghq.com/java-lib.version: v1.12.1
spec:
serviceAccountName: bookinfo-reviews
containers:
- name: reviews
image: docker.io/istio/examples-bookinfo-reviews-v2:1.17.0
imagePullPolicy: IfNotPresent
env:
- name: DD_LOGS_INJECTION
value: "true"
- name: LOG_DIR
value: "/tmp/logs"
- name: DD_AGENT_HOST
value: datadog-agent
- name: DD_TRACE_AGENT_PORT
value: "8126"
- name: DD_TRACE_SAMPLE_RATE
value: "1"
- name: DATADOG_HOST
value: datadog-agent
- name: DD_ENV
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/env']
- name: DD_SERVICE
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/service']
- name: DD_VERSION
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/version']
ports:
- containerPort: 9080
volumeMounts:
- name: tmp
mountPath: /tmp
- name: wlp-output
mountPath: /opt/ibm/wlp/output
securityContext:
runAsUser: 1000
volumes:
- name: wlp-output
emptyDir: {}
- name: tmp
emptyDir: {}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: reviews-v3
labels:
tags.datadoghq.com/env: "dev"
tags.datadoghq.com/service: "reviews"
tags.datadoghq.com/version: "v3"
app: reviews
version: v3
spec:
replicas: 1
selector:
matchLabels:
app: reviews
version: v3
template:
metadata:
labels:
tags.datadoghq.com/env: "dev"
tags.datadoghq.com/service: "reviews"
tags.datadoghq.com/version: "v3"
admission.datadoghq.com/enabled: "true"
app: reviews
version: v3
annotations:
admission.datadoghq.com/java-lib.version: v1.12.1
spec:
serviceAccountName: bookinfo-reviews
containers:
- name: reviews
image: docker.io/istio/examples-bookinfo-reviews-v3:1.17.0
imagePullPolicy: IfNotPresent
env:
- name: DD_LOGS_INJECTION
value: "true"
- name: LOG_DIR
value: "/tmp/logs"
- name: DD_AGENT_HOST
value: datadog-agent
- name: DD_TRACE_AGENT_PORT
value: "8126"
- name: DATADOG_HOST
value: datadog-agent
- name: DD_TRACE_SAMPLE_RATE
value: "1"
- name: DD_ENV
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/env']
- name: DD_SERVICE
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/service']
- name: DD_VERSION
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/version']
ports:
- containerPort: 9080
volumeMounts:
- name: tmp
mountPath: /tmp
- name: wlp-output
mountPath: /opt/ibm/wlp/output
securityContext:
runAsUser: 1000
volumes:
- name: wlp-output
emptyDir: {}
- name: tmp
emptyDir: {}

View File

@ -0,0 +1,32 @@
#!/bin/bash
export token=$1
helm repo add datadog https://helm.datadoghq.com
helm repo update
cat > datadog-values.yaml << EOF
targetSystem: "linux"
registry: artifact.onwalk.net/public/datadog
clusterAgent:
enabled: true
admissionController:
enabled: true
mutateUnlabelled: true
datadog:
site: 'datadoghq.eu'
apiKeyExistingSecret: datadog-agent
logs:
enabled: true
containerCollectAll: true
apm:
portEnabled: true
networkMonitoring:
enabled: true
env:
- name: DD_APM_FEATURES
value: 'enale_cid_stats'
EOF
kubectl create namespace datadog || echo true
kubectl delete secret datadog-agent --namespace=datadog || echo true
kubectl create secret generic datadog-agent --from-literal api-key=$token --namespace=datadog
helm upgrade --install datadog-agent -n datadog --create-namespace -f datadog-values.yaml datadog/datadog

View File

@ -0,0 +1,2 @@
dependencies:
- role: common

View File

@ -0,0 +1,3 @@
- name: Setup Datadog Agent
script: files/setup.sh {{ datadog_token }}
when: inventory_hostname in groups[group]