diff --git a/deploy/rp-production-global.json b/deploy/rp-production-global.json index 19ae30269..be3aacb0c 100644 --- a/deploy/rp-production-global.json +++ b/deploy/rp-production-global.json @@ -53,6 +53,15 @@ "type": "Microsoft.Storage/storageAccounts", "condition": "[parameters('fullDeploy')]", "apiVersion": "2019-04-01" + }, + { + "name": "[concat(parameters('rpVersionStorageAccountName'), '/default/rpversion')]", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "condition": "[parameters('fullDeploy')]", + "apiVersion": "2019-04-01", + "dependsOn": [ + "[resourceId('Microsoft.Storage/storageAccounts', parameters('rpVersionStorageAccountName'))]" + ] } ] } diff --git a/pkg/cluster/blobservice.go b/pkg/cluster/blobservice.go index fb871b551..ac44ae1ea 100644 --- a/pkg/cluster/blobservice.go +++ b/pkg/cluster/blobservice.go @@ -21,7 +21,7 @@ func (m *manager) getBlobService(ctx context.Context, p mgmtstorage.Permissions, t := time.Now().UTC().Truncate(time.Second) res, err := m.accounts.ListAccountSAS(ctx, resourceGroup, "cluster"+m.doc.OpenShiftCluster.Properties.StorageSuffix, mgmtstorage.AccountSasParameters{ - Services: "b", + Services: mgmtstorage.B, ResourceTypes: r, Permissions: p, Protocols: mgmtstorage.HTTPS, diff --git a/pkg/deploy/bindata.go b/pkg/deploy/bindata.go index 95e47af87..cc576d9cf 100644 --- a/pkg/deploy/bindata.go +++ b/pkg/deploy/bindata.go @@ -230,7 +230,7 @@ func rpProductionGlobalSubscriptionJson() (*asset, error) { return a, nil } -var _rpProductionGlobalJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x56\x5b\x6b\xe3\x3a\x10\x7e\xcf\xaf\x30\x3e\x07\x92\x40\x1c\xdb\x89\x73\xeb\x5b\x38\xe5\x2c\x85\xdd\x6d\x49\x4a\x5f\x42\x59\x14\x69\x9c\x6a\xab\x48\x62\x24\x67\xb7\x5d\xfa\xdf\x17\xd9\xb9\xd4\xb1\x13\xd8\xd2\xa7\xb2\x04\x8c\xd0\xcc\x7c\x73\xf9\xf4\x49\xf9\xd5\xf0\x3c\xcf\xf3\xff\x35\xf4\x01\xd6\xc4\xbf\xf0\xfc\x07\x6b\xb5\xb9\x08\xc3\x62\xa7\xbb\x26\x92\xac\x60\x0d\xd2\x76\xc9\x73\x86\xd0\xa5\x6a\xbd\xb5\x99\xb0\x17\xc5\x83\x20\x8a\x83\x28\x0e\x19\x68\xa1\x9e\x9c\xdf\x2d\xac\xb5\x20\x16\xba\xdf\x8d\x92\xff\xf8\x9d\x22\x03\x55\xd2\x82\xb4\x77\x80\x86\x2b\xe9\x12\xc5\xdd\xc8\xfd\x76\x0e\x9a\x20\x59\x83\x05\x34\xfe\x85\x57\x94\x95\xef\x13\x8a\x33\x30\x2a\x43\x0a\x57\xac\x64\xca\xcd\xf6\x49\x83\x43\x33\x16\xb9\x5c\xf9\x7b\xe3\x4b\xe7\x00\x91\xea\x39\xe0\x86\x53\xb8\x41\x2e\x29\xd7\x44\xbc\x19\x29\x13\xe2\x32\xef\xf4\x74\xfc\x52\x29\xe1\x77\xca\x36\x06\x29\xc9\x84\xbd\x23\x22\x73\x3e\x29\x11\x06\x6a\x13\xe0\xbb\x95\x8a\x7a\x3b\xeb\xb9\x55\x48\x56\x30\xa5\x54\x65\xd2\x7e\x25\x6b\xf8\x03\xc0\xc6\x2b\x58\x1f\xb7\x3c\x38\x86\x16\x7b\x9f\x23\x28\x59\x24\xf0\x17\x54\x49\x4a\x6c\xcb\x64\xcb\x02\xb5\x75\x60\xb8\xd5\x2c\xb1\xda\x6c\x77\x3c\xc2\x58\x4b\x10\x63\xaf\x24\x83\x9f\xd7\xe9\x79\xe7\x66\xe8\xbe\x71\xbb\x58\xba\xcf\x17\x4e\x51\x19\x95\xda\xee\x34\xb3\x0f\x0a\xf9\x33\xb1\x5c\x49\x67\x5c\x65\x9c\xb5\xb6\xc5\x9c\x45\x7d\x6d\xac\xe3\x21\xcf\x3c\xbb\xf1\x42\x6f\x4a\xf1\x26\x13\xa2\xd9\x6e\xb7\xef\x8f\xa9\xde\x8d\xf2\x50\xd1\x7f\x4a\x5a\xc2\x25\xe0\x0c\x56\xdc\x58\x7c\x0a\xb1\x58\x70\x30\xa1\x46\xb5\xe1\x0c\xd0\x84\xa8\x04\x4c\x8d\xe1\x2b\xe9\x54\x64\x8e\x71\x35\x2a\x0d\x68\x39\x98\x0a\x7d\xb9\xdd\x50\x55\x24\x5e\x9c\x69\xf2\xb8\xda\x82\x56\x25\xe0\x12\x52\x2e\xb9\x1b\x59\x7e\xde\xfc\x85\xa3\x8d\x22\xd7\x6e\xeb\x80\xd0\x6a\x9e\x1a\x74\x19\xc4\x38\x52\x46\xe9\x64\x10\x33\x46\x82\x04\x58\x3f\x48\x86\xe3\x28\x20\x23\x4a\x82\xa4\x9f\x42\x3c\xea\xb1\x41\x7f\x7c\xaa\x24\x5d\x3a\xfd\xe5\x96\xea\xa9\x39\x0f\x73\xbb\x25\xe5\x38\xd2\x2f\xc5\xbc\x1c\x8d\x9c\x2a\xc9\xf2\x76\x2a\x35\x1c\xee\x81\x6a\x66\x9f\x68\xfe\xea\x9a\xeb\x45\xf1\x38\x88\x26\xee\x9a\xd4\x08\x1b\x0e\x3f\x6a\xf5\xfa\x61\x54\xd4\xfc\x3f\x57\xc8\xec\xda\xdb\x24\x5e\xe5\xe8\x7b\xb7\xea\x11\x64\xbe\x8f\x7c\x99\x59\x85\x7f\x45\x74\x56\x44\xc9\x78\x32\xee\x0f\xfa\x49\xd0\x67\xd1\x30\x48\x18\x5d\x06\x64\x30\x1c\x06\xd1\x98\x0c\x27\x09\x2c\xe3\xde\x68\xf2\x06\x11\xd5\x3d\x89\x1f\x4e\x44\xe6\x31\xab\xa7\x79\xa7\xae\xb9\x25\x92\x11\x64\xdf\x3e\xcf\xe6\xe7\xbb\x10\x8a\x92\x7d\x13\xbb\x77\xf0\x13\xaa\x4c\xb7\xda\xdd\x9d\xb1\xd2\xc4\x5e\xc5\xe5\xfb\xeb\xe4\xc3\x5c\x33\x87\xaa\x12\xb6\x61\xa1\x29\x85\x57\x8e\xfa\x7b\xcd\x7d\x12\x44\x49\x10\xc5\xc7\xff\x09\xee\x1b\x2f\x8d\xdf\x01\x00\x00\xff\xff\xcd\xdb\xb1\x04\x3d\x0a\x00\x00") +var _rpProductionGlobalJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x56\x5d\x6f\xf2\x36\x14\xbe\xe7\x57\x44\xd9\x24\x40\x22\x24\x81\xf0\xd5\x3b\xb4\x57\x9b\x5e\x69\x5b\x2b\xa8\x7a\x83\xd0\x64\xec\x13\xea\xd5\xd8\xd6\xb1\xc3\xd6\x4e\xfd\xef\x93\x93\x00\x4d\x02\x68\xeb\xba\x9b\xea\x15\x12\x8a\x7c\xec\xe7\x7c\x3c\xe7\x39\xf6\x5f\x2d\xcf\xf3\x3c\xff\x7b\x43\x1f\x61\x47\xfc\x1b\xcf\x7f\xb4\x56\x9b\x9b\x30\x2c\x56\xfa\x3b\x22\xc9\x16\x76\x20\x6d\x9f\xbc\x64\x08\x7d\xaa\x76\xa5\xcd\x84\x83\x28\x1e\x05\x51\x1c\x44\x71\xc8\x40\x0b\xf5\xec\xf6\xdd\xc3\x4e\x0b\x62\xa1\xff\xbb\x51\xf2\x3b\xbf\x57\x78\xa0\x4a\x5a\x90\xf6\x01\xd0\x70\x25\x9d\xa3\xb8\x1f\xb9\xdf\x61\x83\x26\x48\x76\x60\x01\x8d\x7f\xe3\x15\x61\xe5\xeb\x84\xe2\x02\x8c\xca\x90\xc2\x57\x56\x31\xe5\x66\xfb\xac\xc1\xa1\x19\x8b\x5c\x6e\xfd\xa3\xf1\xb5\x77\x82\x48\xf5\x12\x70\xcf\x29\xdc\x21\x97\x94\x6b\x22\xde\x8d\x94\x09\xf1\x25\xcf\xf4\xf2\xf9\x8d\x52\xc2\xef\x55\x6d\x0c\x52\x92\x09\xfb\x40\x44\xe6\xf6\xa4\x44\x18\x38\xeb\x00\x3f\x2c\x54\xd4\x65\xad\x97\x56\x21\xd9\xc2\x9c\x52\x95\x49\xfb\x2b\xd9\xc1\xbf\x00\x6c\xbd\x81\xf5\xb1\xe4\xc1\x31\xb4\x3a\xee\xa9\x41\xc9\xc2\x81\xbf\xa2\x4a\x52\x62\x3b\x26\xdb\x14\xa8\x9d\x13\xc3\x9d\x76\x85\xd5\x76\xb7\xe7\x11\xc6\x3a\x82\x18\xfb\x55\x32\xf8\xf3\x36\xbd\xbe\xb9\x1d\xba\xff\xb8\x5b\x7c\xba\xbf\x5f\x38\x45\x65\x54\x6a\xfb\xf3\xcc\x3e\x2a\xe4\x2f\xc4\x72\x25\x9d\x71\x9b\x71\xd6\x29\x83\xb9\x8a\xfa\xd6\x78\x8e\x87\xdc\xf3\xe2\xce\x0b\xbd\x39\xc5\xbb\x4c\x88\x76\xb7\xdb\x5d\xd7\xa9\x3e\x94\xf2\x14\xd1\x0f\x4a\x5a\xc2\x25\xe0\x02\xb6\xdc\x58\x7c\x0e\xb1\xf8\xe0\x60\x42\x8d\x6a\xcf\x19\xa0\x09\x51\x09\x98\x1b\xc3\xb7\xd2\xa9\xc8\xd4\x71\x35\x2a\x0d\x68\x39\x98\x06\x7d\xb9\xdd\x50\x55\x38\x5e\x5d\x49\xb2\x1e\x6d\x41\xab\x12\xf0\x05\x52\x2e\xb9\x2b\x59\xde\x6f\xfe\xca\xd1\x46\x91\x6b\xb7\x74\x42\xe8\xb4\x2f\x15\xba\x0a\x62\x1c\x29\x93\x74\x36\x8a\x19\x23\x41\x02\x6c\x18\x24\xe3\x69\x14\x90\x09\x25\x41\x32\x4c\x21\x9e\x0c\xd8\x68\x38\xbd\x14\x92\xae\x74\x7f\x35\xa5\xf3\xd4\x5c\x87\xb9\x2f\x49\xa9\x9f\xf4\x2b\x67\x5e\x6b\x25\xa7\x4a\xb2\x3c\x9d\x46\x0c\xa7\x39\xd0\xf4\xec\x13\xcd\xdf\x8c\xb9\x41\x14\x4f\x83\x68\xe6\xc6\xa4\x46\xd8\x73\xf8\xe3\xac\x5e\x3f\x8d\x8a\xda\x3f\xe6\x0a\x59\xdc\x7a\xfb\xc4\x6b\xb4\xbe\x77\xaf\x9e\x40\xe6\xeb\xc8\x37\x99\x55\xf8\x4d\x44\x57\x45\x94\x4c\x67\xd3\xe1\x68\x98\x04\x43\x16\x8d\x83\x84\xd1\x4d\x40\x46\xe3\x71\x10\x4d\xc9\x78\x96\xc0\x26\x1e\x4c\x66\xef\x10\xd1\xb9\x2b\xf1\xd3\x89\xc8\x3c\x65\xe7\x69\x3e\xa8\x6b\x69\x89\x64\x04\xd9\x6f\x3f\x2f\x96\xd7\xb3\x10\x8a\x92\x63\x12\x87\x7b\xf0\x27\x54\x99\xee\x74\xfb\x07\x63\x23\x89\xa3\x8a\xab\xf3\xeb\xe2\xc5\x7c\xa6\x0e\x4d\x25\x94\xc7\x42\x53\x39\xde\x68\xf5\x8f\xaa\xfb\x2c\x88\x92\x20\x8a\xdf\x33\xb4\xfe\x71\xd6\x6e\xf6\x94\x4f\xa4\x10\xf5\xbe\xd8\xf8\x5f\x8a\x11\x6e\x84\xda\x94\x7d\x6a\x42\x7a\x98\x1d\xff\x7b\x91\x1a\xcf\x3e\x0d\x92\x99\x5b\x59\x79\x30\x1d\xcd\xc7\x46\xaa\xce\x84\x0b\x39\xb5\xeb\x2f\x94\x2b\x05\xed\xae\xab\xed\xbc\xae\xbd\xe8\xd6\xad\xd7\xd6\xdf\x01\x00\x00\xff\xff\x7c\x17\x3c\x58\xfb\x0b\x00\x00") func rpProductionGlobalJsonBytes() ([]byte, error) { return bindataRead( diff --git a/pkg/deploy/generator/resources.go b/pkg/deploy/generator/resources.go index f35cfd7be..f329653a3 100644 --- a/pkg/deploy/generator/resources.go +++ b/pkg/deploy/generator/resources.go @@ -1595,18 +1595,31 @@ func (g *generator) acrRbac() []*arm.Resource { } } -func (g *generator) rpVersionStorageAccount() *arm.Resource { - return &arm.Resource{ - Resource: &mgmtstorage.Account{ - Name: to.StringPtr("[parameters('rpVersionStorageAccountName')]"), - Type: to.StringPtr("Microsoft.Storage/storageAccounts"), - Location: to.StringPtr("[resourceGroup().location]"), - Sku: &mgmtstorage.Sku{ - Name: "Standard_LRS", +func (g *generator) rpVersionStorageAccount() []*arm.Resource { + return []*arm.Resource{ + { + Resource: &mgmtstorage.Account{ + Name: to.StringPtr("[parameters('rpVersionStorageAccountName')]"), + Type: to.StringPtr("Microsoft.Storage/storageAccounts"), + Location: to.StringPtr("[resourceGroup().location]"), + Sku: &mgmtstorage.Sku{ + Name: "Standard_LRS", + }, + }, + Condition: g.conditionStanza("fullDeploy"), + APIVersion: azureclient.APIVersions["Microsoft.Storage"], + }, + { + Resource: &mgmtstorage.BlobContainer{ + Name: to.StringPtr("[concat(parameters('rpVersionStorageAccountName'), '/default/rpversion')]"), + Type: to.StringPtr("Microsoft.Storage/storageAccounts/blobServices/containers"), + }, + APIVersion: azureclient.APIVersions["Microsoft.Storage"], + Condition: g.conditionStanza("fullDeploy"), + DependsOn: []string{ + "[resourceId('Microsoft.Storage/storageAccounts', parameters('rpVersionStorageAccountName'))]", }, }, - Condition: g.conditionStanza("fullDeploy"), - APIVersion: azureclient.APIVersions["Microsoft.Storage"], } } diff --git a/pkg/deploy/generator/templates.go b/pkg/deploy/generator/templates.go index 79af9af21..9b24b46ae 100644 --- a/pkg/deploy/generator/templates.go +++ b/pkg/deploy/generator/templates.go @@ -119,7 +119,7 @@ func (g *generator) rpGlobalTemplate() *arm.Template { g.acrRbac()..., ) t.Resources = append(t.Resources, - g.rpVersionStorageAccount(), + g.rpVersionStorageAccount()..., ) return t