Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
186 commits
Select commit Hold shift + click to select a range
f1bdf8d
Restart kmsg on error
arjraman Dec 11, 2025
c530d1f
Remove log message for restart on error
arjraman Dec 18, 2025
2d6ebed
chore(deps): bump github/codeql-action in the actions-all group
dependabot[bot] Jan 13, 2026
c8f2162
Merge pull request #1214 from kubernetes/dependabot/github_actions/ac…
k8s-ci-robot Jan 14, 2026
e039f9b
chore(deps): bump golang from 1.25.5-bookworm to 1.25.6-bookworm
dependabot[bot] Jan 19, 2026
c3913bb
Merge pull request #1215 from kubernetes/dependabot/docker/golang-1.2…
k8s-ci-robot Jan 20, 2026
c32ca58
chore(deps): bump the actions-all group with 3 updates
dependabot[bot] Jan 26, 2026
beeed7e
Merge pull request #1217 from kubernetes/dependabot/github_actions/ac…
k8s-ci-robot Jan 27, 2026
49bdf01
chore(deps): bump build-image/debian-base
dependabot[bot] Feb 3, 2026
e4bb711
chore(deps): bump github/codeql-action in the actions-all group
dependabot[bot] Feb 3, 2026
8f53cb8
Merge pull request #1218 from kubernetes/dependabot/docker/build-imag…
k8s-ci-robot Feb 3, 2026
69b81e7
Merge pull request #1219 from kubernetes/dependabot/github_actions/ac…
k8s-ci-robot Feb 3, 2026
e6d1698
Update Go to v1.25.7
hakman Feb 8, 2026
c4c48ee
Merge pull request #1220 from hakman/go-1.25.7
k8s-ci-robot Feb 8, 2026
33143a6
chore(deps): bump the actions-all group with 2 updates
dependabot[bot] Feb 10, 2026
49ee7e7
Merge pull request #1233 from kubernetes/dependabot/github_actions/ac…
k8s-ci-robot Feb 10, 2026
70d3450
chore(deps): bump github/codeql-action in the actions-all group
dependabot[bot] Feb 16, 2026
aff4862
chore(deps): bump the k8s group across 2 directories with 4 updates
dependabot[bot] Feb 16, 2026
391aa20
Merge pull request #1236 from kubernetes/dependabot/github_actions/ac…
k8s-ci-robot Feb 18, 2026
e9c7ab8
Merge pull request #1237 from kubernetes/dependabot/go_modules/k8s-7f…
k8s-ci-robot Feb 18, 2026
f2454f5
chore(deps): bump the actions-all group with 2 updates
dependabot[bot] Feb 23, 2026
9f99b65
Merge pull request #1238 from kubernetes/dependabot/github_actions/ac…
k8s-ci-robot Feb 28, 2026
0cdc423
chore(deps): bump the actions-all group with 3 updates
dependabot[bot] Mar 2, 2026
b9945d5
Merge pull request #1239 from kubernetes/dependabot/github_actions/ac…
k8s-ci-robot Mar 7, 2026
7e87691
chore(deps): bump the k8s group across 2 directories with 4 updates
dependabot[bot] Mar 7, 2026
327e03e
Merge pull request #1240 from kubernetes/dependabot/go_modules/k8s-a6…
k8s-ci-robot Mar 7, 2026
cf49821
Update Go to v1.25.8
hakman Mar 7, 2026
7aa0dbf
Merge pull request #1241 from hakman/go-1.25.8
k8s-ci-robot Mar 7, 2026
2c084b9
chore(deps): bump the actions-all group with 3 updates
dependabot[bot] Mar 9, 2026
e6c3a24
Merge pull request #1246 from kubernetes/dependabot/github_actions/ac…
k8s-ci-robot Mar 10, 2026
58450c6
chore(deps): bump the actions-all group with 2 updates
dependabot[bot] Mar 16, 2026
c37abe4
Merge pull request #1249 from kubernetes/dependabot/github_actions/ac…
k8s-ci-robot Mar 18, 2026
fc90eb0
Update golangci-lint to v2.11.4
hakman Mar 24, 2026
c16035f
Merge pull request #1252 from hakman/golangci-lint-2.11.4
k8s-ci-robot Mar 24, 2026
d395ba3
chore(deps): bump github/codeql-action in the actions-all group
dependabot[bot] Mar 24, 2026
240d180
chore(deps): bump the k8s group across 2 directories with 4 updates
dependabot[bot] Mar 24, 2026
748fecd
Remove opt-in knob for restarting kmsg parser and simplify retry loop
arjraman Mar 24, 2026
40274ca
Merge pull request #1251 from kubernetes/dependabot/go_modules/k8s-f3…
k8s-ci-robot Mar 24, 2026
12357b5
Merge pull request #1250 from kubernetes/dependabot/github_actions/ac…
k8s-ci-robot Mar 24, 2026
c4d4af5
Honor stderrthreshold when logtostderr is enabled
pierluigilenoci Mar 26, 2026
b2c5cf2
Merge pull request #1253 from pierluigilenoci/fix/honor-stderrthreshold
k8s-ci-robot Mar 27, 2026
68d5db7
chore: Bump k8s.io/klog/v2 to v2.140.0 for tests
hakman Mar 27, 2026
230d519
chore(deps): bump github/codeql-action in the actions-all group
dependabot[bot] Mar 30, 2026
5b0e89d
Merge pull request #1254 from hakman/fix-go-mod
k8s-ci-robot Mar 31, 2026
ed5ec82
Merge pull request #1255 from kubernetes/dependabot/github_actions/ac…
k8s-ci-robot Mar 31, 2026
46717c1
fix(readme): update chart install instructions
TPXP Apr 1, 2026
0c4cc67
Merge pull request #1192 from arjraman/master
k8s-ci-robot Apr 10, 2026
6411bde
Merge pull request #1256 from TPXP/patch-1
k8s-ci-robot Apr 10, 2026
78f76b2
fix(logwatchers/kmsg): don't close parser from Stop()
hakman Apr 10, 2026
b3379b0
fix(logwatchers/kmsg): prevent duplicate message replay after restart
hakman Apr 10, 2026
e0a3f5b
Merge pull request #1260 from hakman/kmsg-stop-parser
k8s-ci-robot Apr 10, 2026
ea22add
Merge pull request #1259 from hakman/kmsg-duplicate-message
k8s-ci-robot Apr 10, 2026
3d516d9
test(logwatchers/kmsg): inject parser factory for testability and cov…
hakman Apr 10, 2026
c45f78c
chore(deps): bump the actions-all group with 2 updates
dependabot[bot] Apr 13, 2026
0e6c918
Merge pull request #1261 from hakman/kmsg-tests
k8s-ci-robot Apr 15, 2026
d7f1f78
Merge pull request #1263 from kubernetes/dependabot/github_actions/ac…
k8s-ci-robot Apr 15, 2026
a4e58f2
fix: pin actions to commit SHA
hakman Apr 22, 2026
5a835bc
Merge pull request #1268 from hakman/fix-lint
k8s-ci-robot Apr 22, 2026
2762b8f
chore(deps): bump the k8s group across 2 directories with 4 updates
dependabot[bot] Apr 22, 2026
d93f251
Merge pull request #1265 from kubernetes/dependabot/go_modules/k8s-fb…
k8s-ci-robot Apr 22, 2026
0ffec3e
chore(deps): bump the actions-all group with 2 updates
dependabot[bot] Apr 22, 2026
cc85ca1
Merge pull request #1264 from kubernetes/dependabot/github_actions/ac…
k8s-ci-robot Apr 22, 2026
0c927ad
fix: honor stderrthreshold on Windows entrypoint
pierluigilenoci Apr 21, 2026
6464b9e
Update grpc to v1.79.3 to fix CVE-2026-33186
ajaysundark Apr 23, 2026
925c629
Run go mod tidy in test directory to fix e2e build
ajaysundark Apr 23, 2026
e99d20b
Align otel dependency with k8s v1.41.0
ajaysundark Apr 23, 2026
45979bd
Merge pull request #1270 from ajaysundark/cve-fix
k8s-ci-robot Apr 23, 2026
877b6d6
Fix Grype CVEs: update logrus and prometheus/prometheus
BrunoChauvet May 3, 2026
21e602e
Update builder image to golang:1.25.9-bookworm
BrunoChauvet May 3, 2026
f06e6fa
Merge pull request #1272 from BrunoChauvet/fix/grype-vulnerabilities-…
k8s-ci-robot May 4, 2026
bf5ef5d
chore(deps): bump the actions-all group with 2 updates
dependabot[bot] May 5, 2026
653620a
Merge pull request #1276 from kubernetes/dependabot/github_actions/ac…
k8s-ci-robot May 6, 2026
31d036e
fix: handle SIGTERM gracefully on unix
May 7, 2026
e715cf5
chore(deps): bump the actions-all group with 2 updates
dependabot[bot] May 12, 2026
87bbc58
Merge pull request #1280 from kubernetes/dependabot/github_actions/ac…
k8s-ci-robot May 12, 2026
77f65b4
chore(deps): bump the actions-all group with 2 updates
dependabot[bot] May 19, 2026
25da70d
chore(deps): bump the k8s group across 2 directories with 4 updates
dependabot[bot] May 19, 2026
1d01ffa
chore(deps): bump build-image/debian-base
dependabot[bot] May 26, 2026
f61cff1
Merge pull request #1284 from kubernetes/dependabot/docker/build-imag…
k8s-ci-robot May 26, 2026
b79128a
Merge pull request #1282 from kubernetes/dependabot/github_actions/ac…
k8s-ci-robot May 26, 2026
2513573
Merge pull request #1283 from kubernetes/dependabot/go_modules/k8s-6d…
k8s-ci-robot May 26, 2026
8a5df6d
Merge pull request #1278 from halaney/ahalaney/fix-sigterm
k8s-ci-robot May 27, 2026
bbe1750
chore(deps): bump the actions-all group with 3 updates
dependabot[bot] Jun 3, 2026
3c56ab3
chore(deps): bump the k8s group across 2 directories with 4 updates
dependabot[bot] Jun 15, 2026
bcac1a6
test: pull node e2e image from the community staging registry
hakman Jun 23, 2026
3c9bbe7
Merge pull request #1293 from hakman/fix-e2e-pull
kubernetes-prow[bot] Jun 23, 2026
58542a3
test: deploy NPD for cluster e2e
hakman Jun 23, 2026
3af9f35
Merge pull request #1294 from hakman/deploy-npd-as-daemonset
kubernetes-prow[bot] Jun 23, 2026
b116f41
Merge pull request #1287 from kubernetes/dependabot/github_actions/ac…
kubernetes-prow[bot] Jun 23, 2026
9d72de7
Merge pull request #1292 from kubernetes/dependabot/go_modules/k8s-e9…
kubernetes-prow[bot] Jun 23, 2026
72d21b8
chore(deps): bump the actions-all group with 6 updates
dependabot[bot] Jun 29, 2026
e5aeec6
Merge pull request #1296 from kubernetes/dependabot/github_actions/ac…
kubernetes-prow[bot] Jul 2, 2026
69c13db
chore(deps): bump the actions-all group with 4 updates
dependabot[bot] Jul 6, 2026
f389d28
Merge pull request #1298 from kubernetes/dependabot/github_actions/ac…
kubernetes-prow[bot] Jul 6, 2026
05993a1
Bump Go to 1.26.5 and golang.org/x modules
hakman Jul 7, 2026
97d58d2
Merge pull request #1299 from hakman/bump-go-1.26.5
kubernetes-prow[bot] Jul 8, 2026
288a3ed
healthchecker: use kube-proxy /livez to avoid scale-down false alerts
dpacgdm Jul 9, 2026
187d4d3
fix(logwatchers/kmsg): rate-limit parser restarts to prevent hot loop
hakman Jul 11, 2026
b77c1eb
fix(logwatchers/kmsg): don't block Stop() when the log channel is full
hakman Jul 11, 2026
a20306e
fix(logwatchers/kmsg): don't close the old parser twice when Stop() i…
hakman Jul 11, 2026
1a2203f
Merge pull request #1311 from hakman/kmsg-watcher-fixes
kubernetes-prow[bot] Jul 11, 2026
19d58b0
Release v1.36.0 (#1312)
hakman Jul 11, 2026
8a2a897
chore(deps): pre-vendor OpenTelemetry dependencies
hakman Jul 8, 2026
20c2281
Release v1.37.0-alpha.1
hakman Jul 11, 2026
bcdc713
docs: update release process for Cloud Build images and make release-new
hakman Jul 11, 2026
f155e65
Merge pull request #1315 from hakman/release-1.37.0-alpha.1
kubernetes-prow[bot] Jul 11, 2026
b28b99c
chore(docs): Add security policy for dependency CVEs and scanner find…
hakman Jul 11, 2026
0191225
Merge pull request #1302 from hakman/pre-vendor-otel-deps
kubernetes-prow[bot] Jul 11, 2026
0c4b903
Merge pull request #1317 from hakman/security-policy
kubernetes-prow[bot] Jul 12, 2026
43702a7
config: include --cri-timeout in containerd health-checker defaults
dpacgdm Jul 13, 2026
3cce68e
chore(deps): bump the actions-all group with 5 updates
dependabot[bot] Jul 13, 2026
0599591
Merge pull request #1307 from dpacgdm/fix/cri-timeout-default-config
kubernetes-prow[bot] Jul 14, 2026
6ccf48b
Merge pull request #1319 from kubernetes/dependabot/github_actions/ac…
kubernetes-prow[bot] Jul 15, 2026
25105fd
Add per-rule custom plugin intervals
DigitalVeer Jul 20, 2026
798cc3b
Document rule interval scheduling behavior
DigitalVeer Jul 20, 2026
7290c22
chore(deps): bump the actions-all group with 6 updates
dependabot[bot] Jul 20, 2026
be4034f
Cache compiled regular expressions in the log buffer
DigitalVeer Jul 20, 2026
fe3ab8c
Merge pull request #1321 from kubernetes/dependabot/github_actions/ac…
kubernetes-prow[bot] Jul 21, 2026
bc34f45
Fix lint findings in the new tests
DigitalVeer Jul 21, 2026
87dfadb
Fix invalid config JSON and enforce canonical config format
hakman Jul 22, 2026
146a394
Merge pull request #1320 from DigitalVeer/per-rule-invoke-interval
kubernetes-prow[bot] Jul 22, 2026
3b47d53
Merge pull request #1322 from DigitalVeer/logbuffer-regexp-cache
kubernetes-prow[bot] Jul 22, 2026
4cc149d
Merge pull request #1318 from hakman/fix-config-json-trailing-commas
kubernetes-prow[bot] Jul 22, 2026
eeb802f
Merge pull request #1316 from hakman/docs/update-release-process
kubernetes-prow[bot] Jul 22, 2026
87ad6de
healthchecker: clarify kube-proxy /livez comment
dpacgdm Jul 22, 2026
c1d461f
Set the Node UID on recorded events
DigitalVeer Jul 23, 2026
9a162b1
Merge pull request #1325 from DigitalVeer/node-event-uid
kubernetes-prow[bot] Jul 25, 2026
b02e2dc
Precompile log buffer regular expressions
hakman Jul 22, 2026
d98af63
Merge pull request #1306 from dpacgdm/fix/kube-proxy-livez-scale-down
kubernetes-prow[bot] Jul 25, 2026
aab5e5e
Merge pull request #1323 from hakman/precompile-log-buffer-regexps
kubernetes-prow[bot] Jul 26, 2026
f48cc60
chore(deps): bump the actions-all group with 5 updates
dependabot[bot] Jul 27, 2026
3a20d75
chore(deps): bump the k8s group across 2 directories with 4 updates
dependabot[bot] Jul 27, 2026
4334390
Cache the joined log buffer and skip it for single-line rules
DigitalVeer Jul 27, 2026
ba3a2d8
Add unit tests for the custom plugin monitor
DigitalVeer Jul 29, 2026
bd980fd
Merge pull request #1327 from kubernetes/dependabot/go_modules/k8s-37…
kubernetes-prow[bot] Aug 3, 2026
7bff5a4
Merge pull request #1326 from kubernetes/dependabot/github_actions/ac…
kubernetes-prow[bot] Aug 3, 2026
403ffc8
Tighten monitor tests from review suggestions
DigitalVeer Aug 5, 2026
c9e8b92
chore(deps): bump the actions-all group across 1 directory with 5 upd…
dependabot[bot] Aug 10, 2026
406db19
Merge pull request #1335 from kubernetes/dependabot/github_actions/ac…
kubernetes-prow[bot] Aug 19, 2026
8e17b19
Merge pull request #1330 from DigitalVeer/cpm-generate-status-tests
kubernetes-prow[bot] Aug 22, 2026
6632ca6
Merge pull request #1329 from DigitalVeer/lastline-match
kubernetes-prow[bot] Aug 22, 2026
b0a0ec5
feat(exporters): replace opencensus with opentelemetry (#1297)
hakman Aug 23, 2026
70e4d84
Bump Go to 1.26.7
hakman Aug 23, 2026
f2d7e05
Bump golang.org/x modules
hakman Aug 23, 2026
fffa7b8
Bump k8s.io dependencies to v0.37.0-rc.1
hakman Aug 23, 2026
992dfa6
Bump google.golang.org/grpc to v1.82.1
hakman Aug 23, 2026
9ec2cec
Fix verify-gomod.sh to watch test/go.mod
hakman Aug 23, 2026
9c93788
Merge pull request #1339 from hakman/hakman-bump-go-1-26-7-k8s-0-37-0…
kubernetes-prow[bot] Aug 23, 2026
ab38b74
chore(deps): bump the actions-all group with 5 updates
dependabot[bot] Aug 24, 2026
f2e66ca
Remove the old badges add single new line after one header to make it…
AlexBaranowski Aug 25, 2026
e737fb8
Merge pull request #1345 from kubernetes/dependabot/github_actions/ac…
kubernetes-prow[bot] Aug 25, 2026
69795e9
Merge pull request #1346 from AlexBaranowski/README-remove-old-badges
kubernetes-prow[bot] Aug 25, 2026
7d4863a
Add zswap metrics: bytes_used and compression_efficiency
divikchotani-oss Aug 21, 2026
527383f
Merge pull request #1337 from divikchotani-oss/add-zswap-metrics
kubernetes-prow[bot] Aug 25, 2026
0b0ff3e
Fix log pattern end anchoring
hakman Aug 23, 2026
7a25332
Merge pull request #1338 from hakman/fix-log-pattern-anchoring
kubernetes-prow[bot] Aug 28, 2026
2cdacee
chore(deps): bump the k8s group across 2 directories with 4 updates
dependabot[bot] Aug 31, 2026
93acce4
chore(deps): bump the actions-all group with 4 updates
dependabot[bot] Aug 31, 2026
1b6ad68
Merge pull request #1348 from kubernetes/dependabot/go_modules/k8s-4c…
kubernetes-prow[bot] Sep 1, 2026
00cff0e
Merge pull request #1350 from kubernetes/dependabot/github_actions/ac…
kubernetes-prow[bot] Sep 1, 2026
a5549be
chore(deps): bump step-security/harden-runner in the actions-all group
dependabot[bot] Sep 7, 2026
5f40c13
Merge pull request #1353 from kubernetes/dependabot/github_actions/ac…
kubernetes-prow[bot] Sep 8, 2026
80148f0
chore(deps): bump the actions-all group with 4 updates
dependabot[bot] Sep 14, 2026
14aa2fc
Add chainguard to list of OSs
max-allan-cgr Sep 17, 2026
c3a3385
chore(deps): bump the k8s group across 2 directories with 4 updates
dependabot[bot] Sep 28, 2026
b3e8344
Update golangci-lint to v2.14.0 for Go 1.27
wangzhen127 Oct 8, 2026
a944227
Merge pull request #1360 from wangzhen127/golangci-lint-v2.14.0
kubernetes-prow[bot] Oct 9, 2026
13460c5
Merge pull request #1355 from max-allan-cgr/add-chainguard
kubernetes-prow[bot] Oct 9, 2026
4f08a91
Merge pull request #1357 from kubernetes/dependabot/go_modules/k8s-7e…
kubernetes-prow[bot] Oct 9, 2026
071828c
Merge pull request #1354 from kubernetes/dependabot/github_actions/ac…
kubernetes-prow[bot] Oct 9, 2026
a22b291
Bump Go to 1.27.2
hakman Oct 13, 2026
e0ca602
Bump golang.org/x modules
hakman Oct 13, 2026
620da28
Fix non-constant format string in e2e GCE lib
hakman Oct 13, 2026
50f71ee
Merge pull request #1364 from hakman/bump-go-1.27.2
kubernetes-prow[bot] Oct 13, 2026
7aa310e
Bump google.golang.org/grpc to v1.83.2 to fix CVEs
hakman Oct 13, 2026
2837484
Bump go.opentelemetry.io/otel modules to v1.45.0 to fix CVE-2026-81870
hakman Oct 13, 2026
f02066b
Merge pull request #1368 from hakman/fix-grpc-otel-cves
kubernetes-prow[bot] Oct 13, 2026
1b514ce
Upgrade Debian packages when building the image
hakman Oct 13, 2026
c6e1ed9
Merge pull request #1372 from hakman/upgrade-debian-packages
kubernetes-prow[bot] Oct 13, 2026
6d6d8b8
Release v1.38.0-alpha.1
hakman Oct 13, 2026
f885505
Merge pull request #1376 from hakman/release-1.38.0-alpha.1
kubernetes-prow[bot] Oct 13, 2026
9c5cbdd
chore(deps): bump build-image/debian-base
dependabot[bot] Oct 19, 2026
b5cba5c
Merge pull request #1382 from kubernetes/dependabot/docker/build-imag…
kubernetes-prow[bot] Oct 25, 2026
5760c9a
fix(metrics): skip unsupported Prometheus metric types
MartinForReal Oct 26, 2026
f10a038
test(metrics): cover summary sample sum parsing
MartinForReal Oct 26, 2026
d11af79
test(metrics): pin typeless exposition parsing
MartinForReal Oct 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 5 additions & 5 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,16 +41,16 @@ jobs:

steps:
- name: Harden Runner
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
with:
egress-policy: audit

- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
uses: github/codeql-action/init@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
Expand All @@ -60,7 +60,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
uses: github/codeql-action/autobuild@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0

# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
Expand All @@ -73,6 +73,6 @@ jobs:
# ./location_of_script_within_repo/buildscript.sh

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
uses: github/codeql-action/analyze@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0
with:
category: "/language:${{matrix.language}}"
6 changes: 3 additions & 3 deletions .github/workflows/dependency-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
with:
egress-policy: audit

- name: 'Checkout Repository'
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: 'Dependency Review'
uses: actions/dependency-review-action@3c4e3dcb1aa7874d2c16be7d79418e9b7efd6261 # v4.8.2
uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0
5 changes: 3 additions & 2 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@ jobs:
name: lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6.0.1
- name: Checkout Repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up Go
uses: actions/setup-go@v6
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version-file: go.mod
- name: golangci-lint
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/scorecards.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,17 @@ jobs:

steps:
- name: Harden Runner
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
with:
egress-policy: audit

- name: "Checkout code"
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: "Run analysis"
uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3
uses: ossf/scorecard-action@2d1146689b8cda280b9bc96326124645441f03bc # v2.4.4
with:
results_file: results.sarif
results_format: sarif
Expand All @@ -63,14 +63,14 @@ jobs:
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
- name: "Upload artifact"
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: SARIF file
path: results.sarif
retention-days: 5

# Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
uses: github/codeql-action/upload-sarif@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0
with:
sarif_file: results.sarif
4 changes: 2 additions & 2 deletions .github/workflows/tag-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ jobs:
contents: write
steps:
- name: Harden Runner
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
with:
egress-policy: audit
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
- run: /usr/bin/git config --global user.email actions@github.com
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,5 @@ debug.test
/output/
coverage.out
.idea/
*.DS_Store
*.iml
7 changes: 7 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,13 @@ linters:
# - wsl 403
# - wsl_v5 58
- zerologlint
settings:
goconst:
# goconst >= 1.9.0 (golangci-lint >= v2.12.0) also inspects composite
# literals. Keep the previous scope; the default is [Call].
exclude-types:
- Call
- CompositeLit
exclusions:
generated: lax
paths:
Expand Down
6 changes: 3 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# Must override builder-base, not builder, since the latter is referred to later in the file and so must not be
# directly replaced. See here, and note that "stage" parameter mentioned there has been renamed to
# "build-context": https://github.com/docker/buildx/pull/904#issuecomment-1005871838
FROM golang:1.25.5-bookworm@sha256:09f53deea14d4019922334afe6258b7b776afc1d57952be2012f2c8c4076db05 AS builder-base
FROM golang:1.27.2-bookworm AS builder-base
FROM --platform=$BUILDPLATFORM builder-base AS builder

ARG TARGETARCH
Expand All @@ -20,9 +20,9 @@ COPY . /src/
WORKDIR /src
RUN GOARCH=${TARGETARCH} make bin/node-problem-detector bin/health-checker bin/log-counter

FROM registry.k8s.io/build-image/debian-base:bookworm-v1.0.6@sha256:e100119ba6cf265b29957046f178e9374f9a9419133284c9b883e64c5b463d73 AS base
FROM registry.k8s.io/build-image/debian-base:bookworm-v1.0.9@sha256:628de94e72732b63ddd84a79f961ef1045779bb83edd170e8306f4ba28a511e4 AS base

RUN clean-install util-linux bash libsystemd-dev
RUN apt-get update && apt-get dist-upgrade -y && clean-install util-linux bash libsystemd0

# Avoid symlink of /etc/localtime.
RUN test -h /etc/localtime && rm -f /etc/localtime && cp /usr/share/zoneinfo/UTC /etc/localtime || true
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.windows
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# Must override builder-base, not builder, since the latter is referred to later in the file and so must not be
# directly replaced. See here, and note that "stage" parameter mentioned there has been renamed to
# "build-context": https://github.com/docker/buildx/pull/904#issuecomment-1005871838
FROM --platform=linux/$BUILDARCH golang:1.25.5-bookworm@sha256:09f53deea14d4019922334afe6258b7b776afc1d57952be2012f2c8c4076db05 AS builder-base
FROM --platform=linux/$BUILDARCH golang:1.27.2-bookworm AS builder-base
FROM --platform=linux/$BUILDARCH builder-base AS builder

ARG TARGETARCH
Expand Down
9 changes: 6 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
# Build the node-problem-detector image.

.PHONY: all \
lint vet fmt version test e2e-test \
lint vet fmt fmt-configs version test e2e-test \
build-binaries build-container build-tar build \
docker-builder build-in-docker \
push-container push-tar push release clean depup \
Expand Down Expand Up @@ -123,7 +123,7 @@ else
LOGCOUNTER=*dont-include-log-counter
endif

GOLANGCI_LINT_VERSION := v2.6.2
GOLANGCI_LINT_VERSION := v2.14.0
GOLANGCI_LINT := ./.bin/golangci-lint

lint: $(GOLANGCI_LINT)
Expand All @@ -132,7 +132,7 @@ lint: $(GOLANGCI_LINT)
$(GOLANGCI_LINT):
@echo "golangci-lint not found, downloading..."
@mkdir -p ./.bin
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b ./.bin $(GOLANGCI_LINT_VERSION)
curl -sSfL https://golangci-lint.run/install.sh | sh -s -- -b ./.bin $(GOLANGCI_LINT_VERSION)


vet:
Expand All @@ -144,6 +144,9 @@ fmt: $(GOLANGCI_LINT)
find . -type f -name "*.go" | grep -v "./vendor/*" | xargs gofmt -s -w -l
$(GOLANGCI_LINT) run --config .golangci.yml --fix ./...

fmt-configs:
UPDATE_EXPECTED=y go test -run TestShippedConfigs ./pkg/systemlogmonitor

version:
@echo $(VERSION)

Expand Down
6 changes: 2 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
# node-problem-detector

[![Build Status](https://travis-ci.org/kubernetes/node-problem-detector.svg?branch=master)](https://travis-ci.org/kubernetes/node-problem-detector) [![Go Report Card](https://goreportcard.com/badge/github.com/kubernetes/node-problem-detector)](https://goreportcard.com/report/github.com/kubernetes/node-problem-detector)

node-problem-detector aims to make various node problems visible to the upstream
layers in the cluster management stack.
It is a daemon that runs on each node, detects node
Expand All @@ -12,6 +10,7 @@ Now it is running as a
[Kubernetes Addon](https://github.com/kubernetes/kubernetes/tree/master/cluster/addons)
enabled by default in the GKE cluster. It is also enabled by default in AKS as part of the
[AKS Linux Extension](https://learn.microsoft.com/en-us/azure/aks/faq#what-is-the-purpose-of-the-aks-linux-extension-i-see-installed-on-my-linux-vmss-instances).

# Background

There are tons of node problems that could possibly affect the pods running on the
Expand Down Expand Up @@ -174,8 +173,7 @@ to another registry.
The easiest way to install node-problem-detector into your cluster is to use the [Helm](https://helm.sh/) [chart](https://github.com/deliveryhero/helm-charts/tree/master/stable/node-problem-detector):

```
helm repo add deliveryhero https://charts.deliveryhero.io/
helm install --generate-name deliveryhero/node-problem-detector
helm install --generate-name oci://ghcr.io/deliveryhero/helm-charts/node-problem-detector
```

Alternatively, to install node-problem-detector manually:
Expand Down
30 changes: 30 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Security Policy

## Security Announcements

Join the [kubernetes-security-announce] group for security and vulnerability announcements.

You can also subscribe to an RSS feed of the above using [this link][kubernetes-security-announce-rss].

## Reporting a Vulnerability

Instructions for reporting a vulnerability can be found on the [Kubernetes Security and Disclosure Information] page.

## Dependency CVEs and vulnerability scanner findings

node-problem-detector is a Go program with a large dependency tree, and vulnerability scanners regularly flag CVEs in its dependencies. The project follows the Kubernetes-wide guidance for handling these reports — see [CVEs in our dependencies] in the Kubernetes security guide. In short:

- Scanners match dependency versions; they do not check whether the vulnerable code is reachable. The large majority of CVEs flagged against node-problem-detector dependencies are in code paths its binaries never execute. Reachability evidence (for example, `govulncheck` output showing a call stack to the vulnerable symbol) is what determines whether a finding is treated as a vulnerability in node-problem-detector.
- Dependency updates land on `master` continuously and ship with the next scheduled release (see [versioning](docs/versioning.md) for the release cadence). The project is maintained by a small group of volunteers and does not cut out-of-band releases solely to update dependency version strings for findings that are not reachable.
- If you have evidence that a CVE is reachable and exploitable in node-problem-detector as deployed, please report it through the process above. That is treated as a vulnerability in node-problem-detector itself, and a fix will be prioritized and backported to supported release branches.

If your compliance program requires container images with zero scanner findings on a faster cadence than the project's releases, rebuild node-problem-detector from the latest release tag or from `master` in your own build pipeline — everything needed is in this repository (see the [Makefile](Makefile) and [Dockerfile](Dockerfile)). No upstream release cadence can track every scanner database, and rebuilding downstream is standard practice for organizations with strict scanning requirements.

## Supported Versions

Fixes land on `master` first. Release lines follow supported Kubernetes minor versions as described in [versioning](docs/versioning.md), and fixes for vulnerabilities that are reachable in node-problem-detector may be backported to supported release branches.

[kubernetes-security-announce]: https://groups.google.com/forum/#!forum/kubernetes-security-announce
[kubernetes-security-announce-rss]: https://groups.google.com/forum/feed/kubernetes-security-announce/msgs/rss_v2_0.xml?num=50
[Kubernetes Security and Disclosure Information]: https://kubernetes.io/docs/reference/issues-security/security/#report-a-vulnerability
[CVEs in our dependencies]: https://github.com/kubernetes/community/blob/master/contributors/guide/security.md#cves-in-our-dependencies
32 changes: 24 additions & 8 deletions cmd/nodeproblemdetector/node_problem_detector.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ package main

import (
"context"
"time"

"k8s.io/klog/v2"

Expand All @@ -29,7 +30,9 @@ import (
"k8s.io/node-problem-detector/pkg/exporters/prometheusexporter"
"k8s.io/node-problem-detector/pkg/problemdaemon"
"k8s.io/node-problem-detector/pkg/problemdetector"
"k8s.io/node-problem-detector/pkg/problemmetrics"
"k8s.io/node-problem-detector/pkg/types"
otelutil "k8s.io/node-problem-detector/pkg/util/otel"
"k8s.io/node-problem-detector/pkg/version"
)

Expand All @@ -43,13 +46,7 @@ func npdMain(ctx context.Context, npdo *options.NodeProblemDetectorOptions) erro
npdo.SetConfigFromDeprecatedOptionsOrDie()
npdo.ValidOrDie()

// Initialize problem daemons.
problemDaemons := problemdaemon.NewProblemDaemons(npdo.MonitorConfigPaths)
if len(problemDaemons) == 0 {
klog.Fatalf("No problem daemon is configured")
}

// Initialize exporters.
// Initialize exporters first to set up the OpenTelemetry readers.
defaultExporters := []types.Exporter{}
if ke := k8sexporter.NewExporterOrDie(ctx, npdo); ke != nil {
defaultExporters = append(defaultExporters, ke)
Expand All @@ -59,9 +56,28 @@ func npdMain(ctx context.Context, npdo *options.NodeProblemDetectorOptions) erro
defaultExporters = append(defaultExporters, pe)
klog.Info("Prometheus exporter started.")
}

plugableExporters := exporters.NewExporters()

// Initialize OpenTelemetry meter provider with all registered readers
// This must be called after all exporters have been created and registered their readers
meterProvider := otelutil.InitializeMeterProvider()
defer func() {
// Drop the cancellation of ctx because it is likely already canceled
// at shutdown, which would prevent flushing pending metrics.
shutdownCtx, cancel := context.WithTimeout(context.WithoutCancel(ctx), 10*time.Second)
defer cancel()
if err := meterProvider.Shutdown(shutdownCtx); err != nil {
klog.Errorf("Failed to shut down OpenTelemetry meter provider: %v", err)
}
}()
problemmetrics.InitializeGlobalProblemMetricsManager()

// Initialize problem daemons.
problemDaemons := problemdaemon.NewProblemDaemons(npdo.MonitorConfigPaths)
if len(problemDaemons) == 0 {
klog.Fatalf("No problem daemon is configured")
}

npdExporters := []types.Exporter{}
npdExporters = append(npdExporters, defaultExporters...)
npdExporters = append(npdExporters, plugableExporters...)
Expand Down
22 changes: 11 additions & 11 deletions cmd/nodeproblemdetector/node_problem_detector_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -127,17 +127,17 @@ func setupNPD(t *testing.T) (*options.NodeProblemDetectorOptions, func()) {
}

return &options.NodeProblemDetectorOptions{
MonitorConfigPaths: map[types.ProblemDaemonType]*[]string{
"system-log-monitor": {
fakeConfigFileName,
},
MonitorConfigPaths: map[types.ProblemDaemonType]*[]string{
"system-log-monitor": {
fakeConfigFileName,
},
}, func() {
if err := os.Remove(fakeLogFileName); err != nil {
t.Logf("Failed to remove temporary file %s: %v", fakeLogFileName, err)
}
if err := os.Remove(fakeConfigFileName); err != nil {
t.Logf("Failed to remove temporary file %s: %v", fakeConfigFileName, err)
}
},
}, func() {
if err := os.Remove(fakeLogFileName); err != nil {
t.Logf("Failed to remove temporary file %s: %v", fakeLogFileName, err)
}
if err := os.Remove(fakeConfigFileName); err != nil {
t.Logf("Failed to remove temporary file %s: %v", fakeConfigFileName, err)
}
}
}
10 changes: 9 additions & 1 deletion cmd/nodeproblemdetector/node_problem_detector_unix.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ package main
import (
"context"
"flag"
"os"
"os/signal"
"syscall"

"github.com/spf13/pflag"
"k8s.io/klog/v2"
Expand All @@ -31,6 +34,9 @@ import (
func main() {
klogFlags := flag.NewFlagSet("klog", flag.ExitOnError)
klog.InitFlags(klogFlags)
// Opt into fixed stderrthreshold behavior (kubernetes/klog#212).
_ = klogFlags.Set("legacy_stderr_threshold_behavior", "false")
_ = klogFlags.Set("stderrthreshold", "INFO")
klogFlags.VisitAll(func(f *flag.Flag) {
switch f.Name {
case "v", "vmodule", "logtostderr":
Expand All @@ -51,7 +57,9 @@ func main() {
}

pflag.Parse()
if err := npdMain(context.Background(), npdo); err != nil {
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
defer stop()
if err := npdMain(ctx, npdo); err != nil {
klog.Fatalf("Problem detector failed with error: %v", err)
}
}
3 changes: 3 additions & 0 deletions cmd/nodeproblemdetector/node_problem_detector_windows.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ var (
func main() {
klogFlags := flag.NewFlagSet("klog", flag.ExitOnError)
klog.InitFlags(klogFlags)
// Opt into fixed stderrthreshold behavior (kubernetes/klog#212).
_ = klogFlags.Set("legacy_stderr_threshold_behavior", "false")
_ = klogFlags.Set("stderrthreshold", "INFO")
klogFlags.VisitAll(func(f *flag.Flag) {
switch f.Name {
case "v", "vmodule", "logtostderr":
Expand Down
Loading
Loading