Skip to content

Commit 1932047

Browse files
jcpunkrdementi
authored andcommitted
Provide example kubernetes manifest
Signed-off-by: Pat Riehecky <riehecky@fnal.gov>
1 parent d352502 commit 1932047

File tree

1 file changed

+164
-0
lines changed

1 file changed

+164
-0
lines changed

pcm-kubernetes.yaml

Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,164 @@
1+
---
2+
apiVersion: v1
3+
kind: Namespace
4+
metadata:
5+
name: intel-pcm
6+
labels: # uses host features by design privileges required
7+
pod-security.kubernetes.io/enforce: privileged
8+
pod-security.kubernetes.io/enforce-version: latest
9+
pod-security.kubernetes.io/audit: privileged
10+
pod-security.kubernetes.io/audit-version: latest
11+
pod-security.kubernetes.io/warn: privileged
12+
pod-security.kubernetes.io/warn-version: latest
13+
---
14+
apiVersion: apps/v1
15+
kind: DaemonSet
16+
metadata:
17+
labels:
18+
app.kubernetes.io/instance: pcm
19+
app.kubernetes.io/name: intel-pcm
20+
app.kubernetes.io/part-of: intel-pcm
21+
name: intel-pcm
22+
namespace: intel-pcm
23+
spec:
24+
selector:
25+
matchLabels:
26+
app.kubernetes.io/component: pcm-sensor-server
27+
app.kubernetes.io/instance: pcm
28+
app.kubernetes.io/name: intel-pcm
29+
template:
30+
metadata:
31+
labels:
32+
app.kubernetes.io/component: pcm-sensor-server
33+
app.kubernetes.io/instance: pcm
34+
app.kubernetes.io/name: intel-pcm
35+
app.kubernetes.io/part-of: intel-pcm
36+
jobLabel: pcm
37+
spec:
38+
automountServiceAccountToken: false
39+
containers:
40+
- image: ghcr.io/opcm/pcm:latest
41+
env:
42+
- name: PCM_NO_MSR
43+
value: "1"
44+
- name: PCM_IGNORE_ARCH_PERFMON
45+
value: "0"
46+
- name: PCM_NO_PERF
47+
value: "0"
48+
livenessProbe:
49+
failureThreshold: 3
50+
httpGet:
51+
path: /
52+
port: 9738
53+
scheme: HTTP
54+
periodSeconds: 10
55+
successThreshold: 1
56+
timeoutSeconds: 1
57+
name: intel-pcm
58+
ports:
59+
- containerPort: 9738
60+
hostPort: 9738
61+
name: pcm-metrics
62+
protocol: TCP
63+
readinessProbe:
64+
failureThreshold: 3
65+
httpGet:
66+
path: /
67+
port: 9738
68+
scheme: HTTP
69+
periodSeconds: 10
70+
successThreshold: 1
71+
timeoutSeconds: 1
72+
securityContext:
73+
privileged: false
74+
runAsNonRoot: false
75+
runAsUser: 0
76+
readOnlyRootFilesystem: true
77+
capabilities:
78+
add:
79+
- SYS_ADMIN
80+
- SYS_RAWIO
81+
seccompProfile:
82+
type: RuntimeDefault
83+
volumeMounts:
84+
- mountPath: /dev/cpu
85+
name: dev-cpu
86+
readOnly: true
87+
- mountPath: /dev/mem
88+
name: dev-mem
89+
readOnly: true
90+
- mountPath: /pcm/proc/bus/pci
91+
name: proc-pci
92+
readOnly: true
93+
- mountPath: /pcm/sys/firmware/acpi/tables/MCFG
94+
name: sys-acpi
95+
readOnly: true
96+
- mountPath: /pcm/proc/sys/kernel/nmi_watchdog
97+
name: nmi-watchdog
98+
readOnly: true
99+
- mountPath: /sys
100+
name: sysfs
101+
readOnly: false
102+
nodeSelector:
103+
kubernetes.io/os: linux
104+
feature.node.kubernetes.io/cpu-model.vendor_id: Intel # node feature discovery populates this
105+
volumes:
106+
- hostPath:
107+
path: /dev/cpu
108+
name: dev-cpu
109+
- hostPath:
110+
path: /dev/mem
111+
name: dev-mem
112+
- hostPath:
113+
path: /sys
114+
name: sysfs
115+
- hostPath:
116+
path: /sys/firmware/acpi/tables/MCFG
117+
name: sys-acpi
118+
- hostPath:
119+
path: /proc/bus/pci
120+
name: proc-pci
121+
- hostPath:
122+
path: /proc/sys/kernel/nmi_watchdog
123+
name: nmi-watchdog
124+
---
125+
# prometheus operator defines this CRD
126+
apiVersion: monitoring.coreos.com/v1
127+
kind: PodMonitor
128+
metadata:
129+
labels:
130+
app.kubernetes.io/instance: pcm
131+
app.kubernetes.io/name: intel-pcm
132+
app.kubernetes.io/part-of: intel-pcm
133+
app.kubernetes.io/component: metrics
134+
jobLabel: pcm
135+
prometheus.io/podmonitor: system-metrics
136+
release: prometheus
137+
name: pcm
138+
namespace: intel-pcm
139+
spec:
140+
attachMetadata:
141+
node: true
142+
jobLabel: jobLabel
143+
namespaceSelector:
144+
matchNames:
145+
- intel-pcm
146+
podMetricsEndpoints:
147+
- enableHttp2: false
148+
filterRunning: true
149+
followRedirects: false
150+
honorLabels: true
151+
honorTimestamps: true
152+
path: /metrics
153+
port: pcm-metrics
154+
interval: 1s
155+
relabelings:
156+
- sourceLabels:
157+
- __meta_kubernetes_pod_node_name
158+
targetLabel: nodename
159+
scheme: http
160+
selector:
161+
matchLabels:
162+
app.kubernetes.io/component: pcm-sensor-server
163+
app.kubernetes.io/instance: pcm
164+
app.kubernetes.io/name: intel-pcm

0 commit comments

Comments
 (0)