diff --git a/cmd/kubelet/app/options/options.go b/cmd/kubelet/app/options/options.go index 4895aaf6bf79..6725d08f5ee3 100644 --- a/cmd/kubelet/app/options/options.go +++ b/cmd/kubelet/app/options/options.go @@ -197,7 +197,7 @@ func (s *KubeletServer) AddFlags(fs *pflag.FlagSet) { fs.StringVar(&s.LockFilePath, "lock-file", s.LockFilePath, " The path to file for kubelet to use as a lock file.") fs.BoolVar(&s.ExitOnLockContention, "exit-on-lock-contention", s.ExitOnLockContention, "Whether kubelet should exit upon lock-file contention.") fs.StringVar(&s.RktPath, "rkt-path", s.RktPath, "Path of rkt binary. Leave empty to use the first rkt in $PATH. Only used if --container-runtime='rkt'.") - fs.StringVar(&s.MounterPath, "mounter-path", s.MounterPath, "Path of mounter binary. Leave empty to use the default mount.") + fs.StringVar(&s.ExperimentalMounterPath, "experimental-mounter-path", s.ExperimentalMounterPath, "[Experimental] Path of mounter binary. Leave empty to use the default mount.") fs.StringVar(&s.RktAPIEndpoint, "rkt-api-endpoint", s.RktAPIEndpoint, "The endpoint of the rkt API service to communicate with. Only used if --container-runtime='rkt'.") fs.StringVar(&s.RktStage1Image, "rkt-stage1-image", s.RktStage1Image, "image to use as stage1. Local paths and http/https URLs are supported. If empty, the 'stage1.aci' in the same directory as '--rkt-path' will be used.") fs.MarkDeprecated("rkt-stage1-image", "Will be removed in a future version. The default stage1 image will be specified by the rkt configurations, see https://github.com/coreos/rkt/blob/master/Documentation/configuration.md for more details.") diff --git a/cmd/kubelet/app/server.go b/cmd/kubelet/app/server.go index 4ed7674ebd63..47739871f29c 100644 --- a/cmd/kubelet/app/server.go +++ b/cmd/kubelet/app/server.go @@ -118,7 +118,7 @@ func UnsecuredKubeletDeps(s *options.KubeletServer) (*kubelet.KubeletDeps, error return nil, err } - mounter := mount.New(s.MounterPath) + mounter := mount.New(s.ExperimentalMounterPath) var writer kubeio.Writer = &kubeio.StdWriter{} if s.Containerized { glog.V(2).Info("Running kubelet in containerized mode (experimental)") diff --git a/hack/verify-flags/known-flags.txt b/hack/verify-flags/known-flags.txt index c34333df5726..d9cdf89eb5b4 100644 --- a/hack/verify-flags/known-flags.txt +++ b/hack/verify-flags/known-flags.txt @@ -187,6 +187,7 @@ exit-on-lock-contention experimental-allowed-unsafe-sysctls experimental-bootstrap-kubeconfig experimental-keystone-url +experimental-mounter-path experimental-nvidia-gpus experimental-prefix experimental-runtime-integration-type @@ -372,7 +373,6 @@ minion-max-log-age minion-max-log-backups minion-max-log-size minion-path-override -mounter-path namespace-sync-period network-plugin network-plugin-dir diff --git a/pkg/apis/componentconfig/types.generated.go b/pkg/apis/componentconfig/types.generated.go index c45db4708d22..54131065475c 100644 --- a/pkg/apis/componentconfig/types.generated.go +++ b/pkg/apis/componentconfig/types.generated.go @@ -1274,7 +1274,7 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { yyq135[62] = x.CgroupRoot != "" yyq135[66] = true yyq135[67] = x.RktPath != "" - yyq135[68] = x.MounterPath != "" + yyq135[68] = x.ExperimentalMounterPath != "" yyq135[69] = x.RktAPIEndpoint != "" yyq135[70] = x.RktStage1Image != "" yyq135[89] = true @@ -2751,7 +2751,7 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { _ = yym359 if false { } else { - r.EncodeString(codecSelferC_UTF81234, string(x.MounterPath)) + r.EncodeString(codecSelferC_UTF81234, string(x.ExperimentalMounterPath)) } } else { r.EncodeString(codecSelferC_UTF81234, "") @@ -2759,13 +2759,13 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { } else { if yyq135[68] { z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("mounterPath")) + r.EncodeString(codecSelferC_UTF81234, string("experimentalMounterPath")) z.EncSendContainerState(codecSelfer_containerMapValue1234) yym360 := z.EncBinary() _ = yym360 if false { } else { - r.EncodeString(codecSelferC_UTF81234, string(x.MounterPath)) + r.EncodeString(codecSelferC_UTF81234, string(x.ExperimentalMounterPath)) } } } @@ -4242,11 +4242,11 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode } else { x.RktPath = string(r.DecodeString()) } - case "mounterPath": + case "experimentalMounterPath": if r.TryDecodeAsNil() { - x.MounterPath = "" + x.ExperimentalMounterPath = "" } else { - x.MounterPath = string(r.DecodeString()) + x.ExperimentalMounterPath = string(r.DecodeString()) } case "rktAPIEndpoint": if r.TryDecodeAsNil() { @@ -5753,9 +5753,9 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } z.DecSendContainerState(codecSelfer_containerArrayElem1234) if r.TryDecodeAsNil() { - x.MounterPath = "" + x.ExperimentalMounterPath = "" } else { - x.MounterPath = string(r.DecodeString()) + x.ExperimentalMounterPath = string(r.DecodeString()) } yyj619++ if yyhl619 { diff --git a/pkg/apis/componentconfig/types.go b/pkg/apis/componentconfig/types.go index 43224e7ba271..0a575ba44800 100644 --- a/pkg/apis/componentconfig/types.go +++ b/pkg/apis/componentconfig/types.go @@ -317,8 +317,8 @@ type KubeletConfiguration struct { // $PATH. // +optional RktPath string `json:"rktPath,omitempty"` - // mounterPath is the path of mounter binary. Leave empty to use the default mount path - MounterPath string `json:"mounterPath,omitempty"` + // experimentalMounterPath is the path of mounter binary. Leave empty to use the default mount path + ExperimentalMounterPath string `json:"experimentalMounterPath,omitempty"` // rktApiEndpoint is the endpoint of the rkt API service to communicate with. // +optional RktAPIEndpoint string `json:"rktAPIEndpoint,omitempty"` diff --git a/pkg/apis/componentconfig/v1alpha1/types.go b/pkg/apis/componentconfig/v1alpha1/types.go index c8124eab83d9..7f2281bfeec1 100644 --- a/pkg/apis/componentconfig/v1alpha1/types.go +++ b/pkg/apis/componentconfig/v1alpha1/types.go @@ -364,9 +364,9 @@ type KubeletConfiguration struct { // rktPath is the path of rkt binary. Leave empty to use the first rkt in // $PATH. RktPath string `json:"rktPath"` - // mounterPath is the path to mounter binary. If not set, kubelet will attempt to use mount + // experimentalMounterPath is the path to mounter binary. If not set, kubelet will attempt to use mount // binary that is available via $PATH, - MounterPath string `json:"mounterPath,omitempty"` + ExperimentalMounterPath string `json:"experimentalMounterPath,omitempty"` // rktApiEndpoint is the endpoint of the rkt API service to communicate with. RktAPIEndpoint string `json:"rktAPIEndpoint"` // rktStage1Image is the image to use as stage1. Local paths and diff --git a/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go b/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go index b19f827f9d2f..77f83dfa8437 100644 --- a/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go +++ b/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go @@ -349,7 +349,7 @@ func autoConvert_v1alpha1_KubeletConfiguration_To_componentconfig_KubeletConfigu out.RemoteImageEndpoint = in.RemoteImageEndpoint out.RuntimeRequestTimeout = in.RuntimeRequestTimeout out.RktPath = in.RktPath - out.MounterPath = in.MounterPath + out.ExperimentalMounterPath = in.ExperimentalMounterPath out.RktAPIEndpoint = in.RktAPIEndpoint out.RktStage1Image = in.RktStage1Image if err := api.Convert_Pointer_string_To_string(&in.LockFilePath, &out.LockFilePath, s); err != nil { @@ -534,7 +534,7 @@ func autoConvert_componentconfig_KubeletConfiguration_To_v1alpha1_KubeletConfigu out.RemoteImageEndpoint = in.RemoteImageEndpoint out.RuntimeRequestTimeout = in.RuntimeRequestTimeout out.RktPath = in.RktPath - out.MounterPath = in.MounterPath + out.ExperimentalMounterPath = in.ExperimentalMounterPath out.RktAPIEndpoint = in.RktAPIEndpoint out.RktStage1Image = in.RktStage1Image if err := api.Convert_string_To_Pointer_string(&in.LockFilePath, &out.LockFilePath, s); err != nil { diff --git a/pkg/apis/componentconfig/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/componentconfig/v1alpha1/zz_generated.deepcopy.go index b884e6cbef64..8810e4929943 100644 --- a/pkg/apis/componentconfig/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/componentconfig/v1alpha1/zz_generated.deepcopy.go @@ -313,7 +313,7 @@ func DeepCopy_v1alpha1_KubeletConfiguration(in interface{}, out interface{}, c * out.RemoteImageEndpoint = in.RemoteImageEndpoint out.RuntimeRequestTimeout = in.RuntimeRequestTimeout out.RktPath = in.RktPath - out.MounterPath = in.MounterPath + out.ExperimentalMounterPath = in.ExperimentalMounterPath out.RktAPIEndpoint = in.RktAPIEndpoint out.RktStage1Image = in.RktStage1Image if in.LockFilePath != nil { diff --git a/pkg/apis/componentconfig/zz_generated.deepcopy.go b/pkg/apis/componentconfig/zz_generated.deepcopy.go index f36f450e66d0..b5dbda497086 100644 --- a/pkg/apis/componentconfig/zz_generated.deepcopy.go +++ b/pkg/apis/componentconfig/zz_generated.deepcopy.go @@ -315,7 +315,7 @@ func DeepCopy_componentconfig_KubeletConfiguration(in interface{}, out interface out.RemoteImageEndpoint = in.RemoteImageEndpoint out.RuntimeRequestTimeout = in.RuntimeRequestTimeout out.RktPath = in.RktPath - out.MounterPath = in.MounterPath + out.ExperimentalMounterPath = in.ExperimentalMounterPath out.RktAPIEndpoint = in.RktAPIEndpoint out.RktStage1Image = in.RktStage1Image out.LockFilePath = in.LockFilePath diff --git a/pkg/generated/openapi/zz_generated.openapi.go b/pkg/generated/openapi/zz_generated.openapi.go index bd9bbe2e3175..4a38c1f8fe0d 100644 --- a/pkg/generated/openapi/zz_generated.openapi.go +++ b/pkg/generated/openapi/zz_generated.openapi.go @@ -2650,9 +2650,9 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{ Format: "", }, }, - "mounterPath": { + "experimentalMounterPath": { SchemaProps: spec.SchemaProps{ - Description: "mounterPath is the path of mounter binary. Leave empty to use the default mount path", + Description: "experimentalMounterPath is the path of mounter binary. Leave empty to use the default mount path", Type: []string{"string"}, Format: "", }, @@ -2971,7 +2971,7 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{ }, }, }, - Required: []string{"TypeMeta", "podManifestPath", "syncFrequency", "fileCheckFrequency", "httpCheckFrequency", "manifestURL", "manifestURLHeader", "enableServer", "address", "port", "readOnlyPort", "tlsCertFile", "tlsPrivateKeyFile", "certDirectory", "authentication", "authorization", "hostnameOverride", "podInfraContainerImage", "dockerEndpoint", "rootDirectory", "seccompProfileRoot", "allowPrivileged", "hostNetworkSources", "hostPIDSources", "hostIPCSources", "registryPullQPS", "registryBurst", "eventRecordQPS", "eventBurst", "enableDebuggingHandlers", "minimumGCAge", "maxPerPodContainerCount", "maxContainerCount", "cAdvisorPort", "healthzPort", "healthzBindAddress", "oomScoreAdj", "registerNode", "clusterDomain", "masterServiceNamespace", "clusterDNS", "streamingConnectionIdleTimeout", "nodeStatusUpdateFrequency", "imageMinimumGCAge", "imageGCHighThresholdPercent", "imageGCLowThresholdPercent", "lowDiskSpaceThresholdMB", "volumeStatsAggPeriod", "networkPluginName", "networkPluginMTU", "networkPluginDir", "cniConfDir", "cniBinDir", "volumePluginDir", "containerRuntime", "remoteRuntimeEndpoint", "remoteImageEndpoint", "mounterPath", "lockFilePath", "exitOnLockContention", "hairpinMode", "babysitDaemons", "maxPods", "nvidiaGPUs", "dockerExecHandlerName", "podCIDR", "resolvConf", "cpuCFSQuota", "containerized", "maxOpenFiles", "reconcileCIDR", "registerSchedulable", "contentType", "kubeAPIQPS", "kubeAPIBurst", "serializeImagePulls", "nodeLabels", "nonMasqueradeCIDR", "enableCustomMetrics", "podsPerCore", "enableControllerAttachDetach", "systemReserved", "kubeReserved", "protectKernelDefaults", "makeIPTablesUtilChains", "iptablesMasqueradeBit", "iptablesDropBit"}, + Required: []string{"TypeMeta", "podManifestPath", "syncFrequency", "fileCheckFrequency", "httpCheckFrequency", "manifestURL", "manifestURLHeader", "enableServer", "address", "port", "readOnlyPort", "tlsCertFile", "tlsPrivateKeyFile", "certDirectory", "authentication", "authorization", "hostnameOverride", "podInfraContainerImage", "dockerEndpoint", "rootDirectory", "seccompProfileRoot", "allowPrivileged", "hostNetworkSources", "hostPIDSources", "hostIPCSources", "registryPullQPS", "registryBurst", "eventRecordQPS", "eventBurst", "enableDebuggingHandlers", "minimumGCAge", "maxPerPodContainerCount", "maxContainerCount", "cAdvisorPort", "healthzPort", "healthzBindAddress", "oomScoreAdj", "registerNode", "clusterDomain", "masterServiceNamespace", "clusterDNS", "streamingConnectionIdleTimeout", "nodeStatusUpdateFrequency", "imageMinimumGCAge", "imageGCHighThresholdPercent", "imageGCLowThresholdPercent", "lowDiskSpaceThresholdMB", "volumeStatsAggPeriod", "networkPluginName", "networkPluginMTU", "networkPluginDir", "cniConfDir", "cniBinDir", "volumePluginDir", "containerRuntime", "remoteRuntimeEndpoint", "remoteImageEndpoint", "experimentalMounterPath", "lockFilePath", "exitOnLockContention", "hairpinMode", "babysitDaemons", "maxPods", "nvidiaGPUs", "dockerExecHandlerName", "podCIDR", "resolvConf", "cpuCFSQuota", "containerized", "maxOpenFiles", "reconcileCIDR", "registerSchedulable", "contentType", "kubeAPIQPS", "kubeAPIBurst", "serializeImagePulls", "nodeLabels", "nonMasqueradeCIDR", "enableCustomMetrics", "podsPerCore", "enableControllerAttachDetach", "systemReserved", "kubeReserved", "protectKernelDefaults", "makeIPTablesUtilChains", "iptablesMasqueradeBit", "iptablesDropBit"}, }, }, Dependencies: []string{ @@ -14390,9 +14390,9 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{ Format: "", }, }, - "mounterPath": { + "experimentalMounterPath": { SchemaProps: spec.SchemaProps{ - Description: "mounterPath is the path to mounter binary. If not set, kubelet will attempt to use mount binary that is available via $PATH,", + Description: "experimentalMounterPath is the path to mounter binary. If not set, kubelet will attempt to use mount binary that is available via $PATH,", Type: []string{"string"}, Format: "", }, @@ -14711,7 +14711,7 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{ }, }, }, - Required: []string{"TypeMeta", "podManifestPath", "syncFrequency", "fileCheckFrequency", "httpCheckFrequency", "manifestURL", "manifestURLHeader", "enableServer", "address", "port", "readOnlyPort", "tlsCertFile", "tlsPrivateKeyFile", "certDirectory", "authentication", "authorization", "hostnameOverride", "podInfraContainerImage", "dockerEndpoint", "rootDirectory", "seccompProfileRoot", "allowPrivileged", "hostNetworkSources", "hostPIDSources", "hostIPCSources", "registryPullQPS", "registryBurst", "eventRecordQPS", "eventBurst", "enableDebuggingHandlers", "minimumGCAge", "maxPerPodContainerCount", "maxContainerCount", "cAdvisorPort", "healthzPort", "healthzBindAddress", "oomScoreAdj", "registerNode", "clusterDomain", "masterServiceNamespace", "clusterDNS", "streamingConnectionIdleTimeout", "nodeStatusUpdateFrequency", "imageMinimumGCAge", "imageGCHighThresholdPercent", "imageGCLowThresholdPercent", "lowDiskSpaceThresholdMB", "volumeStatsAggPeriod", "networkPluginName", "networkPluginDir", "cniConfDir", "cniBinDir", "networkPluginMTU", "volumePluginDir", "cloudProvider", "cloudConfigFile", "kubeletCgroups", "runtimeCgroups", "systemCgroups", "cgroupRoot", "containerRuntime", "remoteRuntimeEndpoint", "remoteImageEndpoint", "runtimeRequestTimeout", "rktPath", "mounterPath", "rktAPIEndpoint", "rktStage1Image", "lockFilePath", "exitOnLockContention", "hairpinMode", "babysitDaemons", "maxPods", "nvidiaGPUs", "dockerExecHandlerName", "podCIDR", "resolvConf", "cpuCFSQuota", "containerized", "maxOpenFiles", "reconcileCIDR", "registerSchedulable", "contentType", "kubeAPIQPS", "kubeAPIBurst", "serializeImagePulls", "outOfDiskTransitionFrequency", "nodeIP", "nodeLabels", "nonMasqueradeCIDR", "enableCustomMetrics", "evictionHard", "evictionSoft", "evictionSoftGracePeriod", "evictionPressureTransitionPeriod", "evictionMaxPodGracePeriod", "evictionMinimumReclaim", "podsPerCore", "enableControllerAttachDetach", "systemReserved", "kubeReserved", "protectKernelDefaults", "makeIPTablesUtilChains", "iptablesMasqueradeBit", "iptablesDropBit"}, + Required: []string{"TypeMeta", "podManifestPath", "syncFrequency", "fileCheckFrequency", "httpCheckFrequency", "manifestURL", "manifestURLHeader", "enableServer", "address", "port", "readOnlyPort", "tlsCertFile", "tlsPrivateKeyFile", "certDirectory", "authentication", "authorization", "hostnameOverride", "podInfraContainerImage", "dockerEndpoint", "rootDirectory", "seccompProfileRoot", "allowPrivileged", "hostNetworkSources", "hostPIDSources", "hostIPCSources", "registryPullQPS", "registryBurst", "eventRecordQPS", "eventBurst", "enableDebuggingHandlers", "minimumGCAge", "maxPerPodContainerCount", "maxContainerCount", "cAdvisorPort", "healthzPort", "healthzBindAddress", "oomScoreAdj", "registerNode", "clusterDomain", "masterServiceNamespace", "clusterDNS", "streamingConnectionIdleTimeout", "nodeStatusUpdateFrequency", "imageMinimumGCAge", "imageGCHighThresholdPercent", "imageGCLowThresholdPercent", "lowDiskSpaceThresholdMB", "volumeStatsAggPeriod", "networkPluginName", "networkPluginDir", "cniConfDir", "cniBinDir", "networkPluginMTU", "volumePluginDir", "cloudProvider", "cloudConfigFile", "kubeletCgroups", "runtimeCgroups", "systemCgroups", "cgroupRoot", "containerRuntime", "remoteRuntimeEndpoint", "remoteImageEndpoint", "runtimeRequestTimeout", "rktPath", "experimentalMounterPath", "rktAPIEndpoint", "rktStage1Image", "lockFilePath", "exitOnLockContention", "hairpinMode", "babysitDaemons", "maxPods", "nvidiaGPUs", "dockerExecHandlerName", "podCIDR", "resolvConf", "cpuCFSQuota", "containerized", "maxOpenFiles", "reconcileCIDR", "registerSchedulable", "contentType", "kubeAPIQPS", "kubeAPIBurst", "serializeImagePulls", "outOfDiskTransitionFrequency", "nodeIP", "nodeLabels", "nonMasqueradeCIDR", "enableCustomMetrics", "evictionHard", "evictionSoft", "evictionSoftGracePeriod", "evictionPressureTransitionPeriod", "evictionMaxPodGracePeriod", "evictionMinimumReclaim", "podsPerCore", "enableControllerAttachDetach", "systemReserved", "kubeReserved", "protectKernelDefaults", "makeIPTablesUtilChains", "iptablesMasqueradeBit", "iptablesDropBit"}, }, }, Dependencies: []string{ diff --git a/test/e2e/framework/test_context.go b/test/e2e/framework/test_context.go index 2334bf9aa46f..60d952d195d3 100644 --- a/test/e2e/framework/test_context.go +++ b/test/e2e/framework/test_context.go @@ -215,7 +215,7 @@ func RegisterNodeFlags() { flag.BoolVar(&TestContext.PrepullImages, "prepull-images", true, "If true, prepull images so image pull failures do not cause test failures.") flag.StringVar(&TestContext.RuntimeIntegrationType, "runtime-integration-type", "", "Choose the integration path for the container runtime, mainly used for CRI validation.") flag.StringVar(&TestContext.ContainerRuntimeEndpoint, "container-runtime-endpoint", "", "The endpoint of remote container runtime grpc server, mainly used for Remote CRI validation.") - flag.StringVar(&TestContext.MounterPath, "mounter-path", "", "Path of mounter binary. Leave empty to use the default mount.") + flag.StringVar(&TestContext.MounterPath, "experimental-mounter-path", "", "Path of mounter binary. Leave empty to use the default mount.") } // overwriteFlagsWithViperConfig finds and writes values to flags using viper as input. diff --git a/test/e2e_node/remote/remote.go b/test/e2e_node/remote/remote.go index 04f9c7d024d1..72efc60b0693 100644 --- a/test/e2e_node/remote/remote.go +++ b/test/e2e_node/remote/remote.go @@ -263,7 +263,7 @@ func RunRemote(archive string, host string, cleanup bool, junitFilePrefix string return "", false, fmt.Errorf("Issue detecting node's OS via node's /etc/os-release. Err: %v, Output:\n%s", err, output) } if strings.Contains(output, "ID=gci") { - glog.Infof("GCI node and GCI mounter both detected, modifying --mounter-path accordingly") + glog.Infof("GCI node and GCI mounter both detected, modifying --experimental-mounter-path accordingly") // Note this implicitly requires the script to be where we expect in the tarball, so if that location changes the error // here will tell us to update the remote test runner. @@ -274,7 +274,7 @@ func RunRemote(archive string, host string, cleanup bool, junitFilePrefix string return "", false, err } // Insert args at beginning of testArgs, so any values from command line take precedence - testArgs = fmt.Sprintf("--mounter-path=%s ", mounterPath) + testArgs + testArgs = fmt.Sprintf("--experimental-mounter-path=%s ", mounterPath) + testArgs } // Run the tests diff --git a/test/e2e_node/services/services.go b/test/e2e_node/services/services.go index 14e6ab310a4e..5512bb2bfb09 100644 --- a/test/e2e_node/services/services.go +++ b/test/e2e_node/services/services.go @@ -211,7 +211,7 @@ func (e *E2EServices) startKubelet() (*server, error) { "--eviction-pressure-transition-period", "30s", "--feature-gates", framework.TestContext.FeatureGates, "--v", LOG_VERBOSITY_LEVEL, "--logtostderr", - "--mounter-path", framework.TestContext.MounterPath, + "--experimental-mounter-path", framework.TestContext.MounterPath, ) if framework.TestContext.RuntimeIntegrationType != "" {