Skip to content

DanielMabbett/terraform-azurerm-network

Repository files navigation

terraform-azurerm-network

terratest

Create a basic network in Azure

This Terraform module deploys any number of virtual networks and required.

The module does not create nor expose a security group. You could use https://github.com/Azure/terraform-azurerm-vnet to assign network security group to the subnets. This may be a future feature.

Usage

provider "azurerm" {
  features {}
}

resource "random_id" "rg_name" {
  byte_length = 8
}

variable "location" {
  default = "north europe"
}

resource "azurerm_resource_group" "test" {
  name     = "acct-${random_id.rg_name.hex}"
  location = var.location
}

module "network" {
  source = "../.."

  depends_on = [azurerm_resource_group.test]

  resource_group_name = azurerm_resource_group.test.name
  location = azurerm_resource_group.test.location

  name = "1stacctvnet"
  address_space = ["10.0.0.0/16"]

  subnets = [
    {
      vnet_name        = "1stacctvnet"
      name             = "management"
      address_prefixes = ["10.0.1.0/24"]
    },
  ]
}

output "vnet_ids" {
  value = module.network.vnet_ids
}

output "vnet_names" {
  value = module.network.vnet_names
}

Test

Configurations

We provide 2 ways to build, run, and test the module on a local development machine. Native (Mac/Linux) or Docker.

Native (Mac/Linux)

Prerequisites

Environment setup

We provide simple script to quickly set up module development environment:

Note: This will not deploy the latest versions for setup. This is coming soon however.

curl -sSL https://raw.githubusercontent.com/Azure/terramodtest/master/tool/env_setup.sh | sudo bash

Run test

Then simply run it in local shell:

cd $GOPATH/src/{directory_name}/
bundle install
rake build
rake full

Docker

We provide a Dockerfile to build a new image based FROM the microsoft/terraform-test Docker hub image which adds additional tools / packages specific for this module (see Custom Image section). Alternatively use only the microsoft/terraform-test Docker hub image by using these instructions.

Prerequisites

Custom Image

This builds the custom image:

docker build --build-arg BUILD_ARM_SUBSCRIPTION_ID=$ARM_SUBSCRIPTION_ID --build-arg BUILD_ARM_CLIENT_ID=$ARM_CLIENT_ID --build-arg BUILD_ARM_CLIENT_SECRET=$ARM_CLIENT_SECRET --build-arg BUILD_ARM_TENANT_ID=$ARM_TENANT_ID -t azure-network .

This runs the build and unit tests:

docker run --rm azure-network /bin/bash -c "bundle install && rake build"

This runs the end to end tests:

docker run --rm azure-network /bin/bash -c "bundle install && rake e2e"

This runs the full tests:

docker run --rm azure-network /bin/bash -c "bundle install && rake full"

Authors

Originally created by Daniel Mabbett

License

MIT