diff --git a/pkg/cloudprovider/providers/azure/azure_blobDiskController.go b/pkg/cloudprovider/providers/azure/azure_blobDiskController.go index d738599eabc..a3e9248378e 100644 --- a/pkg/cloudprovider/providers/azure/azure_blobDiskController.go +++ b/pkg/cloudprovider/providers/azure/azure_blobDiskController.go @@ -22,7 +22,6 @@ import ( "fmt" "math" "net/url" - "os" "regexp" "sync" @@ -70,12 +69,6 @@ var accountsLock = &sync.Mutex{} func newBlobDiskController(common *controllerCommon) (*BlobDiskController, error) { c := BlobDiskController{common: common} - err := c.init() - - if err != nil { - return nil, err - } - return &c, nil } @@ -316,7 +309,7 @@ func (c *BlobDiskController) DeleteBlobDisk(diskURI string, wasForced bool) erro // Init tries best effort to ensure that 2 accounts standard/premium were created // to be used by shared blob disks. This to increase the speed pvc provisioning (in most of cases) -func (c *BlobDiskController) init() error { +func (c *BlobDiskController) InitStorageAccount() error { if !c.shouldInit() { return nil } @@ -543,13 +536,7 @@ func (c *BlobDiskController) getDiskCount(SAName string) (int, error) { // and we only do that in the controller func (c *BlobDiskController) shouldInit() bool { - if os.Args[0] == "kube-controller-manager" || (os.Args[0] == "/hyperkube" && os.Args[1] == "controller-manager") { - swapped := atomic.CompareAndSwapInt64(&initFlag, 0, 1) - if swapped { - return true - } - } - return false + return atomic.CompareAndSwapInt64(&initFlag, 0, 1) } func (c *BlobDiskController) getAllStorageAccounts() (map[string]*storageAccountState, error) { diff --git a/pkg/volume/azure_dd/azure_dd.go b/pkg/volume/azure_dd/azure_dd.go index bb45bf3b4d9..2b40c41dead 100644 --- a/pkg/volume/azure_dd/azure_dd.go +++ b/pkg/volume/azure_dd/azure_dd.go @@ -28,6 +28,8 @@ import ( // interface exposed by the cloud provider implementing Disk functionlity type DiskController interface { + InitStorageAccount() error + CreateBlobDisk(dataDiskName string, storageAccountType storage.SkuName, sizeGB int, forceStandAlone bool) (string, error) DeleteBlobDisk(diskUri string, wasForced bool) error diff --git a/pkg/volume/azure_dd/azure_provision.go b/pkg/volume/azure_dd/azure_provision.go index d037f636d80..230be9211dc 100644 --- a/pkg/volume/azure_dd/azure_provision.go +++ b/pkg/volume/azure_dd/azure_provision.go @@ -168,6 +168,9 @@ func (p *azureDiskProvisioner) Provision() (*v1.PersistentVolume, error) { } } } else { + if err = diskController.InitStorageAccount(); err != nil { + return nil, err + } diskURI, err = diskController.CreateBlobDisk(name, skuName, requestGB, forceStandAlone) if err != nil { return nil, err