Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion pkg/azuredisk/azuredisk.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ type DriverOptions struct {
CloudConfigSecretNamespace string
CustomUserAgent string
UserAgentSuffix string
UseCSIProxyGAInterface bool
}

// CSIDriver defines the interface for a CSI driver.
Expand Down Expand Up @@ -85,6 +86,7 @@ type DriverCore struct {
nodeInfo *optimization.NodeInfo
ioHandler azureutils.IOHandler
hostUtil hostUtil
useCSIProxyGAInterface bool
}

// Driver is the v1 implementation of the Azure Disk CSI Driver.
Expand All @@ -108,6 +110,7 @@ func newDriverV1(options *DriverOptions) *Driver {
driver.cloudConfigSecretNamespace = options.CloudConfigSecretNamespace
driver.customUserAgent = options.CustomUserAgent
driver.userAgentSuffix = options.UserAgentSuffix
driver.useCSIProxyGAInterface = options.UseCSIProxyGAInterface
driver.volumeLocks = volumehelper.NewVolumeLocks()
driver.ioHandler = azureutils.NewOSIOHandler()
driver.hostUtil = hostutil.NewHostUtil()
Expand Down Expand Up @@ -167,7 +170,7 @@ func (d *Driver) Run(endpoint, kubeconfig string, disableAVSetNodes, testingMock
}
}

d.mounter, err = mounter.NewSafeMounter()
d.mounter, err = mounter.NewSafeMounter(d.useCSIProxyGAInterface)
if err != nil {
klog.Fatalf("Failed to get safe mounter. Error: %v", err)
}
Expand Down
3 changes: 2 additions & 1 deletion pkg/azuredisk/azuredisk_v2.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ func newDriverV2(options *DriverOptions) *DriverV2 {
driver.cloudConfigSecretNamespace = options.CloudConfigSecretNamespace
driver.customUserAgent = options.CustomUserAgent
driver.userAgentSuffix = options.UserAgentSuffix
driver.useCSIProxyGAInterface = options.UseCSIProxyGAInterface
driver.ioHandler = azureutils.NewOSIOHandler()
driver.hostUtil = hostutil.NewHostUtil()

Expand Down Expand Up @@ -119,7 +120,7 @@ func (d *DriverV2) Run(endpoint, kubeconfig string, disableAVSetNodes, testingMo
}
}

d.mounter, err = mounter.NewSafeMounter()
d.mounter, err = mounter.NewSafeMounter(d.useCSIProxyGAInterface)
if err != nil {
klog.Fatalf("Failed to get safe mounter. Error: %v", err)
}
Expand Down
3 changes: 2 additions & 1 deletion pkg/azuredisk/fake_azuredisk.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,12 +109,13 @@ func newFakeDriverV1(t *testing.T) (*fakeDriverV1, error) {
driver.VolumeAttachLimit = -1
driver.ioHandler = azureutils.NewFakeIOHandler()
driver.hostUtil = azureutils.NewFakeHostUtil()
driver.useCSIProxyGAInterface = true

ctrl := gomock.NewController(t)
defer ctrl.Finish()

driver.cloud = azure.GetTestCloud(ctrl)
mounter, err := mounter.NewSafeMounter()
mounter, err := mounter.NewSafeMounter(driver.useCSIProxyGAInterface)
if err != nil {
return nil, err
}
Expand Down
3 changes: 2 additions & 1 deletion pkg/azuredisk/fake_azuredisk_v2.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,12 +64,13 @@ func newFakeDriverV2(t *testing.T) (*fakeDriverV2, error) {
driver.VolumeAttachLimit = -1
driver.ioHandler = azureutils.NewFakeIOHandler()
driver.hostUtil = azureutils.NewFakeHostUtil()
driver.useCSIProxyGAInterface = true

ctrl := gomock.NewController(t)
defer ctrl.Finish()

driver.cloud = azure.GetTestCloud(ctrl)
mounter, err := mounter.NewSafeMounter()
mounter, err := mounter.NewSafeMounter(driver.useCSIProxyGAInterface)
if err != nil {
return nil, err
}
Expand Down
2 changes: 2 additions & 0 deletions pkg/azurediskplugin/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ var (
cloudConfigSecretNamespace = flag.String("cloud-config-secret-namespace", "kube-system", "cloud config secret namespace")
customUserAgent = flag.String("custom-user-agent", "", "custom userAgent")
userAgentSuffix = flag.String("user-agent-suffix", "", "userAgent suffix")
useCSIProxyGAInterface = flag.Bool("use-csiproxy-ga-interface", false, "boolean flag to enable csi-proxy GA interface on Windows")
)

func main() {
Expand Down Expand Up @@ -83,6 +84,7 @@ func handle() {
CloudConfigSecretNamespace: *cloudConfigSecretNamespace,
CustomUserAgent: *customUserAgent,
UserAgentSuffix: *userAgentSuffix,
UseCSIProxyGAInterface: *useCSIProxyGAInterface,
}
driver := azuredisk.NewDriver(&driverOptions)
if driver == nil {
Expand Down
2 changes: 1 addition & 1 deletion pkg/mounter/fake_safe_mounter.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ type FakeSafeMounter struct {
// NewFakeSafeMounter creates a mount.SafeFormatAndMount instance suitable for use in unit tests.
func NewFakeSafeMounter() (*mount.SafeFormatAndMount, error) {
if runtime.GOOS == "windows" {
return NewSafeMounter()
return NewSafeMounter(true)
}

fakeSafeMounter := FakeSafeMounter{}
Expand Down
2 changes: 1 addition & 1 deletion pkg/mounter/safe_mounter_unix.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import (
utilexec "k8s.io/utils/exec"
)

func NewSafeMounter() (*mount.SafeFormatAndMount, error) {
func NewSafeMounter(useCSIProxyGAInterface bool) (*mount.SafeFormatAndMount, error) {
return &mount.SafeFormatAndMount{
Interface: mount.New(""),
Exec: utilexec.New(),
Expand Down
5 changes: 3 additions & 2 deletions pkg/mounter/safe_mounter_unix_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,13 @@ limitations under the License.
package mounter

import (
"github.com/stretchr/testify/assert"
"testing"

"github.com/stretchr/testify/assert"
)

func TestNewSafeMounter(t *testing.T) {
resp, err := NewSafeMounter()
resp, err := NewSafeMounter(true)
assert.NotNil(t, resp)
assert.Nil(t, err)
}
20 changes: 11 additions & 9 deletions pkg/mounter/safe_mounter_windows.go
Original file line number Diff line number Diff line change
Expand Up @@ -371,17 +371,19 @@ func newCSIProxyMounter() (*csiProxyMounter, error) {
}, nil
}

func NewSafeMounter() (*mount.SafeFormatAndMount, error) {
csiProxyMounter, err := newCSIProxyMounter()
if err == nil {
klog.V(2).Infof("using CSIProxyMounterV1, %s", csiProxyMounter.GetAPIVersions())
return &mount.SafeFormatAndMount{
Interface: csiProxyMounter,
Exec: utilexec.New(),
}, nil
func NewSafeMounter(useCSIProxyGAInterface bool) (*mount.SafeFormatAndMount, error) {
if useCSIProxyGAInterface {
csiProxyMounter, err := newCSIProxyMounter()
if err == nil {
klog.V(2).Infof("using CSIProxyMounterV1, %s", csiProxyMounter.GetAPIVersions())
return &mount.SafeFormatAndMount{
Interface: csiProxyMounter,
Exec: utilexec.New(),
}, nil
}
klog.V(2).Infof("failed to connect to csi-proxy v1 with error: %v, will try with v1Beta", err)
}

klog.V(2).Infof("failed to connect to csi-proxy v1 with error: %v, will try with v1Beta", err)
csiProxyMounterV1Beta, err := newCSIProxyMounterV1Beta()
if err == nil {
klog.V(2).Infof("using CSIProxyMounterV1beta, %s", csiProxyMounterV1Beta.GetAPIVersions())
Expand Down