k8s.io/kubernetes@v1.31.0-alpha.0.0.20240520171757-56147500dadc/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  	vol "k8s.io/kubernetes/pkg/volume"
    33  	"k8s.io/kubernetes/pkg/volume/util/subpath"
    34  )
    35  
    36  // VolumeHost interface implementation for PersistentVolumeController.
    37  
    38  var _ vol.VolumeHost = &PersistentVolumeController{}
    39  
    40  func (ctrl *PersistentVolumeController) GetPluginDir(pluginName string) string {
    41  	return ""
    42  }
    43  
    44  func (ctrl *PersistentVolumeController) GetVolumeDevicePluginDir(pluginName string) string {
    45  	return ""
    46  }
    47  
    48  func (ctrl *PersistentVolumeController) GetPodsDir() string {
    49  	return ""
    50  }
    51  
    52  func (ctrl *PersistentVolumeController) GetPodVolumeDir(podUID types.UID, pluginName string, volumeName string) string {
    53  	return ""
    54  }
    55  
    56  func (ctrl *PersistentVolumeController) GetPodPluginDir(podUID types.UID, pluginName string) string {
    57  	return ""
    58  }
    59  
    60  func (ctrl *PersistentVolumeController) GetPodVolumeDeviceDir(ppodUID types.UID, pluginName string) string {
    61  	return ""
    62  }
    63  
    64  func (ctrl *PersistentVolumeController) GetKubeClient() clientset.Interface {
    65  	return ctrl.kubeClient
    66  }
    67  
    68  func (ctrl *PersistentVolumeController) NewWrapperMounter(volName string, spec vol.Spec, pod *v1.Pod, opts vol.VolumeOptions) (vol.Mounter, error) {
    69  	return nil, fmt.Errorf("PersistentVolumeController.NewWrapperMounter is not implemented")
    70  }
    71  
    72  func (ctrl *PersistentVolumeController) NewWrapperUnmounter(volName string, spec vol.Spec, podUID types.UID) (vol.Unmounter, error) {
    73  	return nil, fmt.Errorf("PersistentVolumeController.NewWrapperMounter is not implemented")
    74  }
    75  
    76  func (ctrl *PersistentVolumeController) GetMounter(pluginName string) mount.Interface {
    77  	return nil
    78  }
    79  
    80  func (ctrl *PersistentVolumeController) GetHostName() string {
    81  	return ""
    82  }
    83  
    84  func (ctrl *PersistentVolumeController) GetHostIP() (net.IP, error) {
    85  	return nil, fmt.Errorf("PersistentVolumeController.GetHostIP() is not implemented")
    86  }
    87  
    88  func (ctrl *PersistentVolumeController) GetNodeAllocatable() (v1.ResourceList, error) {
    89  	return v1.ResourceList{}, nil
    90  }
    91  
    92  func (ctrl *PersistentVolumeController) GetAttachedVolumesFromNodeStatus() (map[v1.UniqueVolumeName]string, error) {
    93  	return map[v1.UniqueVolumeName]string{}, nil
    94  }
    95  
    96  func (ctrl *PersistentVolumeController) GetSecretFunc() func(namespace, name string) (*v1.Secret, error) {
    97  	return func(_, _ string) (*v1.Secret, error) {
    98  		return nil, fmt.Errorf("GetSecret unsupported in PersistentVolumeController")
    99  	}
   100  }
   101  
   102  func (ctrl *PersistentVolumeController) GetConfigMapFunc() func(namespace, name string) (*v1.ConfigMap, error) {
   103  	return func(_, _ string) (*v1.ConfigMap, error) {
   104  		return nil, fmt.Errorf("GetConfigMap unsupported in PersistentVolumeController")
   105  	}
   106  }
   107  
   108  func (ctrl *PersistentVolumeController) GetServiceAccountTokenFunc() func(_, _ string, _ *authenticationv1.TokenRequest) (*authenticationv1.TokenRequest, error) {
   109  	return func(_, _ string, _ *authenticationv1.TokenRequest) (*authenticationv1.TokenRequest, error) {
   110  		return nil, fmt.Errorf("GetServiceAccountToken unsupported in PersistentVolumeController")
   111  	}
   112  }
   113  
   114  func (ctrl *PersistentVolumeController) DeleteServiceAccountTokenFunc() func(types.UID) {
   115  	return func(types.UID) {
   116  		//nolint:logcheck
   117  		klog.ErrorS(nil, "DeleteServiceAccountToken unsupported in PersistentVolumeController")
   118  	}
   119  }
   120  
   121  func (adc *PersistentVolumeController) GetExec(pluginName string) utilexec.Interface {
   122  	return utilexec.New()
   123  }
   124  
   125  func (ctrl *PersistentVolumeController) GetNodeLabels() (map[string]string, error) {
   126  	return nil, fmt.Errorf("GetNodeLabels() unsupported in PersistentVolumeController")
   127  }
   128  
   129  func (ctrl *PersistentVolumeController) GetNodeName() types.NodeName {
   130  	return ""
   131  }
   132  
   133  func (ctrl *PersistentVolumeController) GetEventRecorder() record.EventRecorder {
   134  	return ctrl.eventRecorder
   135  }
   136  
   137  func (ctrl *PersistentVolumeController) GetSubpather() subpath.Interface {
   138  	// No volume plugin needs Subpaths in PV controller.
   139  	return nil
   140  }