Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WRKLDS-1449: Rebase 1.31.1 #2092

Merged
merged 2,559 commits into from
Oct 2, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
2559 commits
Select commit Hold shift + click to select a range
16c2ad5
Add labels to PVCollector bound/unbound PVC metrics for VolumeAttribu…
AndrewSirenko Jul 23, 2024
ad80538
Merge pull request #126291 from haircommander/proc-mount-disable
k8s-ci-robot Jul 23, 2024
107f621
Merge pull request #126108 from gnufied/changes-volume-recovery
k8s-ci-robot Jul 23, 2024
c2fdeca
Merge pull request #126145 from carlory/kep-3751-api
k8s-ci-robot Jul 23, 2024
e79d20d
Add KUBE_EMULATED_VERSION env variable to set the emulated-version of…
siyuanfoundation Jul 23, 2024
59daed7
DRA: refactor checkpointing
bart0sh Jul 18, 2024
35fbbc5
DRA: use crc32.ChecksumIEEE to calculate checkpoint checksum
bart0sh Jul 23, 2024
59555c6
DRA: move dra/checkpont/* to dra/state/*
bart0sh Jul 23, 2024
ac2c450
Update with stdlib errors
cici37 Jul 23, 2024
c0d922e
DRA: Kubelet code cleanup
bart0sh Jul 23, 2024
320f1ab
Merge pull request #126182 from sohankunkerkar/fix-procmount
k8s-ci-robot Jul 23, 2024
f93fe41
Merge pull request #126281 from saschagrunert/oci-volume-docs
k8s-ci-robot Jul 23, 2024
2a372a9
Merge pull request #126290 from tenzen-y/use-type-parameters-instead-…
k8s-ci-robot Jul 23, 2024
fa4b8f3
Merge pull request #125935 from gjkim42/fix-125880
k8s-ci-robot Jul 23, 2024
a48a92c
Allowing direct CEL reserved keyword usage in CRD (#126188)
cici37 Jul 23, 2024
1353c08
Merge pull request #126298 from vinayakankugoyal/apparmortest
k8s-ci-robot Jul 23, 2024
16e8911
add AllocatedResourcesStatus field to ContainerStatus
SergeyKanzhelev Jul 22, 2024
2253b53
generated files
SergeyKanzhelev Jul 22, 2024
3790ee2
reset fields when the feature gate was not set
SergeyKanzhelev Jul 22, 2024
62f96d2
set AllocatedResourcesStatus in the Pod Status
SergeyKanzhelev Jul 22, 2024
638128e
Merge pull request #119019 from gjkim42/add-e2e-node-test-restarting-…
k8s-ci-robot Jul 24, 2024
39a8079
Merge pull request #122628 from sanposhiho/pod-smaller-events
k8s-ci-robot Jul 24, 2024
d97cf3a
Merge pull request #126303 from bart0sh/PR150-dra-refactor-checkpoint…
k8s-ci-robot Jul 24, 2024
59776b5
Merge pull request #126306 from siyuanfoundation/env-var
k8s-ci-robot Jul 24, 2024
49ff255
Merge pull request #126308 from cici37/hotFix
k8s-ci-robot Jul 24, 2024
5af1710
Merge pull request #126243 from SergeyKanzhelev/devicePluginFailures
k8s-ci-robot Jul 24, 2024
c75e30d
Merge pull request #126294 from aojea/nosnat
k8s-ci-robot Jul 24, 2024
57d197f
Merge pull request #124430 from AllenXu93/fix-kubelet-restart-notReady
k8s-ci-robot Jul 24, 2024
c4851c6
remove volumeoptions from VolumePlugin and BlockVolumePlugin
carlory May 23, 2024
a43cc08
Fix runtime panic in imagevolume `CanSupport` method
saschagrunert Jul 24, 2024
a145f15
Merge pull request #125087 from carlory/volumeoptions
k8s-ci-robot Jul 24, 2024
ceb58a4
Merge pull request #126323 from saschagrunert/image-volume-runtime-panic
k8s-ci-robot Jul 24, 2024
bc45288
Add `ImageVolumeSource` e2e tests
saschagrunert Jul 19, 2024
ab470aa
Merge pull request #126220 from saschagrunert/image-volumesource-e2e
k8s-ci-robot Jul 24, 2024
3999b98
Coordinated Leader Election Alpha API
Jefftree Jul 21, 2024
e3e56eb
CLE storage and type registration changes
Jefftree Jul 21, 2024
9b16b0d
CLE feature gate
Jefftree Jul 21, 2024
b5a62f1
CLE rbac for lease and leasecandidate in kube-system
Jefftree Jul 21, 2024
c47ff1e
CLE controller and client changes
Jefftree Jul 21, 2024
e0c6987
add gc and improve testing
Jefftree Jul 23, 2024
68226b0
Review feedback
sttts Jul 23, 2024
fac7581
feedback: leasecandidate clients
Jefftree Jul 23, 2024
42678f1
regen clients
Jefftree Jul 23, 2024
a64418b
Review feedback
sttts Jul 23, 2024
e1ea24a
fix ordering issue in candidates
Jefftree Jul 23, 2024
6407f32
fix etcd data
Jefftree Jul 23, 2024
15affef
Review feedback: handle non-kube strategy correctly
sttts Jul 23, 2024
a738daa
Review feedback: fix context handling in LeaseCandidateGCController
sttts Jul 23, 2024
0c774d0
Change PingTime to be persistent
Jefftree Jul 23, 2024
919e7ab
update codegen and openapi
Jefftree Jul 23, 2024
56b278d
fix flake in TestLeaseCandidateCleanup
Jefftree Jul 24, 2024
3e642ae
move container fs check so that we only check if system is split
kannon92 Jul 24, 2024
696ad19
Merge pull request #126242 from bzsuni/bz/etcd/build/v3.5.15
k8s-ci-robot Jul 24, 2024
df69a52
Merge pull request #126335 from kannon92/split-filesystem-fix
k8s-ci-robot Jul 24, 2024
77541c1
Relax noise margin in TestOneWeightedHistogram
MikeSpreitzer Jul 24, 2024
6ac2067
Merge pull request #126274 from ConnorJC3/flaky-vac-test
k8s-ci-robot Jul 24, 2024
4ad2cd9
Update etcd from v3.5.14 to v3.5.15
bzsuni Jul 19, 2024
b95f9c3
Merge pull request #126282 from macsko/fix_scheduler_perf_tests_takin…
k8s-ci-robot Jul 25, 2024
5359098
kube-proxy: internal config: fuzz cidr values for unit tests
aroradaman Jul 24, 2024
bdb51f2
fix a typo in kubeadm v1beta4 doc
pacoxu Jul 24, 2024
eeae981
set LocalStorageCapacityIsolationFSQuotaMonitoring to false by default
haircommander Jul 25, 2024
087134c
add workdir in etcd Dockerfile for windows
pacoxu Jul 25, 2024
08a74f2
Fix verify-vendor script to check all go.mod and go.sum files
liggitt Jul 25, 2024
aeb6074
revendor dependencies
thaJeztah Jul 25, 2024
9edabd6
Merge pull request #126353 from liggitt/fix-vendor
k8s-ci-robot Jul 25, 2024
e9d9a82
Merge pull request #124101 from haircommander/process_stats-with-pid-fix
k8s-ci-robot Jul 25, 2024
5f5c02d
Merge pull request #124012 from Jefftree/le-controller
k8s-ci-robot Jul 25, 2024
9a16c96
Merge pull request #126324 from pacoxu/v1beta4-typo
k8s-ci-robot Jul 25, 2024
c853ca4
Merge pull request #126355 from haircommander/fs-quotas-false
k8s-ci-robot Jul 25, 2024
b4dcbbe
Merge pull request #126356 from pacoxu/fix-etcd-build-windows
k8s-ci-robot Jul 25, 2024
bee5e03
Merge pull request #126333 from aroradaman/master
k8s-ci-robot Jul 25, 2024
87f4044
kube-apiserver/leaderelection: remove broken printf
sttts Jul 26, 2024
f44f7b7
Merge pull request #126377 from sttts/sttts-cle-fix-TestPickBestStrategy
k8s-ci-robot Jul 26, 2024
b98817c
build: fix README instructions to load the output image tar
flavianmissi Jun 24, 2024
92e62bf
Update the Comment for StableLoadBalancerNodeSet Feature Gate.
Shubham82 Jul 26, 2024
3a8a60e
Merge pull request #126240 from bzsuni/bz/etcd/update/v3.5.15
k8s-ci-robot Jul 26, 2024
a1bbae8
fix resource health status test failures in unlabeled jobs
kannon92 Jul 26, 2024
86e2e26
Merge pull request #125674 from flavianmissi/builds-doc
k8s-ci-robot Jul 26, 2024
ebdca53
[sample-apiserver] Fix: Use Correct Effective Version for kube (#125941)
fxierh Jul 26, 2024
250f7b5
Merge pull request #126386 from kannon92/126367-device-plugin-label
k8s-ci-robot Jul 26, 2024
c7a1fa4
Call non-blocking informerFactory.Start synchronously to avoid races
sttts Jul 27, 2024
cd69335
informers: add comment that Start does not block
Jefftree Jul 27, 2024
ba6141a
Merge pull request #126405 from sttts/sttts-sync-informerfactory-start
k8s-ci-robot Jul 27, 2024
8c971c5
kube-apiserver/leaderelection/test: fixing waiting for informer
sttts Jul 27, 2024
b8045f9
kube-apiserver/leaderelection/tests: use fake clock
sttts Jul 27, 2024
f173f0c
kube-apiserver/leaderelection/tests: fix test case PingTime should be…
Jefftree Jul 27, 2024
2aa468c
Merge pull request #126344 from MikeSpreitzer/fix-120112
k8s-ci-robot Jul 27, 2024
a2106b5
Merge pull request #126407 from Jefftree/fake-clock
k8s-ci-robot Jul 27, 2024
b13aab9
kube-apiserver/leaderelection: remove klog noise
sttts Jul 29, 2024
3987d85
kube-apiserver/leaderelection/test: clean up controller test
sttts Jul 29, 2024
c203b12
Revert "Bump images, dependencies and versions to go 1.23rc2"
ArkaSaha30 Jul 29, 2024
d1dfeed
Revert "Bump images, dependencies and versions to go 1.23rc1"
ArkaSaha30 Jul 29, 2024
aa28bd6
Revert distroless-iptables from v0.6.1 to v0.5.6
ArkaSaha30 Jul 29, 2024
78d3830
ignore order of containers status allocated resources
pacoxu Jul 29, 2024
9ee99a9
skip if ResourceHealthStatus is disabled
pacoxu Jul 29, 2024
05934d6
Merge pull request #126330 from ArkaSaha30/revert-to-go1.22
k8s-ci-robot Jul 29, 2024
7a4c962
Merge pull request #126428 from sttts/sttts-cle-controller-test
k8s-ci-robot Jul 29, 2024
50e430b
Fix kubelet cadvisor stats runtime panic
saschagrunert Jul 29, 2024
a7af830
Rename kubelet CSR admission feature gate
micahhausler Jul 29, 2024
aab56e9
Merge pull request #126441 from micahhausler/kubelet-cert-feature-gat…
k8s-ci-robot Jul 29, 2024
e8588e6
Merge pull request #126429 from saschagrunert/kubelet-panic
k8s-ci-robot Jul 29, 2024
d092513
Use fake clock for controller/leaderelection:TestController
Jefftree Jul 29, 2024
b5b2171
Merge pull request #126427 from pacoxu/fix-TestUpdateAllocatedResourc…
k8s-ci-robot Jul 29, 2024
17d7d28
Merge pull request #126431 from pacoxu/device-plugin-falures-pod-status
k8s-ci-robot Jul 30, 2024
634c9cd
Address comments
sttts Jul 30, 2024
0fc1671
Merge pull request #126446 from Jefftree/fix-leaderelection-flake-tes…
k8s-ci-robot Jul 30, 2024
11ace3a
Release commit for Kubernetes v1.31.0-rc.0
k8s-release-robot Jul 30, 2024
3596256
Implement fallback for consistent reads from cache
serathius Jul 30, 2024
c838004
Move APIServingWithRoutine to alpha and disabled by default.
benluddy Jul 30, 2024
974f3d3
Merge pull request #126467 from serathius/fallback
k8s-ci-robot Jul 30, 2024
2ca56aa
Move ConsistentListFromCache to Beta default again
serathius Jul 30, 2024
d0ced54
kube-up.sh: drop unnecessary legacy mirror config, enable injecting r…
BenTheElder Jul 29, 2024
f9d2297
Merge pull request #126470 from benluddy/apiservingwithroutine-alpha-…
k8s-ci-robot Jul 31, 2024
2a1d417
Merge pull request #126448 from BenTheElder/5k-mirror
k8s-ci-robot Jul 31, 2024
9413cf2
CHANGELOG: Update directory for v1.31.0-rc.0 release
k8s-release-robot Jul 30, 2024
f72233c
Merge remote-tracking branch 'origin/master' into release-1.31
k8s-release-robot Jul 31, 2024
eb729d1
Merge pull request #126469 from serathius/beta2
k8s-ci-robot Jul 31, 2024
93a10a7
Introduce ConcurrentWatchObjectDecode feature gate disabled by default
serathius Jul 30, 2024
bb686f2
Make object transformation concurrent to remove watch cache scalabili…
serathius Jul 22, 2024
8855ca8
Merge remote-tracking branch 'origin/master' into release-1.31
k8s-release-robot Jul 31, 2024
017d7b8
releng: update publishing bot rules for 1.31
mehabhalodiya Jul 31, 2024
c19d9ed
Merge pull request #126329 from serathius/concurrent-transformation-c…
k8s-ci-robot Jul 31, 2024
f8d5b20
Merge pull request #126489 from mehabhalodiya/bump-publishing-131
k8s-ci-robot Jul 31, 2024
cb08f03
Merge remote-tracking branch 'origin/master' into release-1.31
k8s-release-robot Jul 31, 2024
dbc2b0a
Merge pull request #126383 from Shubham82/correct_comment_for_StableL…
k8s-ci-robot Aug 1, 2024
12cc220
Merge remote-tracking branch 'origin/master' into release-1.31
k8s-release-robot Aug 1, 2024
4fc6d8d
[kube-proxy] add log verbosity to endpoint topology hint loop - Take 2
dims Aug 2, 2024
00236ae
Merge pull request #126519 from dims/bjhaid-bjhaid-topology-verbosity…
k8s-ci-robot Aug 3, 2024
1d1cc29
Merge remote-tracking branch 'origin/master' into release-1.31
k8s-release-robot Aug 4, 2024
7734673
Release commit for Kubernetes v1.31.0-rc.1
k8s-release-robot Aug 6, 2024
a24dafa
Update CHANGELOG/CHANGELOG-1.31.md for v1.31.0-rc.1
k8s-release-robot Aug 6, 2024
60c4c2b
CHANGELOG: Update directory for v1.31.0-rc.1 release
k8s-release-robot Aug 6, 2024
3ea0248
Merge remote-tracking branch 'origin/master' into release-1.31
k8s-release-robot Aug 6, 2024
fad6c42
wait: don't lowercase condition in --for argument
soltysh Aug 12, 2024
099a883
Merge pull request #126638 from soltysh/fix_wait
k8s-ci-robot Aug 12, 2024
57846e1
Merge remote-tracking branch 'origin/master' into release-1.31
k8s-release-robot Aug 12, 2024
9edcffc
Release commit for Kubernetes v1.31.0
k8s-release-robot Aug 13, 2024
8991b8e
Update CHANGELOG/CHANGELOG-1.31.md for v1.31.0
k8s-release-robot Aug 13, 2024
906d157
Restore honoring --version build ID overrides
liggitt Aug 13, 2024
f520ede
kube-proxy: initialization wait for service and endpoint handlers synced
wedaly Jul 30, 2024
9eec84c
fix a scheduler preemption issue that victim is not patched properly
Huang-Wei Aug 12, 2024
60a402c
Merge pull request #126691 from Huang-Wei/automated-cherry-pick-of-#1…
k8s-ci-robot Aug 15, 2024
4d8e197
Merge pull request #126670 from liggitt/automated-cherry-pick-of-#126…
k8s-ci-robot Aug 15, 2024
d8da86b
Switch DisableNodeKubeProxyVersion back to disabled-by-default
liggitt Aug 15, 2024
62e601a
fix v1a3 ResourceSliceList metadata field name
thockin Aug 16, 2024
1f42675
kube-up.sh: bump coreDNS to 1.11.3
BenTheElder Jul 29, 2024
3301161
kubeadm: bump coredns to 1.11.3
BenTheElder Jul 29, 2024
2197f54
update coredns/corefile-migration to v1.0.23 to support coredns v1.11.3
BenTheElder Jul 31, 2024
17f75a7
Merge pull request #126796 from BenTheElder/automated-cherry-pick-of-…
k8s-ci-robot Aug 21, 2024
11476df
Merge pull request #126721 from liggitt/automated-cherry-pick-of-#126…
k8s-ci-robot Aug 22, 2024
6498fed
Merge pull request #126761 from thockin/automated-cherry-pick-of-#126…
k8s-ci-robot Aug 27, 2024
d539a38
Bump images, dependencies and versions to go 1.22.6 and distroless ip…
cpanato Aug 28, 2024
6572754
Merge pull request #126687 from wedaly/automated-cherry-pick-of-#1265…
k8s-ci-robot Aug 28, 2024
90c6cfd
Merge pull request #126974 from cpanato/update-go-1226-rel-131
k8s-ci-robot Aug 28, 2024
312b038
Update cni-plugins to v1.5.1
saschagrunert Aug 28, 2024
620c9ed
Merge pull request #126988 from saschagrunert/automated-cherry-pick-o…
k8s-ci-robot Aug 29, 2024
490bafc
add missing RBAC to statefulset-controller for StatefulSetAutoDeleteP…
atiratree Aug 26, 2024
2454d8d
Revert "fix: handle socket file detection on Windows"
jsturtevant Aug 28, 2024
6e744c6
Merge pull request #127066 from atiratree/automated-cherry-pick-of-#1…
k8s-ci-robot Sep 4, 2024
f67b922
Merge pull request #127100 from jsturtevant/automated-cherry-pick-of-…
k8s-ci-robot Sep 4, 2024
8469207
Avoid SidecarContainers code path for non-sidecar pods
gjkim42 Sep 5, 2024
8a28b17
succeeded pod is being re-admitted
SergeyKanzhelev Jul 24, 2024
fc5d752
Restart the init container to not be stuck in created state
gjkim42 Aug 5, 2024
8cf2eb9
Merge pull request #127202 from SergeyKanzhelev/automated-cherry-pick…
k8s-ci-robot Sep 9, 2024
939edc7
Merge pull request #127207 from SergeyKanzhelev/automated-cherry-pick…
k8s-ci-robot Sep 9, 2024
a8a78f0
Merge pull request #127212 from SergeyKanzhelev/automated-cherry-pick…
k8s-ci-robot Sep 9, 2024
948afe5
Release commit for Kubernetes v1.31.1
k8s-release-robot Sep 11, 2024
ad575cb
Merge remote-tracking branch 'openshift/master' into rebase-1.31.1
atiratree Oct 1, 2024
56e15a3
UPSTREAM: 74956: apiserver: switch authorization to use protobuf client
mfojtik Oct 29, 2020
64647a6
UPSTREAM: 93286: wait for apiservices on startup
deads2k Oct 29, 2020
2ec46c3
UPSTREAM: <carry>: filter out CustomResourceQuota paths from OpenAPI
sttts Oct 29, 2020
ef0a1db
UPSTREAM: <carry>: patch aggregator to allow delegating resources
mfojtik Oct 29, 2020
5058f3e
UPSTREAM: <carry>: remove apiservice from sync in CRD registration wh…
mfojtik Oct 29, 2020
3c41978
UPSTREAM: <carry>: hardcoded restmapper with a few entries to reboots…
deads2k Oct 29, 2020
3a0fa38
UPSTREAM: <carry>: Extend NodeLogQuery feature
aravindhp Apr 12, 2023
0fcfda2
UPSTREAM: <carry>: kube-controller-manager: add service serving cert …
deads2k Oct 29, 2020
5a3a03c
UPSTREAM: <carry>: kube-controller-manager: allow running bare kube-c…
deads2k Oct 29, 2020
4b22592
UPSTREAM: <carry>: kube-controller-manager: exclude some origin resou…
deads2k Oct 29, 2020
b2db0d5
UPSTREAM: <carry>: kube-apiserver: add our immortal namespaces direct…
deads2k Oct 29, 2020
72a6eb5
UPSTREAM: <carry>: openshift-kube-apiserver: add kube-apiserver patches
deads2k Oct 29, 2020
a0bcf16
UPSTREAM: <carry>: openshift-kube-apiserver: add openshift-kube-apise…
deads2k Oct 29, 2020
8281a67
UPSTREAM: <carry>: kube-apiserver: priorize some CRD groups over others
deads2k Oct 29, 2020
6d6b285
UPSTREAM: <carry>: kube-apiserver: wire through isTerminating into ha…
sttts Oct 29, 2020
07bd218
UPSTREAM: <carry>: create termination events
sttts Oct 29, 2020
a084e80
UPSTREAM: <carry>: bootstrap-rbac-policy: move over .well-known rules
sttts Oct 29, 2020
068b3bf
UPSTREAM: <carry>: warn only about unknown feature gates
sttts Oct 29, 2020
e49bfbe
UPSTREAM: <carry>: disable AES24, not supported by FIPS
rphillips Oct 29, 2020
b6429e3
UPSTREAM: <carry>: Remove excessive e2e logging
p0lyn0mial Oct 29, 2020
fabdcfa
UPSTREAM: <carry>: conditionally fill the UserAgent from the currentl…
p0lyn0mial Oct 29, 2020
9cc9eb4
UPSTREAM: <carry>: refactor/improve CRD publishing e2e tests in an HA…
p0lyn0mial Oct 29, 2020
7e7be15
UPSTREAM: <carry>: Add OpenShift tooling, images, configs and docs
marun Oct 29, 2020
498906a
UPSTREAM: <carry>: export HandleFlags
soltysh Jul 21, 2021
fb64af0
UPSTREAM: <carry>: noderestrictions: add node-role.kubernetes.io/* to…
sttts Oct 29, 2020
bc8b49b
UPSTREAM: <carry>: kube-apiserver: ignore SIGTERM/INT after the first…
sttts Feb 8, 2021
9445c56
UPSTREAM: <carry>: use hardcoded metrics scraping authorizer for dele…
deads2k Feb 22, 2021
edf92e2
UPSTREAM: <carry>: allow kubelet to self-authorize metrics scraping
deads2k Mar 1, 2021
26724cb
UPSTREAM: <carry>: provide events, messages, and bodies for probe fai…
deads2k Mar 9, 2021
7cb1ce5
UPSTREAM: <carry>: allows for switching KS to talk to Kube API over l…
p0lyn0mial Mar 24, 2021
cec2232
UPSTREAM: <carry>: add management support to kubelet
rphillips Mar 29, 2021
7bf98f0
UPSTREAM: <carry>: allows for switching KCM to talk to Kube API over …
p0lyn0mial Mar 4, 2021
aba78d1
UPSTREAM: <carry>: Ensure service ca is mounted for projected tokens
marun May 10, 2021
133baa3
UPSTREAM: <carry>: apiserver: add system_client=kube-{apiserver,cm,s}…
sttts Jun 3, 2021
634142b
UPSTREAM: <carry>: emit event when readyz goes true
deads2k Jun 14, 2021
cc1da57
UPSTREAM: <carry>: crd: add ClusterOperator condition message table c…
sttts Jun 16, 2021
27db427
UPSTREAM: 103612: tolerate additional, but congruent, events for inte…
deads2k Jul 9, 2021
67a4304
UPSTREAM: <carry>: add a way to inject a vulnerable, legacy service-c…
deads2k Jul 9, 2021
3cdc372
UPSTREAM: <carry>: Revert "Remove Endpoints write access from aggrega…
danwinship Aug 23, 2021
36dff3a
UPSTREAM: <carry>: skip posting failures to aggregated APIs to avoid …
p0lyn0mial Aug 24, 2021
6acc5c4
UPSTREAM: <carry>: send Retry-After when not ready with a caller opt in
tkashem Aug 25, 2021
1919f6f
UPSTREAM: <carry>: add max_housekeeping_interval
rphillips Jul 7, 2021
8fd21c7
UPSTREAM: <carry>: sets X-OpenShift-Internal-If-Not-Ready HTTP Header…
p0lyn0mial Aug 26, 2021
e1a45fd
UPSTREAM: <carry>: Release lock on KCM and KS termination
tnozicka Oct 29, 2020
6eb781f
UPSTREAM: <carry>: use console-public config map for console redirect
atiratree Jan 12, 2022
cc8e168
UPSTREAM: <carry>: fix [sig-auth] ServiceAccounts no secret-based ser…
tkashem Apr 29, 2022
d09f9f5
UPSTREAM: <carry>: optionally enable retry after until apiserver is r…
tkashem Aug 17, 2022
6a8405b
UPSTREAM: <carry>: make the PSA workload admission warnings honor the…
deads2k Oct 17, 2022
4907672
UPSTREAM: <carry>: PSa metrics: log platform namespaces in audit denies
stlaz Jan 16, 2023
a65a48e
UPSTREAM: 115328: annotate early and late requests
tkashem Mar 13, 2023
262021e
UPSTREAM: <carry>: disable load balancing on created cgroups when man…
haircommander Mar 20, 2023
0e3803f
UPSTREAM: <carry>: APISelfSubjectReview: only test v1beta1 API
bertinatto Apr 3, 2023
2cb60d2
UPSTREAM: <carry>: Export internal code from k8s.io/apimachinery/pkg/…
bertinatto Apr 27, 2023
15e0dcd
UPSTREAM: <carry>: when only this kube-apiserver can fulfill the kube…
deads2k Jun 23, 2023
497a718
UPSTREAM: <carry>: merge v3 openapi discovery and specs for special g…
atiratree Aug 3, 2023
f8dc409
UPSTREAM: <carry>: selfsubjectaccessreview: grant user:full scope to …
liouk Mar 1, 2023
704d2b7
UPSTREAM: <carry>: retry etcd Unavailable errors
p0lyn0mial Aug 29, 2023
de46dd1
UPSTREAM: <carry>: Export cpu stats of ovs.slice via prometheus
MarSik Aug 31, 2023
13a43e1
UPSTREAM: <carry>: advertise shared cpus for mixed cpus feature
Tal-or Nov 9, 2023
b76c03e
UPSTREAM: <carry>: temporarily disable reporting e2e text bugs and en…
soltysh Dec 2, 2023
7ad5a82
UPSTREAM: <carry>: add new admission for handling shared cpus
Tal-or Nov 12, 2023
a58e0e5
UPSTREAM: <carry>: Add openshift feature gates to kube-apiserver - in…
swghosh Mar 15, 2024
2cca88f
UPSTREAM: <carry>: allow type mutation for specific secrets
tkashem Mar 29, 2024
0689f9d
UPSTREAM: 125337: ccm integration test for node status addresses and …
aojea Jun 3, 2024
f9df168
UPSTREAM: <carry>: bump cadvisor for 3516 upstream patches
harche Jul 4, 2024
72dd9d4
UPSTREAM: 126213: add test about container metrics from cadvisor
rphillips Jul 31, 2024
fd57b04
UPSTREAM: 126641: e1e/storage: update block device test to always spe…
haircommander Aug 12, 2024
744fe55
UPSTREAM: 126994: Add required FieldManager for validatingadmissionpo…
dgoodwin Aug 29, 2024
852ce50
UPSTREAM: 126295: dynamiccertificates: denoise Kubelet logs by skippi…
sohankunkerkar Jul 23, 2024
53dc4d3
UPSTREAM: <carry>: annotate audit events for requests during unready …
tkashem Sep 5, 2024
63e3c12
UPSTREAM: 127243: Fix invalid label use in validatingadmissionpolicy e2e
dgoodwin Sep 3, 2024
cc3ae63
UPSTREAM: <carry>: add etcd3RetryingProberMonitor for retrying etcd U…
p0lyn0mial Sep 9, 2024
1e588a9
UPSTREAM: <carry>: replace newETCD3ProberMonitor with etcd3RetryingPr…
p0lyn0mial Sep 9, 2024
3a4fe5d
UPSTREAM: <carry>: skip Kubectl logs tests until the oc is bumped to …
atiratree Aug 22, 2024
64ef215
UPSTREAM: 126846: Fix the localhost nodeport metrics test to not fail…
danwinship Aug 21, 2024
9e6fa17
UPSTREAM: <drop>: disable ResilientWatchCacheInitialization feature
bertinatto Sep 18, 2024
9e44aa6
UPSTREAM: 127492: pkg/storage/cacher/cacher_whitebox_test: deflake Te…
p0lyn0mial Sep 20, 2024
c9dba0e
UPSTREAM: 127493: storage/cacher/cacher_whitebox_test:deflake TestCac…
p0lyn0mial Sep 20, 2024
16a35fe
UPSTREAM: 127500: cacher: prevents sending events with ResourceVersio…
p0lyn0mial Sep 20, 2024
da57abd
UPSTREAM: 125398: Fix issue with scheduler failing on hostname mismatch
AxeZhan Jun 8, 2024
a554290
UPSTREAM: <drop>: hack/update-vendor.sh
atiratree Oct 1, 2024
65e0eba
UPSTREAM: <drop>: make update
atiratree Oct 1, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Add labels to PVCollector bound/unbound PVC metrics for VolumeAttribu…
…tesClass Feature (kubernetes#126166)

* Add labels to PVCollector bound/unbound PVC metrics

* fixup! Add labels to PVCollector bound/unbound PVC metrics

* wip: Fix 'Unknown
    Decorator'

* fixup! Add labels to PVCollector bound/unbound PVC metrics
  • Loading branch information
AndrewSirenko authored Jul 23, 2024
commit 16c2ad5b842f23eda3674d3cd908de359554d5dc
44 changes: 30 additions & 14 deletions pkg/controller/volume/persistentvolume/metrics/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,10 @@ import (
v1 "k8s.io/api/core/v1"
"k8s.io/component-base/metrics"
"k8s.io/component-base/metrics/legacyregistry"
storagehelpers "k8s.io/component-helpers/storage/volume"
"k8s.io/kubernetes/pkg/volume"
metricutil "k8s.io/kubernetes/pkg/volume/util"
"k8s.io/utils/ptr"
)

const (
Expand All @@ -39,10 +41,11 @@ const (
unboundPVCKey = "unbound_pvc_count"

// Label names.
namespaceLabel = "namespace"
storageClassLabel = "storage_class"
pluginNameLabel = "plugin_name"
volumeModeLabel = "volume_mode"
namespaceLabel = "namespace"
storageClassLabel = "storage_class"
volumeAttributesClassLabel = "volume_attributes_class"
pluginNameLabel = "plugin_name"
volumeModeLabel = "volume_mode"

// String to use when plugin name cannot be determined
pluginNameNotAvailable = "N/A"
Expand Down Expand Up @@ -86,6 +89,19 @@ type pvAndPVCCountCollector struct {
pluginMgr *volume.VolumePluginMgr
}

// Holds all dimensions for bound/unbound PVC metrics
type pvcBindingMetricDimensions struct {
namespace, storageClassName, volumeAttributesClassName string
}

func getPVCMetricDimensions(pvc *v1.PersistentVolumeClaim) pvcBindingMetricDimensions {
return pvcBindingMetricDimensions{
namespace: pvc.Namespace,
storageClassName: storagehelpers.GetPersistentVolumeClaimClass(pvc),
volumeAttributesClassName: ptr.Deref(pvc.Spec.VolumeAttributesClassName, ""),
}
}

// Check if our collector implements necessary collector interface
var _ metrics.StableCollector = &pvAndPVCCountCollector{}

Expand All @@ -109,12 +125,12 @@ var (
boundPVCCountDesc = metrics.NewDesc(
metrics.BuildFQName("", pvControllerSubsystem, boundPVCKey),
"Gauge measuring number of persistent volume claim currently bound",
[]string{namespaceLabel}, nil,
[]string{namespaceLabel, storageClassLabel, volumeAttributesClassLabel}, nil,
metrics.ALPHA, "")
unboundPVCCountDesc = metrics.NewDesc(
metrics.BuildFQName("", pvControllerSubsystem, unboundPVCKey),
"Gauge measuring number of persistent volume claim currently unbound",
[]string{namespaceLabel}, nil,
[]string{namespaceLabel, storageClassLabel, volumeAttributesClassLabel}, nil,
metrics.ALPHA, "")

volumeOperationErrorsMetric = metrics.NewCounterVec(
Expand Down Expand Up @@ -218,32 +234,32 @@ func (collector *pvAndPVCCountCollector) pvCollect(ch chan<- metrics.Metric) {
}

func (collector *pvAndPVCCountCollector) pvcCollect(ch chan<- metrics.Metric) {
boundNumberByNamespace := make(map[string]int)
unboundNumberByNamespace := make(map[string]int)
boundNumber := make(map[pvcBindingMetricDimensions]int)
unboundNumber := make(map[pvcBindingMetricDimensions]int)
for _, pvcObj := range collector.pvcLister.List() {
pvc, ok := pvcObj.(*v1.PersistentVolumeClaim)
if !ok {
continue
}
if pvc.Status.Phase == v1.ClaimBound {
boundNumberByNamespace[pvc.Namespace]++
boundNumber[getPVCMetricDimensions(pvc)]++
} else {
unboundNumberByNamespace[pvc.Namespace]++
unboundNumber[getPVCMetricDimensions(pvc)]++
}
}
for namespace, number := range boundNumberByNamespace {
for pvcLabels, number := range boundNumber {
ch <- metrics.NewLazyConstMetric(
boundPVCCountDesc,
metrics.GaugeValue,
float64(number),
namespace)
pvcLabels.namespace, pvcLabels.storageClassName, pvcLabels.volumeAttributesClassName)
}
for namespace, number := range unboundNumberByNamespace {
for pvcLabels, number := range unboundNumber {
ch <- metrics.NewLazyConstMetric(
unboundPVCCountDesc,
metrics.GaugeValue,
float64(number),
namespace)
pvcLabels.namespace, pvcLabels.storageClassName, pvcLabels.volumeAttributesClassName)
}
}

Expand Down
69 changes: 54 additions & 15 deletions test/e2e/storage/volume_metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ import (
clientset "k8s.io/client-go/kubernetes"
"k8s.io/component-base/metrics/testutil"
"k8s.io/component-helpers/storage/ephemeral"
"k8s.io/kubernetes/pkg/features"
kubeletmetrics "k8s.io/kubernetes/pkg/kubelet/metrics"
"k8s.io/kubernetes/test/e2e/feature"
"k8s.io/kubernetes/test/e2e/framework"
e2emetrics "k8s.io/kubernetes/test/e2e/framework/metrics"
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
Expand Down Expand Up @@ -499,10 +501,11 @@ var _ = utils.SIGDescribe(framework.WithSerial(), "Volume metrics", func() {
// Test for pv controller metrics, concretely: bound/unbound pv/pvc count.
ginkgo.Describe("PVController", func() {
const (
classKey = "storage_class"
namespaceKey = "namespace"
pluginNameKey = "plugin_name"
volumeModeKey = "volume_mode"
namespaceKey = "namespace"
pluginNameKey = "plugin_name"
volumeModeKey = "volume_mode"
storageClassKey = "storage_class"
volumeAttributeClassKey = "volume_attributes_class"

totalPVKey = "pv_collector_total_pv_count"
boundPVKey = "pv_collector_bound_pv_count"
Expand All @@ -515,22 +518,24 @@ var _ = utils.SIGDescribe(framework.WithSerial(), "Volume metrics", func() {
pv *v1.PersistentVolume
pvc *v1.PersistentVolumeClaim

className = "bound-unbound-count-test-sc"
pvConfig = e2epv.PersistentVolumeConfig{
storageClassName = "bound-unbound-count-test-sc"
pvConfig = e2epv.PersistentVolumeConfig{
PVSource: v1.PersistentVolumeSource{
HostPath: &v1.HostPathVolumeSource{Path: "/data"},
},
NamePrefix: "pv-test-",
StorageClassName: className,
StorageClassName: storageClassName,
}
pvcConfig = e2epv.PersistentVolumeClaimConfig{StorageClassName: &className}
// TODO: Insert volumeAttributesClassName into pvcConfig when "VolumeAttributesClass" is GA
volumeAttributesClassName = "bound-unbound-count-test-vac"
pvcConfig = e2epv.PersistentVolumeClaimConfig{StorageClassName: &storageClassName}

e2emetrics = []struct {
name string
dimension string
}{
{boundPVKey, classKey},
{unboundPVKey, classKey},
{boundPVKey, storageClassKey},
{unboundPVKey, storageClassKey},
{boundPVCKey, namespaceKey},
{unboundPVCKey, namespaceKey},
}
Expand All @@ -556,7 +561,7 @@ var _ = utils.SIGDescribe(framework.WithSerial(), "Volume metrics", func() {
if expectValues == nil {
expectValues = make(map[string]int64)
}
// We using relative increment value instead of absolute value to reduce unexpected flakes.
// We use relative increment value instead of absolute value to reduce unexpected flakes.
// Concretely, we expect the difference of the updated values and original values for each
// test suit are equal to expectValues.
actualValues := calculateRelativeValues(originMetricValues[i],
Expand Down Expand Up @@ -604,8 +609,8 @@ var _ = utils.SIGDescribe(framework.WithSerial(), "Volume metrics", func() {
var err error
pv, err = e2epv.CreatePV(ctx, c, f.Timeouts, pv)
framework.ExpectNoError(err, "Error creating pv: %v", err)
waitForPVControllerSync(ctx, metricsGrabber, unboundPVKey, classKey)
validator(ctx, []map[string]int64{nil, {className: 1}, nil, nil})
waitForPVControllerSync(ctx, metricsGrabber, unboundPVKey, storageClassKey)
validator(ctx, []map[string]int64{nil, {storageClassName: 1}, nil, nil})
})

ginkgo.It("should create unbound pvc count metrics for pvc controller after creating pvc only",
Expand All @@ -622,11 +627,45 @@ var _ = utils.SIGDescribe(framework.WithSerial(), "Volume metrics", func() {
var err error
pv, pvc, err = e2epv.CreatePVPVC(ctx, c, f.Timeouts, pvConfig, pvcConfig, ns, true)
framework.ExpectNoError(err, "Error creating pv pvc: %v", err)
waitForPVControllerSync(ctx, metricsGrabber, boundPVKey, classKey)
waitForPVControllerSync(ctx, metricsGrabber, boundPVKey, storageClassKey)
waitForPVControllerSync(ctx, metricsGrabber, boundPVCKey, namespaceKey)
validator(ctx, []map[string]int64{{className: 1}, nil, {ns: 1}, nil})
validator(ctx, []map[string]int64{{storageClassName: 1}, nil, {ns: 1}, nil})
})

// TODO: Merge with bound/unbound tests when "VolumeAttributesClass" feature is enabled by default
f.It("should create unbound pvc count metrics for pvc controller with volume attributes class dimension after creating pvc only",
feature.VolumeAttributesClass, framework.WithFeatureGate(features.VolumeAttributesClass), func(ctx context.Context) {
var err error
dimensions := []string{namespaceKey, storageClassKey, volumeAttributeClassKey}
pvcConfigWithVAC := pvcConfig
pvcConfigWithVAC.VolumeAttributesClassName = &volumeAttributesClassName
pvcWithVAC := e2epv.MakePersistentVolumeClaim(pvcConfigWithVAC, ns)
pvc, err = e2epv.CreatePVC(ctx, c, ns, pvcWithVAC)
framework.ExpectNoError(err, "Error creating pvc: %v", err)
waitForPVControllerSync(ctx, metricsGrabber, unboundPVCKey, volumeAttributeClassKey)
controllerMetrics, err := metricsGrabber.GrabFromControllerManager(ctx)
framework.ExpectNoError(err, "Error getting c-m metricValues: %v", err)
err = testutil.ValidateMetrics(testutil.Metrics(controllerMetrics), unboundPVCKey, dimensions...)
framework.ExpectNoError(err, "Invalid metric in Controller Manager metrics: %q", unboundPVCKey)
})

// TODO: Merge with bound/unbound tests when "VolumeAttributesClass" feature is enabled by default
f.It("should create bound pv/pvc count metrics for pvc controller with volume attributes class dimension after creating both pv and pvc",
feature.VolumeAttributesClass, framework.WithFeatureGate(features.VolumeAttributesClass), func(ctx context.Context) {
var err error
dimensions := []string{namespaceKey, storageClassKey, volumeAttributeClassKey}
pvcConfigWithVAC := pvcConfig
pvcConfigWithVAC.VolumeAttributesClassName = &volumeAttributesClassName
pv, pvc, err = e2epv.CreatePVPVC(ctx, c, f.Timeouts, pvConfig, pvcConfigWithVAC, ns, true)
framework.ExpectNoError(err, "Error creating pv pvc: %v", err)
waitForPVControllerSync(ctx, metricsGrabber, boundPVKey, storageClassKey)
waitForPVControllerSync(ctx, metricsGrabber, boundPVCKey, volumeAttributeClassKey)
controllerMetrics, err := metricsGrabber.GrabFromControllerManager(ctx)
framework.ExpectNoError(err, "Error getting c-m metricValues: %v", err)
err = testutil.ValidateMetrics(testutil.Metrics(controllerMetrics), boundPVCKey, dimensions...)
framework.ExpectNoError(err, "Invalid metric in Controller Manager metrics: %q", boundPVCKey)
})

ginkgo.It("should create total pv count metrics for with plugin and volume mode labels after creating pv",
func(ctx context.Context) {
var err error
Expand Down