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 }