vagrant-azure
vagrant-azure copied to clipboard
Support for Azure Environments like AzureGermanCloud, AzureChinaCloud, ... ?
Hi,
I'm trying to get the azure provider running with AzureGermanCloud and have encountered some problems. The first one is that I cannot configure the provider to use endpoint URLs for AzureGermanCloud; the provider is always using the AzureCloud URLs.
I have checked the module MsRestAzure from ms_rest_azure-0.7.0 and the module supports different Azure environments (e.g. AzureGermanCloud).
module MsRestAzure
class ActiveDirectoryServiceSettings
def self.get_azure_settings
get_settings(MsRestAzure::AzureEnvironments::AzureCloud)
end
def self.get_azure_german_settings
get_settings(MsRestAzure::AzureEnvironments::AzureGermanCloud)
end
The class MsRestAzure::ApplicationTokenProvider also supports setting the Environment:
def initialize(tenant_id, client_id, client_secret, settings = ActiveDirectoryServiceSettings.get_azure_settings)
So in case the initializer is calling without explicitly setting the "settings" parameter, is uses the AzureCloud environment. Now checking the usage in the azure provider modules, I find no method to configure the settings to use:
vagrant-azure/action/connect_azure.rb
def call (env)
provider = MsRestAzure::ApplicationTokenProvider.new(config.tenant_id, config.client_id, config.client_secret)
end
vagrant-azure/services/azure_resource_manager.rb
def initialize(token_provider, subscription_id, base_url = nil)
MsRestAzure::ApplicationTokenProvider.new(
ENV[TENANT_ID_NAME],
ENV[CLIENT_ID_NAME],
ENV[CLIENT_SECRET_NAME])
@credential = MsRest::TokenCredentials.new(token_provider)
@base_url = base_url
@subscription_id = subscription_id
end
Both does not set the settings parameter, thus using the default AzureCloud.
As I understand, I am currently not able to use the azure provider for other Azure environments like AzureGermanCloud, AzureChinaCloud - as method aquire_token will use the wrong URL?
Also setting the azure provider parameter endpoint explicitly to the e.g. german endpoint does not seem to affect the token retrieval too.
Vagrant.configure('2') do |config|
config.vm.box = 'azure'
config.vm.provider :azure do |azure, override|
azure.endpoint = 'https://management.microsoftazure.de'
...
end
end
(not working)
Thanks in advance, Rainer