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 }