Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added the possibility for VNET to be in another subscription #463

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .goreleaser.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

# This is an example goreleaser.yaml file with some defaults.
# Make sure to check the documentation at http://goreleaser.com
version: 2
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why did you include the version bump here? I assume that the License addition also is required by goreleaser v2? Either way we generally don't expect contributors to modify our goreleaser process, can you exclude this change?

env:
- CGO_ENABLED=0
before:
Expand Down
4 changes: 4 additions & 0 deletions .web-docs/components/builder/arm/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -388,6 +388,10 @@ Providing `temp_resource_group_name` or `location` in combination with
containing the virtual network. If the resource group cannot be found, or
it cannot be disambiguated, this value should be set.

- `virtual_network_subscription` (string) - If virtual_network_name is
set, this value may also be set. If virtual_network_name is set, and
this value is not set the builder uses the default subscription.

- `custom_data_file` (string) - Specify a file containing custom data to inject into the cloud-init
process. The contents of the file are read and injected into the ARM
template. The custom data will be passed to cloud-init for processing at
Expand Down
375 changes: 375 additions & 0 deletions LICENSE.txt

Large diffs are not rendered by default.

1,268 changes: 1,268 additions & 0 deletions build.log

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions builder/azure/arm/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -463,6 +463,10 @@ type Config struct {
// containing the virtual network. If the resource group cannot be found, or
// it cannot be disambiguated, this value should be set.
VirtualNetworkResourceGroupName string `mapstructure:"virtual_network_resource_group_name" required:"false"`
// If virtual_network_name is
// set, this value may also be set. If virtual_network_name is set, and
// this value is not set the builder uses the default subscription.
VirtualNetworkSubscription string `mapstructure:"virtual_network_subscription" required:"false"`
// Specify a file containing custom data to inject into the cloud-init
// process. The contents of the file are read and injected into the ARM
// template. The custom data will be passed to cloud-init for processing at
Expand Down Expand Up @@ -1431,6 +1435,9 @@ func assertRequiredParametersSet(c *Config, errs *packersdk.MultiError) {
if c.VirtualNetworkName == "" && c.VirtualNetworkResourceGroupName != "" {
errs = packersdk.MultiErrorAppend(errs, fmt.Errorf("If virtual_network_resource_group_name is specified, so must virtual_network_name"))
}
if c.VirtualNetworkName == "" && c.VirtualNetworkSubscription != "" {
errs = packersdk.MultiErrorAppend(errs, fmt.Errorf("If virtual_network_subscription is specified, so must virtual_network_name"))
}
if c.VirtualNetworkName == "" && c.VirtualNetworkSubnetName != "" {
errs = packersdk.MultiErrorAppend(errs, fmt.Errorf("If virtual_network_subnet_name is specified, so must virtual_network_name"))
}
Expand Down
2 changes: 2 additions & 0 deletions builder/azure/arm/config.hcl2spec.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

27 changes: 27 additions & 0 deletions builder/azure/arm/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -312,11 +312,38 @@ func TestConfigVirtualNetworkNameIsOptional(t *testing.T) {
if c.VirtualNetworkResourceGroupName != "" {
t.Errorf("Expected Config to leave virtual_network_resource_group_name to '', but got %q", c.VirtualNetworkResourceGroupName)
}
if c.VirtualNetworkSubscription != "" {
t.Errorf("Expected Config to leave virtual_network_subscription to '', but got %q", c.VirtualNetworkSubscription)
}
if c.VirtualNetworkSubnetName != "" {
t.Errorf("Expected Config to leave virtual_network_subnet_name to '', but got %q", c.VirtualNetworkSubnetName)
}
}

// The user can pass the value virtual_network_subscription to avoid the lookup of
// a virtual network's resource group, or to help with disambiguation. The value should
// only be set if virtual_network_name was set.
func TestConfigVirtualNetworkSubscriptionMustBeSetWithVirtualNetworkName(t *testing.T) {
config := map[string]string{
"capture_name_prefix": "ignore",
"capture_container_name": "ignore",
"location": "ignore",
"image_url": "ignore",
"storage_account": "ignore",
"resource_group_name": "ignore",
"subscription_id": "ignore",
"os_type": constants.Target_Linux,
"communicator": "none",
"virtual_network_subscription": "MyVirtualNetworkRG",
}

var c Config
_, err := c.Prepare(config, getPackerConfiguration())
if err == nil {
t.Error("Expected Config to reject virtual_network_subscription, if virtual_network_name is not set.")
}
}

// The user can pass the value virtual_network_resource_group_name to avoid the lookup of
// a virtual network's resource group, or to help with disambiguation. The value should
// only be set if virtual_network_name was set.
Expand Down
2 changes: 2 additions & 0 deletions builder/azure/arm/template_factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -304,6 +304,7 @@ func GetVirtualMachineTemplateBuilder(config *Config) (*template.TemplateBuilder

if config.VirtualNetworkName != "" && DefaultPrivateVirtualNetworkWithPublicIp != config.PrivateVirtualNetworkWithPublicIp {
err = builder.SetPrivateVirtualNetworkWithPublicIp(
config.VirtualNetworkSubscription,
config.VirtualNetworkResourceGroupName,
config.VirtualNetworkName,
config.VirtualNetworkSubnetName)
Expand All @@ -312,6 +313,7 @@ func GetVirtualMachineTemplateBuilder(config *Config) (*template.TemplateBuilder
}
} else if config.VirtualNetworkName != "" {
err = builder.SetVirtualNetwork(
config.VirtualNetworkSubscription,
config.VirtualNetworkResourceGroupName,
config.VirtualNetworkName,
config.VirtualNetworkSubnetName)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,8 @@
"subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
"virtualNetworkName": "[parameters('virtualNetworkName')]",
"virtualNetworkResourceGroup": "[resourceGroup().name]",
"virtualNetworkSubscriptionID": "[subscription().subscriptionId]",
"vmStorageAccountContainerName": "images",
"vnetID": "[resourceId(variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
"vnetID": "[resourceId(variables('virtualNetworkSubscriptionID'),variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,8 @@
"subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
"virtualNetworkName": "[parameters('virtualNetworkName')]",
"virtualNetworkResourceGroup": "[resourceGroup().name]",
"virtualNetworkSubscriptionID": "[subscription().subscriptionId]",
"vmStorageAccountContainerName": "images",
"vnetID": "[resourceId(variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
"vnetID": "[resourceId(variables('virtualNetworkSubscriptionID'),variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,8 @@
"subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
"virtualNetworkName": "[parameters('virtualNetworkName')]",
"virtualNetworkResourceGroup": "[resourceGroup().name]",
"virtualNetworkSubscriptionID": "[subscription().subscriptionId]",
"vmStorageAccountContainerName": "images",
"vnetID": "[resourceId(variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
"vnetID": "[resourceId(variables('virtualNetworkSubscriptionID'),variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,8 @@
"subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
"virtualNetworkName": "[parameters('virtualNetworkName')]",
"virtualNetworkResourceGroup": "[resourceGroup().name]",
"virtualNetworkSubscriptionID": "[subscription().subscriptionId]",
"vmStorageAccountContainerName": "images",
"vnetID": "[resourceId(variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
"vnetID": "[resourceId(variables('virtualNetworkSubscriptionID'),variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,8 @@
"subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
"virtualNetworkName": "[parameters('virtualNetworkName')]",
"virtualNetworkResourceGroup": "[resourceGroup().name]",
"virtualNetworkSubscriptionID": "[subscription().subscriptionId]",
"vmStorageAccountContainerName": "images",
"vnetID": "[resourceId(variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
"vnetID": "[resourceId(variables('virtualNetworkSubscriptionID'),variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,8 @@
"subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
"virtualNetworkName": "[parameters('virtualNetworkName')]",
"virtualNetworkResourceGroup": "[resourceGroup().name]",
"virtualNetworkSubscriptionID": "[subscription().subscriptionId]",
"vmStorageAccountContainerName": "images",
"vnetID": "[resourceId(variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
"vnetID": "[resourceId(variables('virtualNetworkSubscriptionID'),variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,8 @@
"subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
"virtualNetworkName": "[parameters('virtualNetworkName')]",
"virtualNetworkResourceGroup": "[resourceGroup().name]",
"virtualNetworkSubscriptionID": "[subscription().subscriptionId]",
"vmStorageAccountContainerName": "images",
"vnetID": "[resourceId(variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
"vnetID": "[resourceId(variables('virtualNetworkSubscriptionID'),variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,8 @@
"subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
"virtualNetworkName": "[parameters('virtualNetworkName')]",
"virtualNetworkResourceGroup": "[resourceGroup().name]",
"virtualNetworkSubscriptionID": "[subscription().subscriptionId]",
"vmStorageAccountContainerName": "images",
"vnetID": "[resourceId(variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
"vnetID": "[resourceId(variables('virtualNetworkSubscriptionID'),variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,8 @@
"subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
"virtualNetworkName": "[parameters('virtualNetworkName')]",
"virtualNetworkResourceGroup": "[resourceGroup().name]",
"virtualNetworkSubscriptionID": "[subscription().subscriptionId]",
"vmStorageAccountContainerName": "images",
"vnetID": "[resourceId(variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
"vnetID": "[resourceId(variables('virtualNetworkSubscriptionID'),variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,8 @@
"subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
"virtualNetworkName": "[parameters('virtualNetworkName')]",
"virtualNetworkResourceGroup": "[resourceGroup().name]",
"virtualNetworkSubscriptionID": "[subscription().subscriptionId]",
"vmStorageAccountContainerName": "images",
"vnetID": "[resourceId(variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
"vnetID": "[resourceId(variables('virtualNetworkSubscriptionID'),variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,8 @@
"subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
"virtualNetworkName": "[parameters('virtualNetworkName')]",
"virtualNetworkResourceGroup": "[resourceGroup().name]",
"virtualNetworkSubscriptionID": "[subscription().subscriptionId]",
"vmStorageAccountContainerName": "images",
"vnetID": "[resourceId(variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
"vnetID": "[resourceId(variables('virtualNetworkSubscriptionID'),variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,8 @@
"subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
"virtualNetworkName": "[parameters('virtualNetworkName')]",
"virtualNetworkResourceGroup": "[resourceGroup().name]",
"virtualNetworkSubscriptionID": "[subscription().subscriptionId]",
"vmStorageAccountContainerName": "images",
"vnetID": "[resourceId(variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
"vnetID": "[resourceId(variables('virtualNetworkSubscriptionID'),variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,8 @@
"subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
"virtualNetworkName": "[parameters('virtualNetworkName')]",
"virtualNetworkResourceGroup": "[resourceGroup().name]",
"virtualNetworkSubscriptionID": "[subscription().subscriptionId]",
"vmStorageAccountContainerName": "images",
"vnetID": "[resourceId(variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
"vnetID": "[resourceId(variables('virtualNetworkSubscriptionID'),variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,8 @@
"subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
"virtualNetworkName": "virtualNetworkName",
"virtualNetworkResourceGroup": "virtualNetworkResourceGroupName",
"virtualNetworkSubscriptionID": "virtualNetworkSubscription",
"vmStorageAccountContainerName": "images",
"vnetID": "[resourceId(variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
"vnetID": "[resourceId(variables('virtualNetworkSubscriptionID'),variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,8 @@
"subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
"virtualNetworkName": "[parameters('virtualNetworkName')]",
"virtualNetworkResourceGroup": "[resourceGroup().name]",
"virtualNetworkSubscriptionID": "[subscription().subscriptionId]",
"vmStorageAccountContainerName": "images",
"vnetID": "[resourceId(variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
"vnetID": "[resourceId(variables('virtualNetworkSubscriptionID'),variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,8 @@
"subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
"virtualNetworkName": "[parameters('virtualNetworkName')]",
"virtualNetworkResourceGroup": "[resourceGroup().name]",
"virtualNetworkSubscriptionID": "[subscription().subscriptionId]",
"vmStorageAccountContainerName": "images",
"vnetID": "[resourceId(variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
"vnetID": "[resourceId(variables('virtualNetworkSubscriptionID'),variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,8 @@
"subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
"virtualNetworkName": "[parameters('virtualNetworkName')]",
"virtualNetworkResourceGroup": "[resourceGroup().name]",
"virtualNetworkSubscriptionID": "[subscription().subscriptionId]",
"vmStorageAccountContainerName": "images",
"vnetID": "[resourceId(variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
"vnetID": "[resourceId(variables('virtualNetworkSubscriptionID'),variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,8 @@
"subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
"virtualNetworkName": "[parameters('virtualNetworkName')]",
"virtualNetworkResourceGroup": "[resourceGroup().name]",
"virtualNetworkSubscriptionID": "[subscription().subscriptionId]",
"vmStorageAccountContainerName": "images",
"vnetID": "[resourceId(variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
"vnetID": "[resourceId(variables('virtualNetworkSubscriptionID'),variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
}
}
Loading
Loading