terraspace_plugin_azurerm 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3164712306e20fe0da2192f6e8168e7d19dc773f840f351f351bd3cd0c56fd76
|
|
4
|
+
data.tar.gz: 4e3a39f1aacad41a0806f5e9c81013119b58f11dc42b2d0ac791f9e0c4e44814
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 005df536cf5d7b6ed59435e2560bce4924ecc8a0cf4be3a6c2ae294b711c160e435797a62758d476978d3be3914f10336d23c74a681f1b381bc6d820c68dbcae
|
|
7
|
+
data.tar.gz: 6c3169184cb1b3de048689ab79c9e860c6f9892c5c6ff74eca63db07010d2c6883e8a24d802d6d0d29d4b69d427243631fb66bc990c1e922fdbe9132cd4095cd
|
data/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
This project *loosely tries* to adhere to [Semantic Versioning](http://semver.org/).
|
|
5
5
|
|
|
6
|
+
## [0.2.3]
|
|
7
|
+
- #4 validate env vars and use older storage client
|
|
8
|
+
|
|
6
9
|
## [0.2.2]
|
|
7
10
|
- #3 fix test template
|
|
8
11
|
|
data/README.md
CHANGED
|
@@ -27,7 +27,7 @@ end
|
|
|
27
27
|
|
|
28
28
|
By default, this plugin will automatically create the:
|
|
29
29
|
|
|
30
|
-
* [resource group](
|
|
30
|
+
* [resource group](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-portal)
|
|
31
31
|
* [storage account](https://docs.microsoft.com/en-us/azure/storage/common/storage-account-create?tabs=azure-portal)
|
|
32
32
|
* [storage container](https://docs.microsoft.com/en-us/cli/azure/storage/container?view=azure-cli-latest#az-storage-container-create)
|
|
33
33
|
|
|
@@ -35,15 +35,17 @@ The settings generally only apply if the resource does not yet exist yet and is
|
|
|
35
35
|
|
|
36
36
|
## Environment Variables
|
|
37
37
|
|
|
38
|
-
To create the Azure resources like [resource group](
|
|
38
|
+
To create the Azure resources like [resource group](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-portal), [storage account](https://docs.microsoft.com/en-us/azure/storage/common/storage-account-create?tabs=azure-portal), and [storage container](https://docs.microsoft.com/en-us/cli/azure/storage/container?view=azure-cli-latest#az-storage-container-create) these environment variables are required:
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
ARM_CLIENT_ID
|
|
41
|
+
ARM_CLIENT_SECRET
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
Other env variables can be optionally set:
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
ARM_TENANT_ID
|
|
46
|
+
ARM_SUBSCRIPTION_ID
|
|
47
|
+
|
|
48
|
+
When not set, their values are inferred from the [az cli](https://docs.microsoft.com/en-us/cli/azure/) settings. For those interested, this is done with the [boltops-tools/azure_info](https://github.com/boltops-tools/azure_info) library.
|
|
47
49
|
|
|
48
50
|
## Contributing
|
|
49
51
|
|
|
@@ -3,21 +3,49 @@ module TerraspacePluginAzurerm::Clients
|
|
|
3
3
|
extend Memoist
|
|
4
4
|
|
|
5
5
|
def client_options
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
o = base_client_options
|
|
7
|
+
o[:credentials] = credentials
|
|
8
|
+
o
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def credentials
|
|
12
|
+
o = base_client_options
|
|
13
|
+
provider = MsRestAzure::ApplicationTokenProvider.new(o[:tenant_id], o[:client_id], o[:client_secret])
|
|
14
|
+
MsRest::TokenCredentials.new(provider)
|
|
15
|
+
end
|
|
10
16
|
|
|
11
|
-
|
|
12
|
-
|
|
17
|
+
def base_client_options
|
|
18
|
+
# AZURE_* is used by ruby generally.
|
|
19
|
+
# ARM_* is used by Terraform azurerm provider: https://www.terraform.io/docs/providers/azurerm/index.html
|
|
20
|
+
# Favor ARM_ because this plugin is designed for Terraspace.
|
|
21
|
+
client_id = ENV['ARM_CLIENT_ID'] || ENV['AZURE_CLIENT_ID']
|
|
22
|
+
client_secret = ENV['ARM_CLIENT_SECRET'] || ENV['AZURE_CLIENT_SECRET']
|
|
23
|
+
subscription_id = ENV['ARM_SUBSCRIPTION_ID'] || ENV['AZURE_SUBSCRIPTION_ID'] || AzureInfo.subscription_id
|
|
24
|
+
tenant_id = ENV['ARM_TENANT_ID'] || ENV['AZURE_TENANT_ID'] || AzureInfo.tenant_id
|
|
13
25
|
|
|
14
|
-
{
|
|
26
|
+
o = {
|
|
15
27
|
tenant_id: tenant_id,
|
|
16
28
|
client_id: client_id,
|
|
17
29
|
client_secret: client_secret,
|
|
18
30
|
subscription_id: subscription_id,
|
|
19
|
-
credentials: credentials
|
|
20
31
|
}
|
|
32
|
+
validate_base_options!(o)
|
|
33
|
+
o
|
|
34
|
+
end
|
|
35
|
+
memoize :base_client_options
|
|
36
|
+
|
|
37
|
+
def validate_base_options!(options)
|
|
38
|
+
vars = []
|
|
39
|
+
options.each do |k,v|
|
|
40
|
+
vars << "ARM_#{k}".upcase if v.nil?
|
|
41
|
+
end
|
|
42
|
+
return if vars.empty?
|
|
43
|
+
|
|
44
|
+
logger.error "ERROR: Required Azure env variables missing. Please set these env variables:".color(:red)
|
|
45
|
+
vars.each do |var|
|
|
46
|
+
logger.error " #{var}"
|
|
47
|
+
end
|
|
48
|
+
exit 1
|
|
21
49
|
end
|
|
22
50
|
end
|
|
23
51
|
end
|
|
@@ -6,8 +6,8 @@ module TerraspacePluginAzurerm::Clients
|
|
|
6
6
|
extend Memoist
|
|
7
7
|
|
|
8
8
|
# Include SDK modules to ease access to Storage classes.
|
|
9
|
-
include Azure::Storage::
|
|
10
|
-
include Azure::Storage::
|
|
9
|
+
include Azure::Storage::Mgmt::V2019_06_01
|
|
10
|
+
include Azure::Storage::Mgmt::V2019_06_01::Models
|
|
11
11
|
|
|
12
12
|
def storage_accounts
|
|
13
13
|
mgmt.storage_accounts
|
|
@@ -19,7 +19,9 @@ module TerraspacePluginAzurerm::Clients
|
|
|
19
19
|
memoize :blob_containers
|
|
20
20
|
|
|
21
21
|
def mgmt
|
|
22
|
-
|
|
22
|
+
client = StorageManagementClient.new(credentials)
|
|
23
|
+
client.subscription_id = client_options[:subscription_id]
|
|
24
|
+
client
|
|
23
25
|
end
|
|
24
26
|
memoize :mgmt
|
|
25
27
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: terraspace_plugin_azurerm
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tung Nguyen
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-10-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: azure-storage-blob
|