Skip to content

Commit 0c57162

Browse files
authored
Merge pull request kubernetes#92336 from andyzhangx/azurefile-protocol
add azurefile protocol parameter in azure cloud provider lib
2 parents d140769 + 42e378f commit 0c57162

File tree

9 files changed

+32
-23
lines changed

9 files changed

+32
-23
lines changed

pkg/volume/azure_file/azure_provision.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ var (
4747
// azure cloud provider should implement it
4848
type azureCloudProvider interface {
4949
// create a file share
50-
CreateFileShare(shareName, accountName, accountType, accountKind, resourceGroup, location string, requestGiB int) (string, string, error)
50+
CreateFileShare(shareName, accountName, accountType, accountKind, resourceGroup, location string, protocol storage.EnabledProtocols, requestGiB int) (string, string, error)
5151
// delete a file share
5252
DeleteFileShare(resourceGroup, accountName, shareName string) error
5353
// resize a file share
@@ -204,7 +204,7 @@ func (a *azureFileProvisioner) Provision(selectedNode *v1.Node, allowedTopologie
204204
if strings.HasPrefix(strings.ToLower(sku), "premium") {
205205
accountKind = string(storage.FileStorage)
206206
}
207-
account, key, err := a.azureProvider.CreateFileShare(shareName, account, sku, accountKind, resourceGroup, location, requestGiB)
207+
account, key, err := a.azureProvider.CreateFileShare(shareName, account, sku, accountKind, resourceGroup, location, storage.SMB, requestGiB)
208208
if err != nil {
209209
return nil, err
210210
}

staging/src/k8s.io/legacy-cloud-providers/azure/azure_blobDiskController.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ func (c *BlobDiskController) initStorageAccounts() {
8484
// If no storage account is given, search all the storage accounts associated with the resource group and pick one that
8585
// fits storage type and location.
8686
func (c *BlobDiskController) CreateVolume(blobName, accountName, accountType, location string, requestGB int) (string, string, int, error) {
87-
account, key, err := c.common.cloud.EnsureStorageAccount(accountName, accountType, string(defaultStorageAccountKind), c.common.resourceGroup, location, dedicatedDiskAccountNamePrefix)
87+
account, key, err := c.common.cloud.EnsureStorageAccount(accountName, accountType, string(defaultStorageAccountKind), c.common.resourceGroup, location, dedicatedDiskAccountNamePrefix, true)
8888
if err != nil {
8989
return "", "", 0, fmt.Errorf("could not get storage key for storage account %s: %v", accountName, err)
9090
}

staging/src/k8s.io/legacy-cloud-providers/azure/azure_file.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ import (
2323
)
2424

2525
// create file share
26-
func (az *Cloud) createFileShare(resourceGroupName, accountName, name string, sizeGiB int) error {
27-
return az.FileClient.CreateFileShare(resourceGroupName, accountName, name, sizeGiB)
26+
func (az *Cloud) createFileShare(resourceGroupName, accountName, name string, protocol storage.EnabledProtocols, sizeGiB int) error {
27+
return az.FileClient.CreateFileShare(resourceGroupName, accountName, name, protocol, sizeGiB)
2828
}
2929

3030
func (az *Cloud) deleteFileShare(resourceGroupName, accountName, name string) error {

staging/src/k8s.io/legacy-cloud-providers/azure/azure_storage.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,21 @@ const (
3636

3737
// CreateFileShare creates a file share, using a matching storage account type, account kind, etc.
3838
// storage account will be created if specified account is not found
39-
func (az *Cloud) CreateFileShare(shareName, accountName, accountType, accountKind, resourceGroup, location string, requestGiB int) (string, string, error) {
39+
func (az *Cloud) CreateFileShare(shareName, accountName, accountType, accountKind, resourceGroup, location string, protocol storage.EnabledProtocols, requestGiB int) (string, string, error) {
4040
if resourceGroup == "" {
4141
resourceGroup = az.resourceGroup
4242
}
4343

44-
account, key, err := az.EnsureStorageAccount(accountName, accountType, accountKind, resourceGroup, location, fileShareAccountNamePrefix)
44+
enableHTTPSTrafficOnly := true
45+
if protocol == storage.NFS {
46+
enableHTTPSTrafficOnly = false
47+
}
48+
account, key, err := az.EnsureStorageAccount(accountName, accountType, accountKind, resourceGroup, location, fileShareAccountNamePrefix, enableHTTPSTrafficOnly)
4549
if err != nil {
4650
return "", "", fmt.Errorf("could not get storage key for storage account %s: %v", accountName, err)
4751
}
4852

49-
if err := az.createFileShare(resourceGroup, account, shareName, requestGiB); err != nil {
53+
if err := az.createFileShare(resourceGroup, account, shareName, protocol, requestGiB); err != nil {
5054
return "", "", fmt.Errorf("failed to create share %s in account %s: %v", shareName, account, err)
5155
}
5256
klog.V(4).Infof("created share %s in account %s", shareName, account)

staging/src/k8s.io/legacy-cloud-providers/azure/azure_storage_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,15 +141,15 @@ func TestCreateFileShare(t *testing.T) {
141141
for _, test := range tests {
142142
mockFileClient := mockfileclient.NewMockInterface(ctrl)
143143
cloud.FileClient = mockFileClient
144-
mockFileClient.EXPECT().CreateFileShare(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(test.err).AnyTimes()
144+
mockFileClient.EXPECT().CreateFileShare(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(test.err).AnyTimes()
145145

146146
mockStorageAccountsClient := mockstorageaccountclient.NewMockInterface(ctrl)
147147
cloud.StorageAccountClient = mockStorageAccountsClient
148148
mockStorageAccountsClient.EXPECT().ListKeys(gomock.Any(), "rg", gomock.Any()).Return(test.keys, nil).AnyTimes()
149149
mockStorageAccountsClient.EXPECT().ListByResourceGroup(gomock.Any(), "rg").Return(test.accounts, nil).AnyTimes()
150150
mockStorageAccountsClient.EXPECT().Create(gomock.Any(), "rg", gomock.Any(), gomock.Any()).Return(nil).AnyTimes()
151151

152-
account, key, err := cloud.CreateFileShare(test.name, test.acct, test.acctType, test.acctKind, test.rg, test.loc, test.gb)
152+
account, key, err := cloud.CreateFileShare(test.name, test.acct, test.acctType, test.acctKind, test.rg, test.loc, storage.SMB, test.gb)
153153
if test.expectErr && err == nil {
154154
t.Errorf("unexpected non-error")
155155
continue

staging/src/k8s.io/legacy-cloud-providers/azure/azure_storageaccount.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ func (az *Cloud) GetStorageAccesskey(account, resourceGroup string) (string, err
9090
}
9191

9292
// EnsureStorageAccount search storage account, create one storage account(with genAccountNamePrefix) if not found, return accountName, accountKey
93-
func (az *Cloud) EnsureStorageAccount(accountName, accountType, accountKind, resourceGroup, location, genAccountNamePrefix string) (string, string, error) {
93+
func (az *Cloud) EnsureStorageAccount(accountName, accountType, accountKind, resourceGroup, location, genAccountNamePrefix string, enableHTTPSTrafficOnly bool) (string, string, error) {
9494
if len(accountName) == 0 {
9595
// find a storage account that matches accountType
9696
accounts, err := az.getStorageAccounts(accountType, accountKind, resourceGroup, location)
@@ -123,7 +123,7 @@ func (az *Cloud) EnsureStorageAccount(accountName, accountType, accountKind, res
123123
cp := storage.AccountCreateParameters{
124124
Sku: &storage.Sku{Name: storage.SkuName(accountType)},
125125
Kind: kind,
126-
AccountPropertiesCreateParameters: &storage.AccountPropertiesCreateParameters{EnableHTTPSTrafficOnly: to.BoolPtr(true)},
126+
AccountPropertiesCreateParameters: &storage.AccountPropertiesCreateParameters{EnableHTTPSTrafficOnly: &enableHTTPSTrafficOnly},
127127
Tags: map[string]*string{"created-by": to.StringPtr("azure")},
128128
Location: &location}
129129

staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/azure_fileclient.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ func New(config *azclients.ClientConfig) *Client {
4646
}
4747

4848
// CreateFileShare creates a file share
49-
func (c *Client) CreateFileShare(resourceGroupName, accountName, name string, sizeGiB int) error {
49+
func (c *Client) CreateFileShare(resourceGroupName, accountName, name string, protocol storage.EnabledProtocols, sizeGiB int) error {
5050
result, err := c.GetFileShare(resourceGroupName, accountName, name)
5151
if err == nil {
5252
klog.V(2).Infof("file share(%s) under account(%s) rg(%s) already exists", name, accountName, resourceGroupName)
@@ -56,11 +56,15 @@ func (c *Client) CreateFileShare(resourceGroupName, accountName, name string, si
5656
}
5757

5858
quota := int32(sizeGiB)
59+
fileShareProperties := &storage.FileShareProperties{
60+
ShareQuota: &quota,
61+
}
62+
if protocol == storage.NFS {
63+
fileShareProperties.EnabledProtocols = protocol
64+
}
5965
fileShare := storage.FileShare{
60-
Name: &name,
61-
FileShareProperties: &storage.FileShareProperties{
62-
ShareQuota: &quota,
63-
},
66+
Name: &name,
67+
FileShareProperties: fileShareProperties,
6468
}
6569
_, err = c.fileSharesClient.Create(context.Background(), resourceGroupName, accountName, name, fileShare)
6670

staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/interface.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import (
2525
// Interface is the client interface for creating file shares, interface for test injection.
2626
// mockgen -source=$GOPATH/src/k8s.io/kubernetes/staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/interface.go -package=mockfileclient Interface > $GOPATH/src/k8s.io/kubernetes/staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/mockfileclient/interface.go
2727
type Interface interface {
28-
CreateFileShare(resourceGroupName, accountName, name string, sizeGiB int) error
28+
CreateFileShare(resourceGroupName, accountName, name string, protocol storage.EnabledProtocols, sizeGiB int) error
2929
DeleteFileShare(resourceGroupName, accountName, name string) error
3030
ResizeFileShare(resourceGroupName, accountName, name string, sizeGiB int) error
3131
GetFileShare(resourceGroupName, accountName, name string) (storage.FileShare, error)

staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/mockfileclient/interface.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@ limitations under the License.
1919
package mockfileclient
2020

2121
import (
22+
reflect "reflect"
23+
2224
storage "github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage"
2325
gomock "github.com/golang/mock/gomock"
24-
reflect "reflect"
2526
)
2627

2728
// MockInterface is a mock of Interface interface
@@ -48,17 +49,17 @@ func (m *MockInterface) EXPECT() *MockInterfaceMockRecorder {
4849
}
4950

5051
// CreateFileShare mocks base method
51-
func (m *MockInterface) CreateFileShare(resourceGroupName, accountName, name string, sizeGiB int) error {
52+
func (m *MockInterface) CreateFileShare(resourceGroupName, accountName, name string, protocol storage.EnabledProtocols, sizeGiB int) error {
5253
m.ctrl.T.Helper()
53-
ret := m.ctrl.Call(m, "CreateFileShare", resourceGroupName, accountName, name, sizeGiB)
54+
ret := m.ctrl.Call(m, "CreateFileShare", resourceGroupName, accountName, name, protocol, sizeGiB)
5455
ret0, _ := ret[0].(error)
5556
return ret0
5657
}
5758

5859
// CreateFileShare indicates an expected call of CreateFileShare
59-
func (mr *MockInterfaceMockRecorder) CreateFileShare(resourceGroupName, accountName, name, sizeGiB interface{}) *gomock.Call {
60+
func (mr *MockInterfaceMockRecorder) CreateFileShare(resourceGroupName, accountName, name, protocol, sizeGiB interface{}) *gomock.Call {
6061
mr.mock.ctrl.T.Helper()
61-
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateFileShare", reflect.TypeOf((*MockInterface)(nil).CreateFileShare), resourceGroupName, accountName, name, sizeGiB)
62+
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateFileShare", reflect.TypeOf((*MockInterface)(nil).CreateFileShare), resourceGroupName, accountName, name, protocol, sizeGiB)
6263
}
6364

6465
// DeleteFileShare mocks base method

0 commit comments

Comments
 (0)