Skip to content

Commit

Permalink
Merge pull request kubernetes#123446 from linxiulei/hit_cache
Browse files Browse the repository at this point in the history
Hit APIServer cache when testing healthiness
  • Loading branch information
k8s-ci-robot committed Mar 4, 2024
2 parents 9043ce0 + 9f9858b commit d34fbeb
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion pkg/volume/csi/csi_plugin.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ import (
storagelisters "k8s.io/client-go/listers/storage/v1"
csitranslationplugins "k8s.io/csi-translation-lib/plugins"
"k8s.io/kubernetes/pkg/features"
"k8s.io/kubernetes/pkg/kubelet/util"
"k8s.io/kubernetes/pkg/volume"
"k8s.io/kubernetes/pkg/volume/csi/nodeinfomanager"
volumetypes "k8s.io/kubernetes/pkg/volume/util/types"
Expand Down Expand Up @@ -867,12 +868,16 @@ func unregisterDriver(driverName string) error {
// for a healthy APIServer
func waitForAPIServerForever(client clientset.Interface, nodeName types.NodeName) error {
var lastErr error
// Served object is discarded so no risk to have stale object with benefit to
// reduce the load on APIServer and etcd.
opts := meta.GetOptions{}
util.FromApiserverCache(&opts)
err := wait.PollImmediateInfinite(time.Second, func() (bool, error) {
// Get a CSINode from API server to make sure 1) kubelet can reach API server
// and 2) it has enough permissions. Kubelet may have restricted permissions
// when it's bootstrapping TLS.
// https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet-tls-bootstrapping/
_, lastErr = client.StorageV1().CSINodes().Get(context.TODO(), string(nodeName), meta.GetOptions{})
_, lastErr = client.StorageV1().CSINodes().Get(context.TODO(), string(nodeName), opts)
if lastErr == nil || apierrors.IsNotFound(lastErr) {
// API server contacted
return true, nil
Expand Down

0 comments on commit d34fbeb

Please sign in to comment.