示例#1
0
        public async Task <RouteTableInner> CreateRouteTableAsync(
            IResourceGroup resourceGroup,
            string routTableName,
            string networkInterfacePrivateIPAddress,
            IDictionary <string, string> tags   = null,
            CancellationToken cancellationToken = default
            )
        {
            tags = tags ?? new Dictionary <string, string>();

            // Define Rout Table
            var routTableDefinition = new RouteTableInner {
                Location = resourceGroup.RegionName,
                Tags     = tags,

                DisableBgpRoutePropagation = false,
                Routes = new List <RouteInner> {
                    new RouteInner {
                        Name             = "aks-agentpool",
                        AddressPrefix    = "10.244.0.0/24",
                        NextHopType      = RouteNextHopType.VirtualAppliance,
                        NextHopIpAddress = networkInterfacePrivateIPAddress
                    }
                }
            };

            var routeTable = await _networkManagementClient
                             .RouteTables
                             .CreateOrUpdateAsync(
                resourceGroup.Name,
                routTableName,
                routTableDefinition,
                cancellationToken
                );

            return(routeTable);
        }
 /// <summary>
 /// Create or updates a route table in a specified resource group.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group.
 /// </param>
 /// <param name='routeTableName'>
 /// The name of the route table.
 /// </param>
 /// <param name='parameters'>
 /// Parameters supplied to the create or update route table operation.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <RouteTableInner> CreateOrUpdateAsync(this IRouteTablesOperations operations, string resourceGroupName, string routeTableName, RouteTableInner parameters, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.CreateOrUpdateWithHttpMessagesAsync(resourceGroupName, routeTableName, parameters, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
示例#3
0
        public async Task <VirtualNetworkInner> CreateVirtualNetworkAsync(
            IResourceGroup resourceGroup,
            NetworkSecurityGroupInner networkSecurityGroup,
            string virtualNetworkName,
            RouteTableInner routeTable          = null,
            IDictionary <string, string> tags   = null,
            CancellationToken cancellationToken = default
            )
        {
            try {
                tags = tags ?? new Dictionary <string, string>();

                Log.Information($"Creating Azure Virtual Network: {virtualNetworkName} ...");

                // Define Virtual Network
                var virtualNetworkDefinition = new VirtualNetworkInner {
                    Location = resourceGroup.RegionName,
                    Tags     = tags,

                    AddressSpace = new AddressSpace {
                        AddressPrefixes = new List <string>()
                        {
                            VIRTUAL_NETWORK_ADDRESS_PREFIXES
                        }
                    },
                    Subnets = new List <SubnetInner> {
                        new SubnetInner()
                        {
                            Name                 = VIRTUAL_NETWORK_AKS_SUBNET_NAME,
                            AddressPrefix        = VIRTUAL_NETWORK_AKS_SUBNET_ADDRESS_PREFIXES,
                            NetworkSecurityGroup = new SubResource {
                                Id = networkSecurityGroup.Id
                            }
                        }
                    }
                };

                if (null != routeTable)
                {
                    virtualNetworkDefinition.Subnets[0].RouteTable = new SubResource {
                        Id = routeTable.Id
                    };
                }

                virtualNetworkDefinition.Validate();

                var virtualNetwork = await _networkManagementClient
                                     .VirtualNetworks
                                     .CreateOrUpdateAsync(
                    resourceGroup.Name,
                    virtualNetworkName,
                    virtualNetworkDefinition,
                    cancellationToken
                    );

                Log.Information($"Created Azure Virtual Network: {virtualNetworkName}");

                return(virtualNetwork);
            }
            catch (Exception ex) {
                Log.Error(ex, $"Failed to create Azure Virtual Network: {virtualNetworkName}");
                throw;
            }
        }