k8s.io/kubernetes@v1.29.3/pkg/controller/volume/persistentvolume/volume_host.go (about)

     1  /*
     2  Copyright 2016 The Kubernetes Authors.
     3  
     4  Licensed under the Apache License, Version 2.0 (the "License");
     5  you may not use this file except in compliance with the License.
     6  You may obtain a copy of the License at
     7  
     8      http://www.apache.org/licenses/LICENSE-2.0
     9  
    10  Unless required by applicable law or agreed to in writing, software
    11  distributed under the License is distributed on an "AS IS" BASIS,
    12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  See the License for the specific language governing permissions and
    14  limitations under the License.
    15  */
    16  
    17  package persistentvolume
    18  
    19  import (
    20  	"fmt"
    21  	"net"
    22  
    23  	"k8s.io/klog/v2"
    24  	"k8s.io/mount-utils"
    25  	utilexec "k8s.io/utils/exec"
    26  
    27  	authenticationv1 "k8s.io/api/authentication/v1"
    28  	v1 "k8s.io/api/core/v1"
    29  	"k8s.io/apimachinery/pkg/types"
    30  	clientset "k8s.io/client-go/kubernetes"
    31  	"k8s.io/client-go/tools/record"
    32  	cloudprovider "k8s.io/cloud-provider"
    33  	vol "k8s.io/kubernetes/pkg/volume"
    34  	"k8s.io/kubernetes/pkg/volume/util/subpath"
    35  )
    36  
    37  // VolumeHost interface implementation for PersistentVolumeController.
    38  
    39  var _ vol.VolumeHost = &PersistentVolumeController{}
    40  
    41  func (ctrl *PersistentVolumeController) GetPluginDir(pluginName string) string {
    42  	return ""
    43  }
    44  
    45  func (ctrl *PersistentVolumeController) GetVolumeDevicePluginDir(pluginName string) string {
    46  	return ""
    47  }
    48  
    49  func (ctrl *PersistentVolumeController) GetPodsDir() string {
    50  	return ""
    51  }
    52  
    53  func (ctrl *PersistentVolumeController) GetPodVolumeDir(podUID types.UID, pluginName string, volumeName string) string {
    54  	return ""
    55  }
    56  
    57  func (ctrl *PersistentVolumeController) GetPodPluginDir(podUID types.UID, pluginName string) string {
    58  	return ""
    59  }
    60  
    61  func (ctrl *PersistentVolumeController) GetPodVolumeDeviceDir(ppodUID types.UID, pluginName string) string {
    62  	return ""
    63  }
    64  
    65  func (ctrl *PersistentVolumeController) GetKubeClient() clientset.Interface {
    66  	return ctrl.kubeClient
    67  }
    68  
    69  func (ctrl *PersistentVolumeController) NewWrapperMounter(volName string, spec vol.Spec, pod *v1.Pod, opts vol.VolumeOptions) (vol.Mounter, error) {
    70  	return nil, fmt.Errorf("PersistentVolumeController.NewWrapperMounter is not implemented")
    71  }
    72  
    73  func (ctrl *PersistentVolumeController) NewWrapperUnmounter(volName string, spec vol.Spec, podUID types.UID) (vol.Unmounter, error) {
    74  	return nil, fmt.Errorf("PersistentVolumeController.NewWrapperMounter is not implemented")
    75  }
    76  
    77  func (ctrl *PersistentVolumeController) GetCloudProvider() cloudprovider.Interface {
    78  	return ctrl.cloud
    79  }
    80  
    81  func (ctrl *PersistentVolumeController) GetMounter(pluginName string) mount.Interface {
    82  	return nil
    83  }
    84  
    85  func (ctrl *PersistentVolumeController) GetHostName() string {
    86  	return ""
    87  }
    88  
    89  func (ctrl *PersistentVolumeController) GetHostIP() (net.IP, error) {
    90  	return nil, fmt.Errorf("PersistentVolumeController.GetHostIP() is not implemented")
    91  }
    92  
    93  func (ctrl *PersistentVolumeController) GetNodeAllocatable() (v1.ResourceList, error) {
    94  	return v1.ResourceList{}, nil
    95  }
    96  
    97  func (ctrl *PersistentVolumeController) GetAttachedVolumesFromNodeStatus() (map[v1.UniqueVolumeName]string, error) {
    98  	return map[v1.UniqueVolumeName]string{}, nil
    99  }
   100  
   101  func (ctrl *PersistentVolumeController) GetSecretFunc() func(namespace, name string) (*v1.Secret, error) {
   102  	return func(_, _ string) (*v1.Secret, error) {
   103  		return nil, fmt.Errorf("GetSecret unsupported in PersistentVolumeController")
   104  	}
   105  }
   106  
   107  func (ctrl *PersistentVolumeController) GetConfigMapFunc() func(namespace, name string) (*v1.ConfigMap, error) {
   108  	return func(_, _ string) (*v1.ConfigMap, error) {
   109  		return nil, fmt.Errorf("GetConfigMap unsupported in PersistentVolumeController")
   110  	}
   111  }
   112  
   113  func (ctrl *PersistentVolumeController) GetServiceAccountTokenFunc() func(_, _ string, _ *authenticationv1.TokenRequest) (*authenticationv1.TokenRequest, error) {
   114  	return func(_, _ string, _ *authenticationv1.TokenRequest) (*authenticationv1.TokenRequest, error) {
   115  		return nil, fmt.Errorf("GetServiceAccountToken unsupported in PersistentVolumeController")
   116  	}
   117  }
   118  
   119  func (ctrl *PersistentVolumeController) DeleteServiceAccountTokenFunc() func(types.UID) {
   120  	return func(types.UID) {
   121  		//nolint:logcheck
   122  		klog.ErrorS(nil, "DeleteServiceAccountToken unsupported in PersistentVolumeController")
   123  	}
   124  }
   125  
   126  func (adc *PersistentVolumeController) GetExec(pluginName string) utilexec.Interface {
   127  	return utilexec.New()
   128  }
   129  
   130  func (ctrl *PersistentVolumeController) GetNodeLabels() (map[string]string, error) {
   131  	return nil, fmt.Errorf("GetNodeLabels() unsupported in PersistentVolumeController")
   132  }
   133  
   134  func (ctrl *PersistentVolumeController) GetNodeName() types.NodeName {
   135  	return ""
   136  }
   137  
   138  func (ctrl *PersistentVolumeController) GetEventRecorder() record.EventRecorder {
   139  	return ctrl.eventRecorder
   140  }
   141  
   142  func (ctrl *PersistentVolumeController) GetSubpather() subpath.Interface {
   143  	// No volume plugin needs Subpaths in PV controller.
   144  	return nil
   145  }