Skip to content

Commit 27136ce

Browse files
copejonclaude
andcommitted
USHIFT-6951: Add node-exporter as optional MicroShift component
Add node-exporter kustomize manifests, healthcheck registration, RPM packaging, and OpenTelemetry collector drop-in configuration. Includes own 00-namespace.yaml for independent deployability and mergeWorkloads() for shared-namespace healthcheck support. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 93e835e commit 27136ce

17 files changed

Lines changed: 585 additions & 1 deletion
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
apiVersion: v1
2+
kind: Namespace
3+
metadata:
4+
name: openshift-monitoring
5+
labels:
6+
name: openshift-monitoring
7+
pod-security.kubernetes.io/enforce: privileged
8+
pod-security.kubernetes.io/audit: privileged
9+
pod-security.kubernetes.io/warn: privileged
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: ClusterRoleBinding
3+
metadata:
4+
labels:
5+
app.kubernetes.io/component: exporter
6+
app.kubernetes.io/managed-by: cluster-monitoring-operator
7+
app.kubernetes.io/name: node-exporter
8+
app.kubernetes.io/part-of: openshift-monitoring
9+
app.kubernetes.io/version: 1.11.1
10+
name: node-exporter
11+
roleRef:
12+
apiGroup: rbac.authorization.k8s.io
13+
kind: ClusterRole
14+
name: node-exporter
15+
subjects:
16+
- kind: ServiceAccount
17+
name: node-exporter
18+
namespace: openshift-monitoring
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: ClusterRole
3+
metadata:
4+
labels:
5+
app.kubernetes.io/component: exporter
6+
app.kubernetes.io/managed-by: cluster-monitoring-operator
7+
app.kubernetes.io/name: node-exporter
8+
app.kubernetes.io/part-of: openshift-monitoring
9+
app.kubernetes.io/version: 1.11.1
10+
name: node-exporter
11+
rules:
12+
- apiGroups:
13+
- authentication.k8s.io
14+
resources:
15+
- tokenreviews
16+
verbs:
17+
- create
18+
- apiGroups:
19+
- authorization.k8s.io
20+
resources:
21+
- subjectaccessreviews
22+
verbs:
23+
- create
24+
- apiGroups:
25+
- security.openshift.io
26+
resourceNames:
27+
- node-exporter
28+
resources:
29+
- securitycontextconstraints
30+
verbs:
31+
- use
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
allowHostDirVolumePlugin: true
2+
allowHostNetwork: true
3+
allowHostPID: true
4+
allowHostPorts: true
5+
allowPrivilegedContainer: true
6+
apiVersion: security.openshift.io/v1
7+
kind: SecurityContextConstraints
8+
metadata:
9+
annotations:
10+
kubernetes.io/description: node-exporter scc is used for the Prometheus node exporter
11+
labels:
12+
app.kubernetes.io/managed-by: cluster-monitoring-operator
13+
app.kubernetes.io/part-of: openshift-monitoring
14+
name: node-exporter
15+
readOnlyRootFilesystem: false
16+
runAsUser:
17+
type: RunAsAny
18+
seLinuxContext:
19+
type: RunAsAny
20+
seccompProfiles:
21+
- runtime/default
22+
users: []
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
apiVersion: v1
2+
automountServiceAccountToken: false
3+
kind: ServiceAccount
4+
metadata:
5+
labels:
6+
app.kubernetes.io/component: exporter
7+
app.kubernetes.io/managed-by: cluster-monitoring-operator
8+
app.kubernetes.io/name: node-exporter
9+
app.kubernetes.io/part-of: openshift-monitoring
10+
app.kubernetes.io/version: 1.11.1
11+
name: node-exporter
12+
namespace: openshift-monitoring
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
apiVersion: v1
2+
data:
3+
config.yaml: |-
4+
- "models":
5+
- "modelName": "NVIDIA A800 PCIe 80GB"
6+
"pciID": "0x20f5"
7+
- "modelName": "NVIDIA A800 40GB PCIe active cooled"
8+
"pciID": "0x20f6"
9+
- "modelName": "NVIDIA AX800"
10+
"pciID": "0x20fd"
11+
- "modelName": "NVIDIA A100 PCIe 40GB"
12+
"pciID": "0x20f1"
13+
- "modelName": "NVIDIA A100 PCIe 80GB"
14+
"pciID": "0x20b5"
15+
- "modelName": "NVIDIA A40"
16+
"pciID": "0x2235"
17+
- "modelName": "NVIDIA A30"
18+
"pciID": "0x20b7"
19+
- "modelName": "NVIDIA A10"
20+
"pciID": "0x2236"
21+
- "modelName": "NVIDIA A16"
22+
"pciID": "0x25b6"
23+
- "modelName": "H800 NVL"
24+
"pciID": "0x2322"
25+
- "modelName": "NVIDIA H100 NVL"
26+
"pciID": "0x2321"
27+
- "modelName": "NVIDIA H100 PCIe 80GB"
28+
"pciID": "0x2331"
29+
- "modelName": "NVIDIA L40"
30+
"pciID": "0x26b5"
31+
- "modelName": "NVIDIA L40S"
32+
"pciID": "0x26b9"
33+
- "modelName": "NVIDIA L20 liquid cooled"
34+
"pciID": "0x26bA"
35+
- "modelName": "NVIDIA L4"
36+
"pciID": "0x27b8"
37+
- "modelName": "NVIDIA L2"
38+
"pciID": "0x27b6"
39+
- "modelName": "NVIDIA RTX 6000 Ada"
40+
"pciID": "0x26b1"
41+
- "modelName": "NVIDIA RTX 5880 Ada"
42+
"pciID": "0x26b3"
43+
- "modelName": "NVIDIA RTX 5000 Ada"
44+
"pciID": "0x2231"
45+
- "modelName": "NVIDIA RTX A6000"
46+
"pciID": "0x2230"
47+
- "modelName": "NVIDIA RTX A5500"
48+
"pciID": "0x2233"
49+
- "modelName": "NVIDIA RTX 8000 passive"
50+
"pciID": "0x1e30"
51+
- "modelName": "NVIDIA RTX A2000"
52+
"pciID": "0x2531"
53+
- "modelName": "NVIDIA A100 SXM4 40GB"
54+
"pciID": "0x20b0"
55+
- "modelName": "NVIDIA H800 NVL"
56+
"pciID": "0x233a"
57+
- "modelName": "NVIDIA H200 NVL"
58+
"pciID": "0x233b"
59+
- "modelName": "NVIDIA A100 SXM4 80GB"
60+
"pciID": "0x20b2"
61+
- "modelName": "NVIDIA A100 SXM 64GB"
62+
"pciID": "0x20b3"
63+
- "modelName": "NVIDIA A800 SXM4 40GB"
64+
"pciID": "0x20bd"
65+
- "modelName": "NVIDIA A800 SXM4 80GB"
66+
"pciID": "0x20f3"
67+
- "modelName": "NVIDIA RTX A1000"
68+
"pciID": "0x25b0"
69+
- "modelName": "Blackwell RTX PRO 6000"
70+
"pciID": "0x2bb5"
71+
- "modelName": "Blackwell GB100"
72+
"pciID": "0x2941"
73+
"vendorID": "0x10de"
74+
"vendorName": "NVIDIA"
75+
- "models":
76+
- "modelName": "AMD MI210"
77+
"pciID": "0x740f"
78+
- "modelName": "AMD MI250"
79+
"pciID": "0x740c"
80+
- "modelName": "AMD MI250X"
81+
"pciID": "0x7408"
82+
- "modelName": "AMD MI300"
83+
"pciID": "0x74a0"
84+
- "modelName": "AMD MI300X"
85+
"pciID": "0x74a1"
86+
- "modelName": "AMD MI325X"
87+
"pciID": "0x74a5"
88+
- "modelName": "AMD MI308X"
89+
"pciID": "0x7aa2"
90+
- "modelName": "AMD MI300X VF"
91+
"pciID": "0x74b5"
92+
- "modelName": "AMD MI210 VF"
93+
"pciID": "0x7410"
94+
"vendorID": "0x1002"
95+
"vendorName": "AMD"
96+
- "models":
97+
- "modelName": "Gaudi 1"
98+
"pciID": "0x1000"
99+
- "modelName": "Gaudi 2"
100+
"pciID": "0x1020"
101+
"vendorID": "0x1da3"
102+
"vendorName": "GAUDI"
103+
- "models":
104+
- "modelName": "Intel Data Center GPU Max 1550"
105+
"pciID": "0x0bd5"
106+
- "modelName": "Intel Data Center GPU Max 1100"
107+
"pciID": "0x0bda"
108+
- "modelName": "Intel Data Center GPU Flex 170"
109+
"pciID": "0x56c0"
110+
- "modelName": "Intel Data Center GPU Flex 140"
111+
"pciID": "0x56c1"
112+
- "modelName": "Intel IPU Data Path"
113+
"pciID": "0x1452"
114+
"vendorID": "0x8086"
115+
"vendorName": "Intel"
116+
- "models":
117+
- "modelName": "Qualcomm AI 100"
118+
"pciID": "0xa100"
119+
- "modelName": "Qualcomm AI 80"
120+
"pciID": "0xa080"
121+
"vendorID": "0x17cb"
122+
"vendorName": "Qualcomm"
123+
- "models":
124+
- "modelName": "Marvell OCTEON 10 CN10XXX"
125+
"pciID": "0xb900"
126+
"vendorID": "0x177d"
127+
"vendorName": "Marvell"
128+
- "models":
129+
- "modelName": "BlueField-3 integrated ConnectX-7"
130+
"pciID": "0xa2dc"
131+
"vendorID": "0x15b3"
132+
"vendorName": "Mellanox"
133+
kind: ConfigMap
134+
metadata:
135+
labels:
136+
app.kubernetes.io/managed-by: cluster-monitoring-operator
137+
app.kubernetes.io/part-of: openshift-monitoring
138+
name: node-exporter-accelerators-collector-config
139+
namespace: openshift-monitoring
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
apiVersion: v1
2+
data: {}
3+
kind: Secret
4+
metadata:
5+
labels:
6+
app.kubernetes.io/managed-by: cluster-monitoring-operator
7+
app.kubernetes.io/part-of: openshift-monitoring
8+
name: node-exporter-kube-rbac-proxy-config
9+
namespace: openshift-monitoring
10+
stringData:
11+
config.yaml: |-
12+
"authorization":
13+
"static":
14+
- "path": "/metrics"
15+
"resourceRequest": false
16+
"user":
17+
"name": "system:serviceaccount:openshift-monitoring:prometheus-k8s"
18+
"verb": "get"
19+
type: Opaque

0 commit comments

Comments
 (0)