import config import vdc from hub import HubProps, Hub from spoke import SpokeProps, Spoke from pulumi import export # set required vdc variables before calling function vdc.tags = config.default_tags # all resources will be created in configuration location resource_group_name = vdc.resource_group(config.stack) # single hub with gateways, firewall, DMZ, shared services, bastion (optional) hub = Hub( 'hub', # stem of child resource names (<4 chars) HubProps( azure_bastion=config.azure_bastion, forced_tunnel=config.forced_tunnel, firewall_address_space=config.firewall_address_space, hub_address_space=config.hub_address_space, peer=config.peer, reference=config.reference, resource_group_name=resource_group_name, stack=config.stack, subnets=[ # extra columns for future ASGs ('domain', 'any', 'any'), ('files', 'any', 'none'), ], tags=config.default_tags, ), )
from pulumi import Config, get_stack, get_project, export from pulumi.resource import CustomTimeouts from hub import HubProps, Hub from spoke import SpokeProps, Spoke import vdc # retrieve the configuration data config = Config() # set default tags to be applied to all taggable resources stack = get_stack() default_tags = {'environment': stack} # set vdc default vdc.tags = default_tags # all resources will be created in configuration location resource_group_name = vdc.resource_group(stack) # another stack in the same project and organization may be peered peer = config.get('peer') if peer: org = config.require('org') project = get_project() ref = f'{org}/{project}/{peer}' else: ref = None # single hub virtual network with gateway, firewall, DMZ and shared services hub = Hub( 'hub', # stem of child resource names (<4 chars) HubProps( resource_group_name=resource_group_name, tags=default_tags,