Setting up compute nodes to work with nsx-t
Added nsx-t components to compute node Added create predefined network Change-Id: I8647c220c4f8750b503568655d1be4a1774845d7
This commit is contained in:
parent
24cd70e987
commit
fcaa0cc3e5
|
@ -0,0 +1,18 @@
|
||||||
|
notice('fuel-plugin-nsx-t: compute_nova_config.pp')
|
||||||
|
|
||||||
|
include ::nova::params
|
||||||
|
|
||||||
|
nova_config {
|
||||||
|
'neutron/service_metadata_proxy': value => 'True';
|
||||||
|
'neutron/ovs_bridge': value => 'nsx-managed';
|
||||||
|
}
|
||||||
|
|
||||||
|
service { 'nova-compute':
|
||||||
|
ensure => running,
|
||||||
|
name => $::nova::params::compute_service_name,
|
||||||
|
enable => true,
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => true,
|
||||||
|
}
|
||||||
|
|
||||||
|
Nova_config<| |> ~> Service['nova-compute']
|
|
@ -1,14 +1,9 @@
|
||||||
notice('fuel-plugin-nsx-t: compute_vmware_nova_config.pp')
|
notice('fuel-plugin-nsx-t: compute_vmware_nova_config.pp')
|
||||||
|
|
||||||
include ::nova::params
|
include ::nova::params
|
||||||
include ::nsxt::params
|
|
||||||
|
|
||||||
$neutron_config = hiera_hash('neutron_config')
|
$neutron_config = hiera_hash('neutron_config')
|
||||||
$neutron_metadata_proxy_secret = $neutron_config['metadata']['metadata_proxy_shared_secret']
|
$neutron_metadata_proxy_secret = $neutron_config['metadata']['metadata_proxy_shared_secret']
|
||||||
$nova_parameters = {
|
|
||||||
'neutron/service_metadata_proxy' => { value => 'True' },
|
|
||||||
'neutron/metadata_proxy_shared_secret' => { value => $neutron_metadata_proxy_secret }
|
|
||||||
}
|
|
||||||
|
|
||||||
$management_vip = hiera('management_vip')
|
$management_vip = hiera('management_vip')
|
||||||
$service_endpoint = hiera('service_endpoint', $management_vip)
|
$service_endpoint = hiera('service_endpoint', $management_vip)
|
||||||
|
@ -36,4 +31,18 @@ class {'nova::network::neutron':
|
||||||
neutron_ovs_bridge => '',
|
neutron_ovs_bridge => '',
|
||||||
}
|
}
|
||||||
|
|
||||||
create_resources(nova_config, $nova_parameters)
|
nova_config {
|
||||||
|
'neutron/service_metadata_proxy': value => 'True';
|
||||||
|
'neutron/metadata_proxy_shared_secret': value => $neutron_metadata_proxy_secret;
|
||||||
|
}
|
||||||
|
|
||||||
|
service { 'nova-compute':
|
||||||
|
ensure => running,
|
||||||
|
name => $::nova::params::compute_service_name,
|
||||||
|
enable => true,
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => true,
|
||||||
|
}
|
||||||
|
|
||||||
|
Class['nova::network::neutron'] ~> Service['nova-compute']
|
||||||
|
Nova_config<| |> ~> Service['nova-compute']
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
notice('fuel-plugin-nsx-t: neutron-network-create.pp')
|
||||||
|
|
||||||
|
include ::nsxt::params
|
||||||
|
|
||||||
|
$access_hash = hiera_hash('access',{})
|
||||||
|
$neutron_config = hiera_hash('neutron_config')
|
||||||
|
$floating_net = try_get_value($neutron_config, 'default_floating_net', 'net04_ext')
|
||||||
|
$internal_net = try_get_value($neutron_config, 'default_private_net', 'net04')
|
||||||
|
$os_tenant_name = try_get_value($access_hash, 'tenant', 'admin')
|
||||||
|
$settings = hiera($::nsxt::params::hiera_key)
|
||||||
|
|
||||||
|
$floating_ip_range = split($settings['floating_ip_range'], '-')
|
||||||
|
$floating_ip_range_start = $floating_ip_range[0]
|
||||||
|
$floating_ip_range_end = $floating_ip_range[1]
|
||||||
|
$floating_net_allocation_pool = "start=${floating_ip_range_start},end=${floating_ip_range_end}"
|
||||||
|
|
||||||
|
$floating_net_cidr = $settings['floating_net_cidr']
|
||||||
|
$floating_net_gw = $settings['floating_net_gw']
|
||||||
|
$default_floating_net_gw = regsubst($floating_net_cidr,'^(\d+\.\d+\.\d+)\.\d+/\d+$','\1.1')
|
||||||
|
|
||||||
|
neutron_network { $floating_net :
|
||||||
|
ensure => 'present',
|
||||||
|
provider_physical_network => $settings['external_network'],
|
||||||
|
provider_network_type => 'local',
|
||||||
|
router_external => true,
|
||||||
|
tenant_name => $os_tenant_name,
|
||||||
|
shared => true,
|
||||||
|
}
|
||||||
|
neutron_subnet { "${floating_net}__subnet" :
|
||||||
|
ensure => 'present',
|
||||||
|
cidr => $floating_net_cidr,
|
||||||
|
network_name => $floating_net,
|
||||||
|
tenant_name => $os_tenant_name,
|
||||||
|
gateway_ip => pick($floating_net_gw,$default_floating_net_gw),
|
||||||
|
enable_dhcp => false,
|
||||||
|
allocation_pools => $floating_net_allocation_pool,
|
||||||
|
require => Neutron_network[$floating_net],
|
||||||
|
}
|
||||||
|
|
||||||
|
$internal_net_dns = split($settings['internal_net_dns'], ',')
|
||||||
|
$internal_net_cidr = $settings['internal_net_cidr']
|
||||||
|
|
||||||
|
neutron_network { $internal_net :
|
||||||
|
ensure => 'present',
|
||||||
|
provider_physical_network => false,
|
||||||
|
router_external => false,
|
||||||
|
tenant_name => $os_tenant_name,
|
||||||
|
shared => true,
|
||||||
|
}
|
||||||
|
neutron_subnet { "${internal_net}__subnet" :
|
||||||
|
ensure => 'present',
|
||||||
|
cidr => $internal_net_cidr,
|
||||||
|
network_name => $internal_net,
|
||||||
|
tenant_name => $os_tenant_name,
|
||||||
|
gateway_ip => regsubst($internal_net_cidr,'^(\d+\.\d+\.\d+)\.\d+/\d+$','\1.1'),
|
||||||
|
enable_dhcp => true,
|
||||||
|
dns_nameservers => pick($internal_net_dns,[]),
|
||||||
|
require => Neutron_network[$internal_net],
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
notice('fuel-plugin-nsx-t: reg-controller-as-transport-node.pp')
|
notice('fuel-plugin-nsx-t: reg-node-as-transport-node.pp')
|
||||||
|
|
||||||
include ::nsxt::params
|
include ::nsxt::params
|
||||||
|
|
||||||
|
@ -7,21 +7,28 @@ $managers = $settings['nsx_api_managers']
|
||||||
$user = $settings['nsx_api_user']
|
$user = $settings['nsx_api_user']
|
||||||
$password = $settings['nsx_api_password']
|
$password = $settings['nsx_api_password']
|
||||||
$uplink_profile_uuid = $settings['uplink_profile_uuid']
|
$uplink_profile_uuid = $settings['uplink_profile_uuid']
|
||||||
$static_ip_pool_uuid = $settings['static_ip_pool_uuid']
|
$transport_zone_uuid = $settings['default_overlay_tz_uuid']
|
||||||
$transport_zone_uuid = $settings['transport_zone_uuid']
|
|
||||||
$pnics_pairs = $settings['pnics_pairs']
|
|
||||||
|
|
||||||
nsxt_create_transport_node { 'Add transport node':
|
if 'primary-controller' in hiera('roles') or 'controller' in hiera('roles') {
|
||||||
ensure => present,
|
$pnics = $settings['controller_pnics_pairs']
|
||||||
managers => $managers,
|
$static_ip_pool_uuid = $settings['controller_ip_pool_uuid']
|
||||||
username => $user,
|
} else {
|
||||||
password => $password,
|
$pnics = $settings['compute_pnics_pairs']
|
||||||
uplink_profile_id => $uplink_profile_uuid,
|
$static_ip_pool_uuid = $settings['compute_ip_pool_uuid']
|
||||||
pnics => $pnics_pairs,
|
|
||||||
static_ip_pool_id => $static_ip_pool_uuid,
|
|
||||||
transport_zone_id => $transport_zone_uuid,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$vtep_interfaces = get_interfaces($pnics)
|
||||||
|
up_interface { $vtep_interfaces:
|
||||||
|
before => Nsxt_create_transport_node['Add transport node'],
|
||||||
|
}
|
||||||
|
|
||||||
|
firewall {'0000 Accept STT traffic':
|
||||||
|
proto => 'tcp',
|
||||||
|
dport => ['7471'],
|
||||||
|
action => 'accept',
|
||||||
|
before => Nsxt_create_transport_node['Add transport node'],
|
||||||
|
}
|
||||||
|
|
||||||
if !$settings['insecure'] {
|
if !$settings['insecure'] {
|
||||||
$ca_filename = try_get_value($settings['ca_file'],'name','')
|
$ca_filename = try_get_value($settings['ca_file'],'name','')
|
||||||
if empty($ca_filename) {
|
if empty($ca_filename) {
|
||||||
|
@ -33,9 +40,29 @@ if !$settings['insecure'] {
|
||||||
Nsxt_create_transport_node { ca_file => $ca_file }
|
Nsxt_create_transport_node { ca_file => $ca_file }
|
||||||
}
|
}
|
||||||
|
|
||||||
firewall {'0000 Accept STT traffic':
|
nsxt_create_transport_node { 'Add transport node':
|
||||||
proto => 'tcp',
|
ensure => present,
|
||||||
dport => ['7471'],
|
managers => $managers,
|
||||||
action => 'accept',
|
username => $user,
|
||||||
before => Nsxt_create_transport_node['Add transport node'],
|
password => $password,
|
||||||
|
uplink_profile_id => $uplink_profile_uuid,
|
||||||
|
pnics => $pnics,
|
||||||
|
static_ip_pool_id => $static_ip_pool_uuid,
|
||||||
|
transport_zone_id => $transport_zone_uuid,
|
||||||
|
}
|
||||||
|
|
||||||
|
# workaround, otherwise $title variable not work, always has a value 'main'
|
||||||
|
define up_interface {
|
||||||
|
file { $title:
|
||||||
|
ensure => file,
|
||||||
|
path => "/etc/network/interfaces.d/ifcfg-${title}",
|
||||||
|
mode => '0644',
|
||||||
|
content => "auto ${title}\niface ${title} inet manual",
|
||||||
|
replace => true,
|
||||||
|
} ->
|
||||||
|
exec { $title:
|
||||||
|
path => '/usr/sbin:/usr/bin:/sbin:/bin',
|
||||||
|
command => "ifup ${title}",
|
||||||
|
provider => 'shell',
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
notice('fuel-plugin-nsx-t: reg-controller-on-management-plane.pp')
|
notice('fuel-plugin-nsx-t: reg-node-on-management-plane.pp')
|
||||||
|
|
||||||
include ::nsxt::params
|
include ::nsxt::params
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
module Puppet::Parser::Functions
|
||||||
|
newfunction(:get_interfaces, :type => :rvalue, :doc => <<-EOS
|
||||||
|
Returns the array of interface names for nsx-t VTEPs.
|
||||||
|
EOS
|
||||||
|
) do |args|
|
||||||
|
pnics = args[0]
|
||||||
|
vtep_interfaces = []
|
||||||
|
pnics.each do |pnic_pair|
|
||||||
|
device,uplink = pnic_pair.split(':')
|
||||||
|
vtep_interfaces.push(device.strip)
|
||||||
|
end
|
||||||
|
return vtep_interfaces
|
||||||
|
end
|
||||||
|
end
|
|
@ -139,7 +139,11 @@ Puppet::Type.type(:nsxt_create_transport_node).provide(:nsxt_create_transport_no
|
||||||
|
|
||||||
def create_pnics_array(pnics)
|
def create_pnics_array(pnics)
|
||||||
result_pnic_pairs = []
|
result_pnic_pairs = []
|
||||||
pnics.split(/\n+/).each do |pnic_pair|
|
# https://projects.puppetlabs.com/issues/9850
|
||||||
|
if not pnics.instance_of? Array
|
||||||
|
pnics = [pnics]
|
||||||
|
end
|
||||||
|
pnics.each do |pnic_pair|
|
||||||
device,uplink = pnic_pair.split(':')
|
device,uplink = pnic_pair.split(':')
|
||||||
result_pnic_pairs.push({'device_name' => device.strip, 'uplink_name' => uplink.strip})
|
result_pnic_pairs.push({'device_name' => device.strip, 'uplink_name' => uplink.strip})
|
||||||
end
|
end
|
||||||
|
|
|
@ -38,8 +38,8 @@ Puppet::Type.newtype(:nsxt_create_transport_node) do
|
||||||
desc 'Ids of Uplink HostSwitch profiles to be associated with this HostSwitch.'
|
desc 'Ids of Uplink HostSwitch profiles to be associated with this HostSwitch.'
|
||||||
end
|
end
|
||||||
|
|
||||||
newparam(:pnics) do
|
newparam(:pnics, :array_matching => :all) do
|
||||||
desc 'Multiline string with "device_name : uplink_name" pairs. One per line.'
|
desc 'Array of string with "device_name : uplink_name" pairs.'
|
||||||
end
|
end
|
||||||
|
|
||||||
newparam(:static_ip_pool_id) do
|
newparam(:static_ip_pool_id) do
|
||||||
|
|
|
@ -20,13 +20,29 @@
|
||||||
groups:
|
groups:
|
||||||
- compute-vmware
|
- compute-vmware
|
||||||
required_for:
|
required_for:
|
||||||
- top-role-compute-vmware
|
- enable_nova_compute_service
|
||||||
requires:
|
requires:
|
||||||
|
- top-role-compute-vmware
|
||||||
- top-role-compute
|
- top-role-compute
|
||||||
parameters:
|
parameters:
|
||||||
puppet_manifest: puppet/manifests/compute-vmware-nova-config.pp
|
puppet_manifest: puppet/manifests/compute-vmware-nova-config.pp
|
||||||
puppet_modules: puppet/modules
|
puppet_modules: puppet/modules
|
||||||
timeout: 300
|
timeout: 180
|
||||||
|
|
||||||
|
- id: nsx-t-compute-nova-config
|
||||||
|
version: 2.0.0
|
||||||
|
type: puppet
|
||||||
|
groups:
|
||||||
|
- compute
|
||||||
|
required_for:
|
||||||
|
- enable_nova_compute_service
|
||||||
|
requires:
|
||||||
|
- top-role-compute
|
||||||
|
- openstack-network-compute-nova
|
||||||
|
parameters:
|
||||||
|
puppet_manifest: puppet/manifests/compute-nova-config.pp
|
||||||
|
puppet_modules: puppet/modules
|
||||||
|
timeout: 180
|
||||||
|
|
||||||
- id: nsx-t-gem-install
|
- id: nsx-t-gem-install
|
||||||
version: 2.0.0
|
version: 2.0.0
|
||||||
|
@ -36,8 +52,8 @@
|
||||||
- controller
|
- controller
|
||||||
- compute
|
- compute
|
||||||
required_for:
|
required_for:
|
||||||
- nsx-t-reg-controller-on-management-plane
|
- nsx-t-reg-node-on-management-plane
|
||||||
- nsx-t-reg-controller-as-transport-node
|
- nsx-t-reg-node-as-transport-node
|
||||||
requires:
|
requires:
|
||||||
- setup_repositories
|
- setup_repositories
|
||||||
parameters:
|
parameters:
|
||||||
|
@ -135,7 +151,6 @@
|
||||||
required_for:
|
required_for:
|
||||||
- primary-openstack-network-agents-metadata
|
- primary-openstack-network-agents-metadata
|
||||||
- primary-openstack-network-agents-dhcp
|
- primary-openstack-network-agents-dhcp
|
||||||
- openstack-network-networks
|
|
||||||
requires:
|
requires:
|
||||||
- nsx-t-configure-plugin
|
- nsx-t-configure-plugin
|
||||||
cross-depends:
|
cross-depends:
|
||||||
|
@ -145,35 +160,39 @@
|
||||||
puppet_modules: puppet/modules
|
puppet_modules: puppet/modules
|
||||||
timeout: 300
|
timeout: 300
|
||||||
|
|
||||||
- id: nsx-t-reg-controller-on-management-plane
|
- id: nsx-t-reg-node-on-management-plane
|
||||||
version: 2.0.0
|
version: 2.0.0
|
||||||
type: puppet
|
type: puppet
|
||||||
groups:
|
groups:
|
||||||
- primary-controller
|
- primary-controller
|
||||||
- controller
|
- controller
|
||||||
|
- compute
|
||||||
required_for:
|
required_for:
|
||||||
- primary-openstack-network-agents-metadata
|
- primary-openstack-network-agents-metadata
|
||||||
- primary-openstack-network-agents-dhcp
|
- primary-openstack-network-agents-dhcp
|
||||||
|
- openstack-network-end
|
||||||
requires:
|
requires:
|
||||||
- nsx-t-install-packages
|
- nsx-t-install-packages
|
||||||
parameters:
|
parameters:
|
||||||
puppet_manifest: puppet/manifests/reg-controller-on-management-plane.pp
|
puppet_manifest: puppet/manifests/reg-node-on-management-plane.pp
|
||||||
puppet_modules: puppet/modules
|
puppet_modules: puppet/modules
|
||||||
timeout: 300
|
timeout: 300
|
||||||
|
|
||||||
- id: nsx-t-reg-controller-as-transport-node
|
- id: nsx-t-reg-node-as-transport-node
|
||||||
version: 2.0.0
|
version: 2.0.0
|
||||||
type: puppet
|
type: puppet
|
||||||
groups:
|
groups:
|
||||||
- primary-controller
|
- primary-controller
|
||||||
- controller
|
- controller
|
||||||
|
- compute
|
||||||
required_for:
|
required_for:
|
||||||
- primary-openstack-network-agents-metadata
|
- primary-openstack-network-agents-metadata
|
||||||
- primary-openstack-network-agents-dhcp
|
- primary-openstack-network-agents-dhcp
|
||||||
|
- openstack-network-end
|
||||||
requires:
|
requires:
|
||||||
- nsx-t-reg-controller-on-management-plane
|
- nsx-t-reg-node-on-management-plane
|
||||||
parameters:
|
parameters:
|
||||||
puppet_manifest: puppet/manifests/reg-controller-as-transport-node.pp
|
puppet_manifest: puppet/manifests/reg-node-as-transport-node.pp
|
||||||
puppet_modules: puppet/modules
|
puppet_modules: puppet/modules
|
||||||
timeout: 300
|
timeout: 300
|
||||||
|
|
||||||
|
@ -203,7 +222,7 @@
|
||||||
groups:
|
groups:
|
||||||
- primary-controller
|
- primary-controller
|
||||||
required_for:
|
required_for:
|
||||||
- openstack-network-networks
|
- openstack-network-end
|
||||||
requires:
|
requires:
|
||||||
- primary-openstack-network-agents-dhcp
|
- primary-openstack-network-agents-dhcp
|
||||||
cross-depends:
|
cross-depends:
|
||||||
|
@ -227,6 +246,22 @@
|
||||||
puppet_modules: puppet/modules
|
puppet_modules: puppet/modules
|
||||||
timeout: 120
|
timeout: 120
|
||||||
|
|
||||||
|
- id: nsx-t-neutron-network-create
|
||||||
|
version: 2.0.0
|
||||||
|
type: puppet
|
||||||
|
groups:
|
||||||
|
- primary-controller
|
||||||
|
required_for:
|
||||||
|
- openstack-network-routers
|
||||||
|
requires:
|
||||||
|
- nsx-t-primary-neutron-server-start
|
||||||
|
- nsx-t-configure-agents-dhcp
|
||||||
|
- primary-openstack-network-agents-metadata
|
||||||
|
parameters:
|
||||||
|
puppet_manifest: puppet/manifests/neutron-network-create.pp
|
||||||
|
puppet_modules: puppet/modules
|
||||||
|
timeout: 300
|
||||||
|
|
||||||
# skipped tasks
|
# skipped tasks
|
||||||
- id: openstack-network-networks
|
- id: openstack-network-networks
|
||||||
version: 2.0.0
|
version: 2.0.0
|
||||||
|
@ -243,3 +278,9 @@
|
||||||
- id: openstack-network-agents-l3
|
- id: openstack-network-agents-l3
|
||||||
version: 2.0.0
|
version: 2.0.0
|
||||||
type: skipped
|
type: skipped
|
||||||
|
- id: openstack-network-agents-sriov
|
||||||
|
version: 2.0.0
|
||||||
|
type: skipped
|
||||||
|
- id: enable_nova_compute_service
|
||||||
|
version: 2.0.0
|
||||||
|
type: skipped
|
||||||
|
|
|
@ -85,25 +85,72 @@ attributes:
|
||||||
source: *uuid
|
source: *uuid
|
||||||
error: 'Enter uplink profile ID'
|
error: 'Enter uplink profile ID'
|
||||||
type: "text"
|
type: "text"
|
||||||
static_ip_pool_uuid:
|
controller_ip_pool_uuid:
|
||||||
value: ''
|
value: ''
|
||||||
label: 'IP pool ID for STT VTEP'
|
label: 'IP pool ID for controller VTEPs'
|
||||||
weight: 50
|
weight: 50
|
||||||
regex:
|
regex:
|
||||||
source: *uuid
|
source: *uuid
|
||||||
error: 'Enter IP pool ID'
|
error: 'Enter IP pool ID'
|
||||||
type: "text"
|
type: "text"
|
||||||
transport_zone_uuid:
|
controller_pnics_pairs:
|
||||||
value: ''
|
value:
|
||||||
label: 'Transport zone ID'
|
- 'enp0s1:uplink-1'
|
||||||
|
label: 'Colon separated pnics pairs for controller nodes'
|
||||||
|
min: 1
|
||||||
weight: 55
|
weight: 55
|
||||||
|
type: "text_list"
|
||||||
|
compute_ip_pool_uuid:
|
||||||
|
value: ''
|
||||||
|
label: 'IP pool ID for compute VTEPs'
|
||||||
|
weight: 60
|
||||||
regex:
|
regex:
|
||||||
source: *uuid
|
source: *uuid
|
||||||
error: 'Enter transport zone ID'
|
error: 'Enter IP pool ID'
|
||||||
type: "text"
|
type: "text"
|
||||||
pnics_pairs:
|
compute_pnics_pairs:
|
||||||
value: 'enp0s1:uplink-1'
|
value:
|
||||||
label: 'Colon separated pnics pairs, one per line'
|
- 'enp0s1:uplink-1'
|
||||||
|
label: 'Colon separated pnics pairs for compute nodes'
|
||||||
min: 1
|
min: 1
|
||||||
weight: 60
|
weight: 65
|
||||||
type: "textarea"
|
type: "text_list"
|
||||||
|
floating_ip_range:
|
||||||
|
value: ''
|
||||||
|
label: 'Floating IP range'
|
||||||
|
description: 'Dash separated IP addresses allocation pool from external network, e.g. "start_ip_address-end_ip_address"'
|
||||||
|
weight: 70
|
||||||
|
type: 'text'
|
||||||
|
regex:
|
||||||
|
source: '^(?:[0-9]{1,3}\.){3}[0-9]{1,3}-(?:[0-9]{1,3}\.){3}[0-9]{1,3}$'
|
||||||
|
error: 'Invalid IP ranges'
|
||||||
|
floating_net_cidr:
|
||||||
|
value: ''
|
||||||
|
label: 'External network CIDR'
|
||||||
|
description: 'Network in CIDR notation that includes floating IP ranges'
|
||||||
|
weight: 75
|
||||||
|
type: 'text'
|
||||||
|
regex:
|
||||||
|
source: '^(?:[0-9]{1,3}\.){3}[0-9]{1,3}/[0-9]{1,2}$'
|
||||||
|
error: 'Invalid network in CIDR notation'
|
||||||
|
floating_net_gw:
|
||||||
|
value: ''
|
||||||
|
label: 'Gateway'
|
||||||
|
description: 'Default gateway for external network, if not defined, first IP address of the network is used'
|
||||||
|
weight: 80
|
||||||
|
type: 'text'
|
||||||
|
internal_net_cidr:
|
||||||
|
value: ''
|
||||||
|
label: 'Internal network CIDR'
|
||||||
|
description: 'Network in CIDR notation for use as internal'
|
||||||
|
weight: 85
|
||||||
|
type: 'text'
|
||||||
|
regex:
|
||||||
|
source: '^(?:[0-9]{1,3}\.){3}[0-9]{1,3}/[0-9]{1,2}$'
|
||||||
|
error: 'Invalid network in CIDR notation'
|
||||||
|
internal_net_dns:
|
||||||
|
value: ''
|
||||||
|
label: 'DNS for internal network'
|
||||||
|
description: 'Comma separated IP addresses of DNS server for internal network'
|
||||||
|
weight: 90
|
||||||
|
type: 'text'
|
||||||
|
|
Loading…
Reference in New Issue