@@ -69,6 +69,7 @@ import (
69
69
"k8s.io/kubernetes/pkg/volume/util/volumepathhandler"
70
70
volumevalidation "k8s.io/kubernetes/pkg/volume/validation"
71
71
"k8s.io/kubernetes/third_party/forked/golang/expansion"
72
+ "k8s.io/utils/feature"
72
73
utilnet "k8s.io/utils/net"
73
74
)
74
75
@@ -348,7 +349,8 @@ func makeMounts(pod *v1.Pod, podDir string, container *v1.Container, hostName, h
348
349
if err != nil {
349
350
return nil , cleanupAction , fmt .Errorf ("failed to resolve recursive read-only mode: %w" , err )
350
351
}
351
- if rro && ! utilfeature .DefaultFeatureGate .Enabled (features .RecursiveReadOnlyMounts ) {
352
+ if rro && ! utilfeature .DefaultFeatureGate .Enabled (features .RecursiveReadOnlyMounts ) &&
353
+ ! feature .Enabled (features .RecursiveReadOnlyMountsGate ) {
352
354
return nil , cleanupAction , fmt .Errorf ("recursive read-only mount needs feature gate %q to be enabled" , features .RecursiveReadOnlyMounts )
353
355
}
354
356
@@ -2136,7 +2138,8 @@ func (kl *Kubelet) convertToAPIContainerStatuses(pod *v1.Pod, podStatus *kubecon
2136
2138
}
2137
2139
// status.VolumeMounts cannot be propagated from kubecontainer.Status
2138
2140
// because the CRI API is unaware of the volume names.
2139
- if utilfeature .DefaultFeatureGate .Enabled (features .RecursiveReadOnlyMounts ) {
2141
+ if utilfeature .DefaultFeatureGate .Enabled (features .RecursiveReadOnlyMounts ) ||
2142
+ feature .Enabled (features .RecursiveReadOnlyMountsGate ) {
2140
2143
for _ , vol := range container .VolumeMounts {
2141
2144
volStatus := v1.VolumeMountStatus {
2142
2145
Name : vol .Name ,
@@ -2148,7 +2151,8 @@ func (kl *Kubelet) convertToAPIContainerStatuses(pod *v1.Pod, podStatus *kubecon
2148
2151
if b , err := resolveRecursiveReadOnly (vol , supportsRRO ); err != nil {
2149
2152
klog .ErrorS (err , "failed to resolve recursive read-only mode" , "mode" , * vol .RecursiveReadOnly )
2150
2153
} else if b {
2151
- if utilfeature .DefaultFeatureGate .Enabled (features .RecursiveReadOnlyMounts ) {
2154
+ if utilfeature .DefaultFeatureGate .Enabled (features .RecursiveReadOnlyMounts ) ||
2155
+ feature .Enabled (features .RecursiveReadOnlyMountsGate ) {
2152
2156
rroMode = v1 .RecursiveReadOnlyEnabled
2153
2157
} else {
2154
2158
klog .ErrorS (nil , "recursive read-only mount needs feature gate to be enabled" ,
0 commit comments