Permalink
Fetching contributors…
Cannot retrieve contributors at this time
2476 lines (2473 sloc) 90.4 KB
---
- &base_release
model: "nailgun.release"
fields:
state: "available"
modes_metadata:
ha_compact:
description: "This configuration Deploys OpenStack ready for high availability (HA). Controller services are prepared for HA by setting up a base MySQL/Galera, RabbitMQ and HAProxy so that additional controllers can be deployed NOW, or scaled out LATER. 3 or more controllers are required for a true HA environment."
roles_metadata:
controller:
name: "Controller"
description: "The Controller initiates orchestration activities and provides an external API. Other components like Glance (image storage), Keystone (identity management), Horizon (OpenStack dashboard) and Nova-Scheduler are installed on the controller as well."
weight: 10
conflicts:
- compute
update_required:
- compute
- cinder
public_ip_required: true
public_for_dvr_required: true
group: "base"
limits:
min: 1
recommended: 3
overrides:
- condition: "settings:neutron_advanced_configuration.neutron_l3_ha.value == true"
min: 2
message: "Neutron L3 HA requires at least 2 Controller nodes to function properly."
tags:
- controller
- rabbitmq
- database
- keystone
- neutron
compute:
name: "Compute"
description: "A Compute node creates, manages, and terminates virtual machine instances."
weight: 20
public_for_dvr_required: true
group: "compute"
limits:
recommended: 1
fault_tolerance: "2%"
tags:
- compute
cinder:
# NOTE: naming, see https://bugs.launchpad.net/fuel/+bug/1383224
name: "Cinder"
description: "Cinder provides scheduling of block storage resources, typically delivered over iSCSI and other compatible backend storage systems. Block storage can be used for database storage, expandable file systems, or to provide a server with access to raw block level devices."
weight: 30
group: "storage"
limits:
recommended: 1
restrictions:
- condition: "settings:storage.volumes_lvm.value == false"
message: "Cinder LVM should be enabled in the environment settings."
# NOTE: https://bugs.launchpad.net/fuel/+bug/1372914 - Prohibit possibility of adding cinder nodes to an environment with Ceph RBD
- condition: "settings:storage.volumes_ceph.value == true"
message: "Ceph RBD cannot be used with Cinder"
tags:
- cinder
cinder-block-device:
name: 'Cinder Block Device'
description: 'Host node for Cinder Block Devices.'
public_ip_required: false
weight: 35
group: "storage"
conflicts:
- controller
- cinder
- ceph-osd
restrictions:
- condition: "settings:storage.volumes_block_device.value == false"
message: "Cinder Block Device driver should be enabled in the environment settings."
- condition: "settings:storage.volumes_ceph.value == true"
message: "Ceph RBD cannot be used with Cinder Block Device"
tags:
- cinder-block-device
ceph-osd:
name: "Ceph OSD"
description: "Ceph storage can be configured to provide storage for block volumes (Cinder), images (Glance) and ephemeral instance storage (Nova). It can also provide object storage through the S3 and Swift API (See settings to enable each)."
weight: 50
group: "storage"
limits:
min: "settings:storage.osd_pool_size.value"
restrictions:
- condition: "settings:storage.volumes_ceph.value == false and settings:storage.images_ceph.value == false and settings:storage.ephemeral_ceph.value == false and settings:storage.objects_ceph.value == false"
message: "Ceph should be enabled in the environment settings."
update_once:
- controller
tags:
- ceph-osd
mongo:
name: "Telemetry - MongoDB"
description: "A feature-complete and recommended database for storage of metering data from OpenStack Telemetry (Ceilometer)."
weight: 60
group: "other"
conflicts:
- compute
- ceph-osd
limits:
min: 1
overrides:
- condition: "cluster:mode != 'ha_compact'"
max: 1
message: "At most 1 MongoDB node can be added for non-HA deployment"
- condition: "cluster:mode == 'ha_compact'"
recommended: 3
message: "At least 3 MongoDB nodes are recommended for HA deployment."
restrictions:
- condition: "settings:additional_components.ceilometer.value == false"
message: "Ceilometer should be enabled in the environment settings."
- condition: "settings:additional_components.mongo.value == true"
message: "You are already using external MongoDB."
- condition: "not ('experimental' in version:feature_groups)"
action: "hide"
tags:
- mongo
base-os:
name: "Operating System"
description: "Install base Operating System without additional packages and configuration."
weight: 70
group: "other"
tags:
- base-os
virt:
name: "Virtual"
description: "ADVANCED: Make available possibilities to spawn vms on this node that can be assign as a normal nodes."
weight: 80
group: "compute"
public_ip_required: true
conflicts:
- controller
- base-os
restrictions:
- condition: "not ('advanced' in version:feature_groups)"
action: "hide"
message: "Advanced feature should be enabled in feature groups"
tags:
- virt
ironic:
name: "Ironic"
description: "Ironic conductor."
weight: 100
group: "compute"
limits:
min: 1
recommended: 3
conflicts:
- compute
restrictions:
- condition: "settings:additional_components.ironic.value == false"
message: "Ironic should be enabled in the environment settings."
tags:
- ironic
tags_metadata:
controller:
has_primary: true
rabbitmq:
has_primary: true
database:
has_primary: true
keystone:
has_primary: true
neutron:
has_primary: true
compute:
has_primary: false
cinder:
has_primary: false
cinder-block-device:
has_primary: false
ceph-osd:
has_primary: false
mongo:
has_primary: true
base-os:
has_primary: false
virt:
has_primary: false
ironic:
has_primary: false
network_roles_metadata:
-
id: "keystone/api"
default_mapping: "management"
properties: &default_network_roles_metadata_properties
subnet: true
gateway: false
vip: []
-
id: "admin/pxe"
default_mapping: "fuelweb_admin"
properties:
subnet: true
gateway: true
vip: []
-
id: "swift/api"
default_mapping: "management"
properties: *default_network_roles_metadata_properties
-
id: "neutron/api"
default_mapping: "management"
properties: *default_network_roles_metadata_properties
-
id: "sahara/api"
default_mapping: "management"
properties: *default_network_roles_metadata_properties
-
id: "aodh/api"
default_mapping: "management"
properties: *default_network_roles_metadata_properties
-
id: "ceilometer/api"
default_mapping: "management"
properties: *default_network_roles_metadata_properties
-
id: "cinder/api"
default_mapping: "management"
properties: *default_network_roles_metadata_properties
-
id: "glance/api"
default_mapping: "management"
properties: *default_network_roles_metadata_properties
-
id: "glance/glare"
default_mapping: "management"
properties: *default_network_roles_metadata_properties
-
id: "heat/api"
default_mapping: "management"
properties: *default_network_roles_metadata_properties
-
id: "nova/api"
default_mapping: "management"
properties: *default_network_roles_metadata_properties
-
id: "murano/api"
default_mapping: "management"
properties: *default_network_roles_metadata_properties
-
id: "murano/cfapi"
default_mapping: "management"
properties: *default_network_roles_metadata_properties
-
id: "horizon"
default_mapping: "management"
properties: *default_network_roles_metadata_properties
-
id: "mgmt/memcache"
default_mapping: "management"
properties: *default_network_roles_metadata_properties
-
id: "mgmt/database"
default_mapping: "management"
properties: *default_network_roles_metadata_properties
-
id: "mgmt/messaging"
default_mapping: "management"
properties: *default_network_roles_metadata_properties
-
id: "mgmt/corosync"
default_mapping: "management"
properties: *default_network_roles_metadata_properties
-
id: "mgmt/vip"
default_mapping: "management"
properties:
subnet: true
gateway: false
vip:
-
name: "vrouter"
namespace: "vrouter"
alias: "management_vrouter_vip"
-
name: "management"
namespace: "haproxy"
alias: "management_vip"
-
id: "public/vip"
default_mapping: "public"
properties:
subnet: true
gateway: true
vip:
-
name: "vrouter_pub"
namespace: "vrouter"
alias: "public_vrouter_vip"
vendor_specific:
iptables_rules:
ns_start:
- "iptables -t nat -A POSTROUTING -o <%INT%> -j MASQUERADE"
ns_stop:
- "iptables -t nat -D POSTROUTING -o <%INT%> -j MASQUERADE"
-
name: "public"
namespace: "haproxy"
alias: "public_vip"
-
id: "neutron/private"
default_mapping: "private"
properties:
subnet: false
gateway: false
vip: []
-
id: "neutron/mesh"
default_mapping: "private"
properties: *default_network_roles_metadata_properties
-
id: "neutron/floating"
default_mapping: "public"
properties:
subnet: false
gateway: false
vip: []
-
id: "swift/replication"
default_mapping: "storage"
properties: *default_network_roles_metadata_properties
-
id: "ceph/public"
default_mapping: "storage"
properties: *default_network_roles_metadata_properties
-
id: "ceph/radosgw"
default_mapping: "public"
properties: *default_network_roles_metadata_properties
-
id: "ceph/replication"
default_mapping: "storage"
properties: *default_network_roles_metadata_properties
-
id: "cinder/iscsi"
default_mapping: "storage"
properties: *default_network_roles_metadata_properties
-
id: "mongo/db"
default_mapping: "management"
properties: *default_network_roles_metadata_properties
-
id: "fw-admin"
default_mapping: "fuelweb_admin"
properties:
subnet: true
gateway: true
vip: []
-
id: "management"
default_mapping: "management"
properties: *default_network_roles_metadata_properties
-
id: "ex"
default_mapping: "public"
properties:
subnet: true
gateway: true
vip: []
-
id: "storage"
default_mapping: "storage"
properties: *default_network_roles_metadata_properties
-
id: "nova/migration"
default_mapping: "management"
properties: *default_network_roles_metadata_properties
-
id: "ironic/api"
default_mapping: "management"
properties: *default_network_roles_metadata_properties
-
id: "ironic/baremetal"
default_mapping: "baremetal"
properties:
subnet: true
gateway: false
vip:
-
name: "baremetal"
namespace: "haproxy"
alias: "baremetal_vip"
vendor_specific:
iptables_rules:
ns_start:
- "iptables -A INPUT -i <%INT%> -s <%CIDR%> -d <%IP%> -p tcp -m multiport --dports 6385,8080 -m state --state NEW -j ACCEPT"
- "iptables -A INPUT -i <%INT%> -s <%CIDR%> -d <%IP%> -m state --state ESTABLISHED,RELATED -j ACCEPT"
- "iptables -A INPUT -i <%INT%> -j DROP"
ns_stop:
- "iptables -D INPUT -i <%INT%> -s <%CIDR%> -d <%IP%> -p tcp -m multiport --dports 6385,8080 -m state --state NEW -j ACCEPT"
- "iptables -D INPUT -i <%INT%> -s <%CIDR%> -d <%IP%> -m state --state ESTABLISHED,RELATED -j ACCEPT"
- "iptables -D INPUT -i <%INT%> -j DROP"
networks_metadata:
bonding:
availability:
- dpdkovs: "'experimental' in version:feature_groups and interface:pxe == false and
nic_attributes:dpdk.enabled.value and not nic_attributes:sriov.enabled.value"
- linux: "not nic_attributes:sriov.enabled.value"
properties:
linux:
mode:
- values: ["balance-rr", "active-backup"]
- values: ["802.3ad"]
condition: "'experimental' in version:feature_groups or
interface:pxe == false"
- values: ["balance-xor", "broadcast", "balance-tlb", "balance-alb"]
condition: "'experimental' in version:feature_groups"
xmit_hash_policy:
- values: ["layer2", "layer2+3", "layer3+4", "encap2+3", "encap3+4"]
for_modes: ["802.3ad", "balance-xor", "balance-tlb", "balance-alb"]
lacp_rate:
- values: ["slow", "fast"]
for_modes: ["802.3ad"]
dpdkovs:
mode:
- values: ["active-backup", "balance-slb", "balance-tcp"]
lacp:
- values: ["active", "passive"]
for_modes: ["balance-tcp"]
lacp_rate:
- values: ["slow", "fast"]
for_modes: ["balance-tcp"]
xmit_hash_policy:
- values: ["layer2", "layer2+3", "layer3+4", "encap2+3", "encap3+4"]
for_modes: ["balance-tcp"]
nova_network:
networks:
- name: "public"
cidr: "172.16.0.0/24"
gateway: "172.16.0.1"
ip_range: ["172.16.0.2", "172.16.0.127"]
vlan_start: null
use_gateway: true
notation: "ip_ranges"
render_type: null
render_addr_mask: "public"
map_priority: 1
configurable: true
vips: ["haproxy", "vrouter"]
- name: "management"
cidr: "192.168.0.0/24"
vlan_start: 101
use_gateway: false
notation: "cidr"
render_type: "cidr"
render_addr_mask: "internal"
map_priority: 2
configurable: true
vips: ["haproxy", "vrouter"]
- name: "storage"
cidr: "192.168.1.0/24"
vlan_start: 102
use_gateway: false
notation: "cidr"
render_type: "cidr"
render_addr_mask: "storage"
map_priority: 2
configurable: true
- name: "fixed"
vlan_start: null
use_gateway: false
notation: null
render_type: null
render_addr_mask: null
map_priority: 2
ext_net_data: ["fixed_networks_vlan_start", "fixed_networks_amount"]
configurable: false
config:
net_manager: "FlatDHCPManager"
fixed_networks_cidr: "10.0.0.0/16"
fixed_networks_vlan_start: 103
fixed_network_size: 256
fixed_networks_amount: 1
floating_ranges: [["172.16.0.128", "172.16.0.254"]]
neutron:
networks:
- name: "public"
cidr: "172.16.0.0/24"
ip_range: ["172.16.0.2", "172.16.0.126"]
vlan_start: null
use_gateway: true
notation: "ip_ranges"
render_type: null
render_addr_mask: "public"
map_priority: 1
configurable: true
floating_range_var: "floating_ranges"
vips: ["haproxy", "vrouter"]
- name: "management"
cidr: "192.168.0.0/24"
vlan_start: 101
use_gateway: false
notation: "cidr"
render_type: "cidr"
render_addr_mask: "internal"
map_priority: 2
configurable: true
vips: ["haproxy", "vrouter"]
- name: "storage"
cidr: "192.168.1.0/24"
vlan_start: 102
use_gateway: false
notation: "cidr"
render_type: "cidr"
render_addr_mask: "storage"
map_priority: 2
configurable: true
- name: "private"
seg_type: "vlan"
vlan_start: null
use_gateway: false
notation: null
render_type: null
render_addr_mask: null
map_priority: 2
neutron_vlan_range: true
configurable: false
- name: "private"
seg_type: "gre"
cidr: "192.168.2.0/24"
vlan_start: 103
use_gateway: false
notation: "cidr"
render_type: "cidr"
render_addr_mask: null
map_priority: 2
configurable: true
- name: "private"
seg_type: "tun"
cidr: "192.168.2.0/24"
vlan_start: 103
use_gateway: false
notation: "cidr"
render_type: "cidr"
render_addr_mask: null
map_priority: 2
configurable: true
- name: "baremetal"
cidr: "192.168.3.0/24"
ip_range: ["192.168.3.2", "192.168.3.50"]
vlan_start: 104
use_gateway: false
notation: "ip_ranges"
render_type: null
map_priority: 2
configurable: true
restrictions:
- condition: "settings:additional_components.ironic.value == false"
config:
vlan_range: [1000, 1030]
gre_id_range: [2, 65535]
base_mac: "fa:16:3e:00:00:00"
internal_name: "admin_internal_net"
internal_cidr: "192.168.111.0/24"
internal_gateway: "192.168.111.1"
floating_name: "admin_floating_net"
floating_ranges: [["172.16.0.130", "172.16.0.254"]]
baremetal_gateway: "192.168.3.51"
baremetal_range: ["192.168.3.52", "192.168.3.254"]
parameters:
amqp:
provider: "rabbitmq"
username: null
passwd: ""
hosts: "hostname1:5672, hostname2:5672"
database:
provider: "mysql"
port: "3306"
database: null
username: null
passwd: ""
keystone:
admin_user: null
admin_password: ""
metadata:
metadata_proxy_shared_secret: ""
volumes_metadata:
volumes_roles_mapping:
controller:
- {allocate_size: "min", id: "os"}
- {allocate_size: "min", id: "logs"}
- {allocate_size: "all", id: "image"}
- {allocate_size: "min", id: "mysql"}
- {allocate_size: "min", id: "horizon"}
compute:
- {allocate_size: "min", id: "os"}
- {allocate_size: "all", id: "vm"}
cinder:
- {allocate_size: "min", id: "os"}
- {allocate_size: "all", id: "cinder"}
ceph-osd:
- {allocate_size: "min", id: "os"}
- {allocate_size: "min", id: "cephjournal"}
- {allocate_size: "full-disk", id: "ceph"}
cinder-block-device:
- {allocate_size: "min", id: "os"}
- {allocate_size: "full-disk", id: "cinder-block-device"}
mongo:
- {allocate_size: "min", id: "os"}
- {allocate_size: "all", id: "mongo"}
other:
- {allocate_size: "all", id: "os"}
# NOTE(eli): it's better to use entire disk
# for OS, but currently we have a bug for
# Ubuntu which doesn't allow to do that:
# https://bugs.launchpad.net/fuel/+bug/1278964
base-os:
- {allocate_size: "min", id: "os"}
virt:
- {allocate_size: "min", id: "os"}
- {allocate_size: "all", id: "vm"}
ironic:
- {allocate_size: "min", id: "os"}
- {allocate_size: "min", id: "logs"}
volumes:
- id: "os"
type: "vg"
min_size: {generator: "calc_min_os_size"}
label: "Base System"
volumes:
- mount: "/"
type: "lv"
name: "root"
size: {generator: "calc_total_root_vg"}
file_system: "ext4"
- mount: "swap"
type: "lv"
name: "swap"
size: {generator: "calc_swap_size"}
file_system: "swap"
- id: "logs"
type: "vg"
min_size:
generator: "calc_gb_to_mb"
generator_args: [10]
label: "Logs"
volumes:
- mount: "/var/log"
type: "lv"
name: "log"
size:
generator: "calc_total_vg"
generator_args: ["logs"]
file_system: "ext4"
- id: "mongo"
type: "vg"
label: "MongoDB"
min_size: {generator: "calc_min_mongo_size"}
volumes:
- mount: "/var/lib/mongo"
type: "lv"
name: "mongodb"
size:
generator: "calc_total_vg"
generator_args: ["mongo"]
file_system: "ext4"
- id: "ceph"
type: "partition"
min_size: {generator: "calc_min_ceph_size"}
label: "Ceph"
name: "Ceph"
mount: "none"
partition_guid: "4fbd7e29-9d25-41b8-afd0-062c0ceff05d"
file_system: "none"
- id: "cephjournal"
type: "partition"
min_size: {generator: "calc_min_ceph_journal_size"}
name: "Ceph Journal"
label: "Ceph Journal"
mount: "none"
partition_guid: "45b0969e-9b03-4f30-b4c6-b4b80ceff106"
file_system: "none"
- id: "mysql"
type: "vg"
min_size: {generator: "calc_min_mysql_size"}
label: "Mysql Database"
volumes:
- mount: "/var/lib/mysql"
type: "lv"
name: "root"
size:
generator: "calc_total_vg"
generator_args: ["mysql"]
file_system: "ext4"
- id: "vm"
type: "vg"
min_size: {generator: "calc_min_vm_size"}
label: "Virtual Storage"
volumes:
- mount: "/var/lib/nova"
type: "lv"
name: "nova"
size:
generator: "calc_total_vg"
generator_args: ["vm"]
file_system: "xfs"
- id: "image"
type: "vg"
min_size: {generator: "calc_min_glance_size"}
label: "Image Storage"
volumes:
- mount: "/var/lib/glance"
type: "lv"
name: "glance"
size:
generator: "calc_total_vg"
generator_args: ["image"]
file_system: "xfs"
- id: "horizon"
type: "vg"
min_size:
generator: "calc_gb_to_mb"
generator_args: [11]
label: "Horizon Temp Storage"
volumes:
- mount: "/var/lib/horizon"
type: "lv"
name: "horizontmp"
size:
generator: "calc_total_vg"
generator_args: ["horizon"]
file_system: "xfs"
- id: "cinder"
type: "vg"
label: "Cinder"
min_size: {generator: "calc_min_cinder_size"}
volumes: []
- id: "cinder-block-device"
type: "vg"
label: "Cinder Block Device"
min_size: { generator: "calc_min_cinder_size" }
mount: "none"
volumes: []
rule_to_pick_boot_disk:
- type: "exclude_disks_by_name"
regex: "^nvme"
description: "NVMe drives should be skipped as accessing such drives during the boot typically requires using UEFI which is still not supported by fuel-agent (it always installs BIOS variant of grub). grub bug (http://savannah.gnu.org/bugs/?41883)"
- type: "pick_root_disk_if_disk_name_match"
regex: "^md"
root_mount: "/"
description: "If we have /root on fake raid, then /boot partition should land on to it too. We can't proceed with grub-install otherwise."
attributes_metadata:
editable:
access:
metadata:
label: "OpenStack Access"
weight: 10
group: "general"
user:
value: "admin"
label: "Username"
description: "Username for Administrator"
weight: 10
type: "text"
regex:
source: &user_tenant_blacklist '^(?!services$)(?!nova$)(?!glance$)(?!keystone$)(?!neutron$)(?!cinder$)(?!swift$)(?!ceph$)(?!ironic$)(?![Gg]uest$)(?!.* +.*$).+'
error: "Invalid username"
email:
value: "admin@localhost"
label: "Email"
description: "Email address for Administrator"
weight: 40
type: "text"
regex:
source: "^\\S+@\\S+$"
error: "Invalid email"
tenant:
value: "admin"
label: "Tenant"
description: "Tenant (project) name for Administrator"
weight: 30
type: "text"
regex:
source: *user_tenant_blacklist
error: "Invalid tenant name"
password:
value: "admin"
label: "Password"
description: "Password for Administrator"
weight: 20
type: "password"
regex:
source: &non_empty_string '\S'
error: "Empty password"
operator_user:
metadata:
label: "Operating System Access"
weight: 15
group: "general"
name:
label: "Username"
description: "Username for operator user"
weight: 50
type: 'text'
value: 'fueladmin'
regex:
source: *non_empty_string
error: "Empty username"
password:
label: "Password"
description: "Password for operator user"
weight: 60
type: 'password'
value:
generator: 'password'
regex:
source: *non_empty_string
error: "Empty password"
homedir:
label: "Home directory"
description: "Home directory for operator user"
weight: 70
type: 'text'
value: '/home/fueladmin'
regex:
source: '^/\S'
error: "Invalid path"
authkeys:
label: "Authorized SSH keys"
description: "Public SSH keys to include to operator user's authorized keys, one per line."
weight: 80
type: 'textarea'
value: ''
sudo:
label: "Sudoers configuration"
description: "Sudoers configuration directives for operator user, one per line."
weight: 90
type: 'textarea'
value: 'ALL=(ALL) NOPASSWD: ALL'
service_user:
metadata:
label: "Service user account"
weight: 10
group: "general"
restrictions:
- condition: "true"
action: "hide"
password:
type: 'hidden'
value:
generator: 'password'
name:
type: 'hidden'
value: 'fuel'
sudo:
type: 'hidden'
value: 'ALL=(ALL) NOPASSWD: ALL'
homedir:
type: 'hidden'
value: '/var/lib/fuel'
root_password:
type: 'hidden'
value: 'r00tme'
workloads_collector:
metadata:
label: "Workloads Collector User"
weight: 10
group: "general"
restrictions:
- condition: "true"
action: "hide"
enabled:
value: true
type: "hidden"
user:
value: "fuel_stats_user"
type: "text"
password:
value:
generator: "password"
type: "password"
tenant:
value: "services"
type: "text"
murano_settings:
metadata:
label: "Murano Settings"
weight: 20
group: "openstack_services"
restrictions:
- condition: "settings:additional_components.murano.value == false"
message: "Murano is not enabled on the Additional Components section"
action: "hide"
murano_repo_url:
value: "http://storage.apps.openstack.org/"
label: "Murano Repository URL"
description: ""
weight: 10
type: "text"
murano_glance_artifacts_plugin:
value: true
label: "Enable glance artifact repository"
description: "If selected glance artifact repository will be enabled"
weight: 40
type: "checkbox"
external_mongo:
metadata:
label: "External MongoDB"
weight: 30
group: "openstack_services"
restrictions:
- condition: "settings:additional_components.mongo.value == false"
message: "Ceilometer and MongoDB are not enabled on the Additional Components section"
action: "hide"
hosts_ip:
value: ""
label: "MongoDB hosts IP"
description: "IP Addresses of MongoDB. Use comma to split IPs"
weight: 30
type: "text"
regex:
source: '^(((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?),)*((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'
error: "Invalid hosts ip sequence"
mongo_user:
value: "ceilometer"
label: "Username"
description: "Mongo database username"
weight: 30
type: "text"
regex:
source: '^\w+$'
error: "Empty username"
mongo_password:
value: "ceilometer"
label: "Password"
description: "Mongo database password"
weight: 30
type: "password"
regex:
source: '^\S*$'
error: "Password contains spaces"
mongo_db_name:
value: "ceilometer"
label: "Database name"
description: "Mongo database name"
weight: 30
type: "text"
regex:
source: '^\w+$'
error: "Invalid database name"
mongo_replset:
value: ""
label: "Replset"
description: "Name for Mongo replication set"
weight: 30
type: "text"
ironic_settings:
metadata:
label: "Ironic Settings"
weight: 40
group: "openstack_services"
restrictions:
- condition: "settings:additional_components.ironic.value == false"
action: "hide"
ironic_provision_network:
value: false
label: "Use separate provisioning network"
description: "When selected Ironic instance will be provisioned in separate network."
weight: 10
type: "checkbox"
additional_components:
metadata:
label: "Additional Components"
weight: 10
group: "openstack_services"
sahara:
value: false
label: "Install Sahara"
description: "If selected, Sahara component will be installed"
weight: 10
type: "checkbox"
murano:
value: false
label: "Install Murano"
description: "If selected, Murano component will be installed"
weight: 20
type: "checkbox"
restrictions:
- condition: "not ('experimental' in version:feature_groups)"
action: "hide"
murano-cfapi:
value: false
label: "Install Murano service broker for Cloud Foundry"
description: "If selected, Murano service broker will be installed"
weight: 30
type: "checkbox"
restrictions:
- condition: "settings:additional_components.murano.value == false"
message: "Murano should be enabled"
- condition: "not ('experimental' in version:feature_groups)"
action: "hide"
heat:
value: true
label: ""
description: ""
weight: 50
type: "hidden"
ceilometer:
value: false
label: "Install Ceilometer and Aodh"
description: "If selected, Ceilometer and Aodh components will be installed"
weight: 60
type: "checkbox"
restrictions:
- condition: "not ('experimental' in version:feature_groups)"
action: "hide"
mongo:
value: false
label: "Use external Mongo DB"
description: "If selected, You can use external Mongo DB as ceilometer backend"
weight: 70
type: "checkbox"
restrictions:
- condition: "not ('experimental' in version:feature_groups)"
action: "hide"
- "settings:additional_components.ceilometer.value == false": "External Mongo aims to be an external backend for Ceilometer. Without Ceilometer enabled, External Mongo is useless and should not be installed."
ironic:
value: false
label: "Install Ironic"
description: "If selected, Ironic component will be installed"
weight: 80
type: "checkbox"
restrictions:
- "cluster:net_provider != 'neutron' or networking_parameters:segmentation_type != 'vlan'": "Ironic requires Neutron with VLAN segmentation."
- "settings:storage.images_ceph.value == true and settings:storage.objects_ceph.value == false": "Ironic requires Swift or RadosGW for Glance images."
common:
metadata:
label: "Common"
weight: 10
debug:
value: false
label: "OpenStack debug logging"
group: "logging"
description: "Debug logging mode provides more information, but requires more disk space."
weight: 20
type: "checkbox"
puppet_debug:
value: true
label: "Puppet debug logging"
group: "logging"
description: "Debug puppet logging mode provides more information, but requires more disk space."
weight: 20
type: "checkbox"
nova_quota:
value: false
label: "Nova quotas"
group: "compute"
description: "Quotas are used to limit CPU and memory usage for tenants. Enabling quotas will increase load on the Nova database."
weight: 30
type: "checkbox"
auto_assign_floating_ip:
value: false
label: "Auto assign floating IP"
group: "network"
description: "If selected, OpenStack will automatically assign a floating IP to a new instance"
weight: 40
type: "checkbox"
restrictions:
- condition: "cluster:net_provider == 'neutron'"
action: "hide"
run_ping_checker:
value: true
label: "Public Gateway is Available"
group: "network"
description: "Uncheck this box if the public gateway will not be available or will not respond to ICMP requests to the deployed cluster. If unchecked, the controllers will not take public gateway availability into account as part of the cluster health. If the cluster will not have internet access, you will need to make sure to provide proper offline mirrors for the deployment to succeed."
weight: 50
type: "checkbox"
libvirt_type:
value: "qemu"
values:
- data: "kvm"
label: "KVM"
description: "Choose this type of hypervisor if you run OpenStack on hardware"
- data: "qemu"
label: "QEMU"
description: "Choose this type of hypervisor if you run OpenStack on virtual hosts."
label: "Hypervisor type"
group: "compute"
weight: 30
type: "radio"
resume_guests_state_on_host_boot:
value: true
label: "Resume guests state on host boot"
group: "compute"
description: "Whether to resume previous guests state when the host reboots. If enabled, this option causes guests assigned to the host to resume their previous state. If the guest was running a restart will be attempted when nova-compute starts. If the guest was not running previously, a restart will not be attempted."
weight: 50
type: "checkbox"
use_cow_images:
value: true
label: "Use qcow format for images"
group: "storage"
description: "For most cases you will want qcow format. If it's disabled, raw image format will be used to run VMs. OpenStack with raw format currently does not support snapshotting."
weight: 60
type: "checkbox"
auth_key:
value: ""
# label: "Public Key"
# description: "Public key(s) to include in authorized_keys on deployed nodes"
group: "security"
weight: 70
type: "hidden"
task_deploy:
value: true
# label: "Enable task based deploy"
# description: "The new deployment engine based on cross-node dependencies for deployment tasks."
weight: 11
type: "hidden"
propagate_task_deploy:
value: false
label: "Propagate task based deployment."
description: "Enables adaptation of granular tasks for task deployment."
weight: 12
type: "checkbox"
security_groups:
value: "iptables_hybrid"
values:
- data: "openvswitch"
label: "Open vSwitch Firewall Driver"
description: "Choose this driver for OVS based security groups implementation. NOTE: Open vSwitch Firewall Driver requires kernel version >= 4.3 for non-dpdk case."
- data: "iptables_hybrid"
label: "Iptables-based Firewall Driver (No firewall for DPDK case)"
description: "Choose this driver for iptables/linux bridge based security groups implementation."
label: "Security Groups"
group: "security"
weight: 20
type: "radio"
serialization_policy:
value: "default"
values:
- data: "default"
label: "Default serialization"
description: "Run serialization on the master node only"
- data: "distributed"
label: "Distributed serialization"
description: "Run serialization on the master and environment nodes. Nodes for serialization are selected only form that environment for wich serialization is performing."
label: "Serialization policy"
group: "general"
weight: 30
type: "radio"
ds_use_discover:
group: "general"
label: "Use discovered nodes as workers for serialization"
type: "checkbox"
value: true
weight: 31
restrictions:
- condition: "settings:common.serialization_policy.value != 'distributed'"
action: "hide"
ds_use_provisioned:
group: "general"
label: "Use provisioned nodes as workers for serialization"
type: "checkbox"
value: true
weight: 32
restrictions:
- condition: "settings:common.serialization_policy.value != 'distributed'"
action: "hide"
ds_use_error:
group: "general"
label: "Use nodes in error state as workers for serialization"
type: "checkbox"
value: true
weight: 33
restrictions:
- condition: "settings:common.serialization_policy.value != 'distributed'"
action: "hide"
ds_use_ready:
group: "general"
label: "Use ready nodes as workers for serialization"
type: "checkbox"
value: false
weight: 34
restrictions:
- condition: "settings:common.serialization_policy.value != 'distributed'"
action: "hide"
public_network_assignment:
metadata:
weight: 10
label: "Public network assignment"
group: "network"
restrictions:
- condition: "cluster:net_provider != 'neutron'"
action: "hide"
assign_to_all_nodes:
value: false
label: "Assign public network to all nodes"
description: "When disabled, public network will be assigned to controllers only"
weight: 10
type: "checkbox"
neutron_advanced_configuration:
metadata:
weight: 20
label: "Neutron Advanced Configuration"
group: "network"
restrictions:
- condition: "cluster:net_provider != 'neutron'"
action: "hide"
neutron_l2_pop:
value: false
label: "Neutron L2 population"
description: "Enable L2 population mechanism in Neutron"
weight: 10
type: "checkbox"
restrictions:
- condition: "networking_parameters:segmentation_type == 'vlan'"
action: "hide"
neutron_dvr:
value: false
label: "Neutron DVR"
description: "Enable Distributed Virtual Routers in Neutron"
weight: 20
type: "checkbox"
restrictions:
- "networking_parameters:segmentation_type != 'vlan' and settings:neutron_advanced_configuration.neutron_l2_pop.value == false": "DVR requires L2 population to be enabled."
neutron_l3_ha:
value: false
label: "Neutron L3 HA"
description: |
Enable High Availability features for Virtual Routers in Neutron
Requires at least 2 Controller nodes to function properly
weight: 30
type: "checkbox"
restrictions:
- condition: "settings:neutron_advanced_configuration.neutron_dvr.value == true"
message: "Neutron DVR must be disabled in order to use Neutron L3 HA"
neutron_qos:
value: false
label: "Neutron QoS"
description: "Enable Neutron QoS advanced service plug-in"
weight: 40
type: "checkbox"
corosync:
metadata:
label: "Corosync"
weight: 50
group: "general"
restrictions:
- condition: "true"
action: "hide"
group:
value: "226.94.1.1"
label: "Group"
description: ""
weight: 10
type: "text"
port:
value: "12000"
label: "Port"
description: ""
weight: 20
type: "text"
verified:
value: false
label: "Need to pass network verification."
description: "Set True only if multicast is configured correctly on router."
weight: 10
type: "checkbox"
syslog:
metadata:
label: "Syslog"
weight: 50
group: "logging"
toggleable: true
enabled: false
syslog_transport:
value: "tcp"
values:
- data: "udp"
label: "UDP"
description: ""
- data: "tcp"
label: "TCP"
description: ""
label: "Syslog transport protocol"
weight: 30
type: "radio"
syslog_server:
value: ""
label: "Hostname"
description: "Remote syslog hostname"
weight: 10
type: "text"
regex:
source: &ipv4_or_hostname_regex '^[a-zA-Z\d]+[-\.\da-zA-Z]*$'
error: "Invalid hostname"
syslog_port:
value: "514"
label: "Port"
description: "Remote syslog port"
weight: 20
type: "text"
regex:
source: "^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$"
error: "Invalid syslog port"
atop:
metadata:
label: "Advanced System & Process Monitor (atop)"
weight: 60
group: "logging"
toggleable: false
enabled: true
service_enabled:
value: true
label: "Enable atop service"
description: |
NOTE: When enabled, the service may generate logs up to a gigabyte in size per day.
This should be taken into consideration when determining the correct size for the log partition.
weight: 10
type: "checkbox"
interval:
description: "Interval between the snapshots in seconds"
value: "20"
label: "Interval between the snapshots"
weight: 20
type: "text"
regex:
source: '^[1-9]\d*$'
error: "Should be a number of seconds"
restrictions:
- condition: "settings:atop.service_enabled.value == false"
action: "hide"
rotate:
description: "Number of days to keep log files"
value: "7"
label: "Rotate days"
weight: 30
type: "text"
regex:
source: '^[1-9]\d*$'
error: "Should be a number of days"
restrictions:
- condition: "settings:atop.service_enabled.value == false"
action: "hide"
provision:
metadata:
label: "Provision"
weight: 80
group: "general"
restrictions:
- condition: "true"
action: "hide"
method:
type: "hidden"
value: "image"
cgroups:
metadata:
label: "Cgroups conguration for services"
weight: 90
group: "general"
always_editable: true
restrictions:
- condition: "true"
action: "hide"
external_dns:
metadata:
label: "Host OS DNS Servers"
weight: 30
group: "network"
dns_list:
value:
generator: "from_settings"
generator_arg: "DNS_UPSTREAM"
label: "DNS list"
description: "List of upstream DNS servers"
weight: 10
type: "text_list"
min: 0
max: 3
regex:
source: &ipv4_regex '^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$'
error: "Invalid IP address"
external_ntp:
metadata:
label: "Host OS NTP Servers"
weight: 40
group: "network"
ntp_list:
value:
generator: "from_settings"
generator_arg: "NTP_UPSTREAM"
label: "NTP server list"
description: "List of upstream NTP servers"
weight: 10
type: "text_list"
min: 1
regex:
source: *ipv4_or_hostname_regex
error: "Invalid NTP server"
public_ssl:
metadata:
label: "Public TLS"
weight: 110
group: "security"
services:
value: false
label: "TLS for OpenStack public endpoints"
description: "Enable TLS termination on HAProxy for OpenStack services"
weight: 10
type: "checkbox"
horizon:
value: false
label: "HTTPS for Horizon"
description: "Secure access to Horizon enabling HTTPS instead of HTTP"
weight: 20
type: "checkbox"
restrictions:
- "settings:public_ssl.services.value == false": "TLS for OpenStack public endpoints should be enabled"
cert_source:
type: "radio"
weight: 30
label: "Select source for certificate"
description: "From where we'll get certificate and private key"
value: "self_signed"
values:
- data: "self_signed"
label: "Self-signed"
description: "Generate private key and certificate that will be signed by this key"
- data: "user_uploaded"
label: "I have my own keypair with certificate"
description: "Use pre-generated key and certificate"
restrictions:
- condition: "settings:public_ssl.horizon.value == false and settings:public_ssl.services.value == false"
action: "hide"
cert_data:
value: ""
label: "Certificate"
description: "Certificate and private key data, concatenated into a single file"
weight: 40
type: "file"
restrictions:
- condition: "(settings:public_ssl.cert_source.value != 'user_uploaded') or (settings:public_ssl.horizon.value == false and settings:public_ssl.services.value == false)"
action: "hide"
hostname:
value: "public.fuel.local"
label: "DNS hostname for public TLS endpoints"
description: "Your DNS entries should point to this name. Self-signed certificates also will use this hostname"
weight: 50
type: "text"
regex:
source: *ipv4_or_hostname_regex
error: "Invalid DNS hostname"
restrictions:
- condition: "settings:public_ssl.horizon.value == false and settings:public_ssl.services.value == false"
action: "hide"
ssh:
metadata:
label: "SSH security"
weight: 120
group: "security"
toggleable: false
enabled: true
security_enabled:
value: false
label: "Restrict SSH service on network"
description: |
NOTE: When enabled, provide at least one working IP address (the Fuel Master node IP is already added).
We recommend adding new addresses instead of replacing the provided Fuel Master node IP.
When disabled (by default), the admin, management, and storage networks are only allowed to connect to the SSH service.
weight: 10
type: "checkbox"
security_networks:
value:
- "{settings.MASTER_IP}"
label: "Restrict access to"
description: "IPv4/CIDR address"
weight: 20
type: "text_list"
regex:
source: &ipv4_cidr_regex '^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/([0-9]|[1-2][0-9]|3[0-2]))*$'
error: "Invalid IPv4/CIDR address"
restrictions:
- condition: "settings:ssh.security_enabled.value == false"
action: "hide"
brute_force_protection:
value: false
label: "Brute force protection"
description: "When enabled, the access from all networks (except the provided ones) will be granted, but the networks will be checked against the brute force attack."
weight: 30
type: "checkbox"
restrictions:
- condition: "settings:ssh.security_enabled.value == false"
action: "hide"
kernel_params:
metadata:
label: "Kernel parameters"
weight: 60
group: "general"
kernel:
value: "console=tty0 biosdevname=0 rootdelay=90 nomodeset"
label: "Initial parameters"
description: "Default kernel parameters"
type: "text"
storage:
metadata:
label: "Storage Backends"
weight: 60
group: "storage"
volumes_lvm:
value: true
label: "Cinder LVM over iSCSI for volumes"
description: "It is recommended to have at least one Cinder node."
weight: 10
type: "checkbox"
restrictions:
- "settings:storage.volumes_ceph.value == true"
volumes_block_device:
value: false
label: "Cinder Block device driver"
description: "High performance block device storage. It is recommended to have at least one Cinder Block Device"
weight: 15
type: "checkbox"
restrictions:
- "settings:storage.volumes_ceph.value == true"
volumes_ceph:
value: false
label: "Ceph RBD for volumes (Cinder)"
description: "Configures Cinder to store volumes in Ceph RBD images."
weight: 20
type: "checkbox"
restrictions:
- "settings:storage.volumes_lvm.value == true or settings:storage.volumes_block_device.value == true"
images_ceph:
value: false
label: "Ceph RBD for images (Glance)"
description: "Configures Glance to use the Ceph RBD backend to store images. If enabled, this option will prevent Swift from installing."
weight: 30
type: "checkbox"
ephemeral_ceph:
value: false
label: "Ceph RBD for ephemeral volumes (Nova)"
description: "Configures Nova to store ephemeral volumes in RBD. This works best if Ceph is enabled for volumes and images, too. Enables live migration of all types of Ceph backed VMs (without this option, live migration will only work with VMs launched from Cinder volumes)."
weight: 75
type: "checkbox"
objects_ceph:
value: false
label: "Ceph RadosGW for objects (Swift API)"
description: "Configures RadosGW front end for Ceph RBD. This exposes S3 and Swift API Interfaces. If enabled, this option will prevent Swift from installing."
weight: 80
type: "checkbox"
auth_s3_keystone_ceph:
value: false
label: "Enable S3 API Authentication via Keystone in Ceph RadosGW"
description: "This allows to authenticate S3 requests basing on EC2/S3 credentials managed by Keystone. Please note that enabling the integration will increase the latency of S3 requests as well as load on Keystone service. Please consult with Mirantis Technical Bulletin 27 and Mirantis Support on mitigating the risks related with load."
weight: 82
type: "checkbox"
restrictions:
- condition: "settings:storage.objects_ceph.value == false"
action: "hide"
osd_pool_size:
value: "3"
label: "Ceph object replication factor"
description: "Configures the default number of object replicas in Ceph. This number must be equal to or lower than the number of deployed 'Ceph OSD' nodes."
weight: 85
type: "text"
regex:
source: '^[1-9]\d*$'
error: "Invalid number"
fsid:
type: "hidden"
value:
generator: "uuid4"
mon_key:
type: "hidden"
value:
generator: "cephx_key"
admin_key:
type: "hidden"
value:
generator: "cephx_key"
bootstrap_osd_key:
type: "hidden"
value:
generator: "cephx_key"
radosgw_key:
type: "hidden"
value:
generator: "cephx_key"
generated:
mysql:
root_password:
generator: "password"
wsrep_password:
generator: "password"
keystone:
db_password:
generator: "password"
admin_token:
generator: "password"
glance:
db_password:
generator: "password"
user_password:
generator: "password"
glance_glare:
user_password:
generator: "password"
nova:
db_password:
generator: "password"
user_password:
generator: "password"
state_path: "/var/lib/nova"
rabbit:
password:
generator: "password"
swift:
user_password:
generator: "password"
cinder:
db_password:
generator: "password"
user_password:
generator: "password"
fixed_key:
generator: "hexstring"
generator_arg: "64"
horizon:
secret_key:
generator: "hexstring"
generator_arg: "64"
base_syslog:
syslog_server:
generator: "ip"
generator_arg: "admin"
syslog_port:
generator: "identical"
generator_arg: "514"
cobbler:
profile:
generator: "identical"
sahara:
user_password:
generator: "password"
db_password:
generator: "password"
murano:
user_password:
generator: "password"
rabbit_password:
generator: "password"
db_password:
generator: "password"
murano-cfapi:
user_password:
generator: "password"
rabbit_password:
generator: "password"
db_password:
generator: "password"
aodh:
user_password:
generator: "password"
db_password:
generator: "password"
heat:
user_password:
generator: "password"
rabbit_password:
generator: "password"
db_password:
generator: "password"
auth_encryption_key:
generator: "hexstring"
generator_arg: "32"
ceilometer:
db_password:
generator: "password"
user_password:
generator: "password"
metering_secret:
generator: "password"
quantum_settings:
database:
passwd:
generator: "password"
keystone:
admin_password:
generator: "password"
metadata:
metadata_proxy_shared_secret:
generator: "password"
ironic:
user_password:
generator: "password"
db_password:
generator: "password"
swift_tempurl_key:
generator: "password"
puppet:
manifests: "rsync://{settings.MASTER_IP}:/puppet/{cluster.release.version}/manifests/"
modules: "rsync://{settings.MASTER_IP}:/puppet/{cluster.release.version}/modules/"
deployed_before:
value: false
components_metadata:
- name: hypervisor:qemu
default: true
bind: !!pairs
- "settings:common.libvirt_type.value": "qemu"
weight: 5
label: "dialog.create_cluster_wizard.compute.qemu"
description: "dialog.create_cluster_wizard.compute.qemu_description"
compatible:
- name: hypervisor:*
- name: network:neutron:core:ml2
default: true
weight: 1000
label: "dialog.create_cluster_wizard.network.neutron_ml2"
description: "dialog.create_cluster_wizard.network.neutron_ml2_description"
compatible:
- name: hypervisor:*
- name: network:neutron:ml2:*
- name: network:neutron:ml2:vlan
default: true
bind: !!pairs
- "cluster:net_provider": "neutron"
- "cluster:net_segment_type": "vlan"
weight: 5
label: "common.network.neutron_vlan"
description: "dialog.create_cluster_wizard.network.neutron_vlan_description"
incompatible:
- name: network:neutron:ml2:tun
message: "dialog.create_cluster_wizard.network.vlan_tun_alert"
compatible:
- name: network:neutron:core:ml2
- name: hypervisor:qemu
requires:
- one_of:
items:
- network:neutron:core:ml2
- name: network:neutron:ml2:tun
bind: !!pairs
- "cluster:net_provider": "neutron"
- "cluster:net_segment_type": "tun"
weight: 10
label: "common.network.neutron_tun"
description: "dialog.create_cluster_wizard.network.neutron_tun_description"
compatible:
- name: network:neutron:core:ml2
- name: hypervisor:qemu
incompatible:
- name: network:neutron:ml2:vlan
message: "dialog.create_cluster_wizard.network.vlan_tun_alert"
- name: additional_service:ironic
message: "dialog.create_cluster_wizard.additional.ironic_network_mode_alert"
requires:
- one_of:
items:
- network:neutron:core:ml2
- name: storage:block:lvm
label: "dialog.create_cluster_wizard.storage.lvm"
description: "dialog.create_cluster_wizard.storage.default_provider"
default: true
weight: 5
bind:
- "settings:storage.volumes_lvm.value"
compatible:
- name: hypervisor:qemu
- name: network:neutron:core:ml2
- name: network:neutron:ml2:vlan
- name: network:neutron:ml2:tun
incompatible:
- name: storage:block:ceph
message: "LVM not compatible with Ceph"
- name: storage:block:ceph
label: "dialog.create_cluster_wizard.storage.ceph"
description: "dialog.create_cluster_wizard.storage.ceph_block"
weight: 10
bind: !!pairs
- "settings:storage.volumes_ceph.value": true
- "settings:storage.volumes_lvm.value": false
compatible:
- name: hypervisor:qemu
- name: network:neutron:core:ml2
- name: network:neutron:ml2:vlan
- name: network:neutron:ml2:tun
- name: storage:object:ceph
- name: storage:ephemeral:ceph
- name: storage:image:ceph
incompatible:
- name: storage:block:lvm
message: "Ceph not compatible with LVM"
- name: storage:object:ceph
label: "dialog.create_cluster_wizard.storage.ceph"
description: "dialog.create_cluster_wizard.storage.ceph_object"
weight: 10
bind:
- "settings:storage.objects_ceph.value"
compatible:
- name: hypervisor:qemu
- name: network:neutron:core:ml2
- name: network:neutron:ml2:vlan
- name: network:neutron:ml2:tun
- name: storage:block:lvm
- name: storage:block:ceph
- name: storage:ephemeral:ceph
- name: storage:image:ceph
- name: storage:ephemeral:ceph
label: "dialog.create_cluster_wizard.storage.ceph"
description: "dialog.create_cluster_wizard.storage.ceph_ephemeral"
weight: 10
bind:
- "settings:storage.ephemeral_ceph.value"
compatible:
- name: hypervisor:qemu
- name: network:neutron:core:ml2
- name: network:neutron:ml2:vlan
- name: network:neutron:ml2:tun
- name: storage:block:lvm
- name: storage:block:ceph
- name: storage:object:ceph
- name: storage:image:ceph
- name: storage:image:ceph
label: "dialog.create_cluster_wizard.storage.ceph"
description: "dialog.create_cluster_wizard.storage.ceph_image"
weight: 10
bind:
- "settings:storage.images_ceph.value"
compatible:
- name: hypervisor:qemu
- name: network:neutron:core:ml2
- name: network:neutron:ml2:vlan
- name: network:neutron:ml2:tun
- name: storage:block:lvm
- name: storage:block:ceph
- name: storage:object:ceph
- name: storage:ephemeral:ceph
- name: additional_service:sahara
bind:
- "settings:additional_components.sahara.value"
weight: 10
label: "dialog.create_cluster_wizard.additional.install_sahara"
description: "dialog.create_cluster_wizard.additional.install_sahara_description"
compatible:
- name: hypervisor:qemu
- name: network:neutron:core:ml2
- name: network:neutron:ml2:vlan
- name: network:neutron:ml2:tun
- name: storage:block:lvm
- name: storage:block:ceph
- name: storage:object:ceph
- name: storage:ephemeral:ceph
- name: storage:image:ceph
- name: additional_service:sahara
- name: additional_service:ironic
- name: additional_service:ironic
bind:
- "settings:additional_components.ironic.value"
weight: 40
label: "dialog.create_cluster_wizard.additional.install_ironic"
description: "dialog.create_cluster_wizard.additional.install_ironic_description"
compatible:
- name: hypervisor:qemu
- name: network:neutron:core:ml2
- name: network:neutron:ml2:vlan
- name: storage:block:lvm
- name: storage:block:ceph
- name: storage:object:ceph
- name: storage:ephemeral:ceph
- name: storage:image:ceph
- name: additional_service:sahara
incompatible:
- name: network:neutron:ml2:tun
message: "dialog.create_cluster_wizard.additional.ironic_network_mode_alert"
required_component_types:
- hypervisor
- network
- storage
nic_attributes:
offloading:
metadata:
label: "Offloading"
weight: 10
disable:
label: "Disable Offloading"
weight: 10
type: "checkbox"
value: False
modes:
label: "Offloading Modes"
weight: 20
type: "offloading_modes"
value: {}
mtu:
metadata:
label: "MTU"
weight: 20
value:
label: "Use Custom MTU"
weight: 10
type: "number"
nullable: True
value: null
min: 42
max: 65536
sriov:
metadata:
label: "SR-IOV"
weight: 30
enabled:
label: "Enable SR-IOV"
description: 'Single-root I/O Virtualization (SR-IOV) is a specification that, when implemented by a physical PCIe device, enables it to appear as multiple separate PCIe devices. This enables multiple virtualized guests to share direct access to the physical device, offering improved performance over an equivalent virtual device.'
weight: 10
type: "checkbox"
value: False
restrictions:
- "settings:common.libvirt_type.value != 'kvm'": "Only KVM hypervisor works with SR-IOV"
numvfs:
label: "Custom Number of Virtual Functions"
weight: 20
type: "number"
nullable: True
min: 1
value: null
restrictions:
- "nic_attributes:sriov.enabled.value == false"
physnet:
label: "Physical Network Name"
weight: 30
type: "text"
value: ""
regex:
source: "^[A-Za-z0-9 _]*[A-Za-z0-9][A-Za-z0-9 _]*$"
error: "Invalid physical network name"
restrictions:
- "nic_attributes:sriov.enabled.value == false"
- condition: "nic_attributes:sriov.physnet.value != 'physnet2'"
message: "Only \"physnet2\" will be configured by Fuel in Neutron. Configuration of other physical networks is up to Operator or plugin. Fuel will just configure appropriate pci_passthrough_whitelist option in nova.conf for such interface and physical networks."
action: "none"
dpdk:
metadata:
restrictions:
- condition: "not ('experimental' in version:feature_groups)"
action: "hide"
label: "DPDK"
weight: 40
enabled:
label: "Enable DPDK"
description: 'The Data Plane Development Kit (DPDK) provides high-performance packet processing libraries and user space drivers.'
weight: 10
type: "checkbox"
value: False
restrictions:
- "settings:common.libvirt_type.value != 'kvm'": "Only KVM hypervisor works with DPDK"
bond_attributes:
type__:
type: 'hidden'
value: null
mode:
metadata:
label: "Mode"
weight: 10
value:
label: "Mode"
weight: 10
type: "select"
value: ''
offloading:
metadata:
label: "Offloading"
weight: 20
disable:
label: "Disable Offloading"
weight: 10
type: "checkbox"
value: False
modes:
label: "Offloading Modes"
weight: 20
type: "offloading_modes"
value: {}
mtu:
metadata:
label: "MTU"
weight: 30
value:
label: "Use Custom MTU"
weight: 10
type: "number"
nullable: True
value: null
min: 42
max: 65536
dpdk:
metadata:
restrictions:
- condition: "not ('experimental' in version:feature_groups)"
action: "hide"
label: "DPDK"
weight: 40
enabled:
label: "Enable DPDK"
description: 'The Data Plane Development Kit (DPDK) provides high-performance packet processing libraries and user space drivers.'
weight: 10
type: "checkbox"
value: False
restrictions:
- "settings:common.libvirt_type.value != 'kvm'": "Only KVM hypervisor works with DPDK"
lacp:
metadata:
label: "Lacp"
weight: 50
value:
label: "Lacp"
weight: 10
type: "select"
value: ''
lacp_rate:
metadata:
label: "Lacp rate"
weight: 60
value:
label: "Lacp rate"
weight: 10
type: "select"
value: ''
xmit_hash_policy:
metadata:
label: "Xmit hash policy"
weight: 70
value:
label: "Xmit hash policy"
weight: 10
type: "select"
value: ''
modes: ['ha_compact']
extensions: ['volume_manager', 'network_manager']
- pk: 1
extend: *base_release
fields:
name: "Newton on CentOS 6.5"
state: "unavailable"
version: "newton-10.0"
operating_system: "CentOS"
description: "This option will install the OpenStack Mitaka packages using a CentOS based operating system. With high availability features built in, you are getting a robust, enterprise-grade OpenStack deployment."
attributes_metadata:
editable:
kernel_params:
kernel:
value: "console=tty0 biosdevname=0 crashkernel=none rootdelay=90 nomodeset"
use_fedora_lt:
metadata:
label: "Use Fedora longterm kernel"
weight: 50
kernel:
label: "Select kernel"
weight: 55
type: "radio"
value: "default_kernel"
values:
- data: "default_kernel"
label: "CentOS default kernel"
description: "Install default 2.6.32 kernel."
- data: "fedora_lt_kernel"
label: "Fedora LT kernel"
description: "EXPERIMENTAL: Install the Fedora 3.10 longterm kernel instead of the default 2.6.32 kernel. This kernel may not work with all hardware platforms, use with caution."
repo_setup:
metadata:
label: "Repositories"
weight: 50
group: "general"
always_editable: true
repos:
type: "custom_repo_configuration"
extra_priority: null
description: |
To create a local repository mirror on the Fuel master node, please follow the instructions provided by running "fuel-package-updates --help" on the Fuel master node.
Please make sure your Fuel master node has Internet access to the repository before attempting to create a mirror.
value:
- type: "rpm"
name: "mos"
uri: "http://{settings.MASTER_IP}:8080/{cluster.release.version}/centos/x86_64"
priority: null
- type: "rpm"
name: "mos-updates"
uri: "http://mirror.fuel-infra.org/mos-repos/centos/mos{cluster.release.environment_version}-centos7/updates/x86_64"
priority: null
- type: "rpm"
name: "mos-security"
uri: "http://mirror.fuel-infra.org/mos-repos/centos/mos{cluster.release.environment_version}-centos7/security/x86_64"
priority: null
- type: "rpm"
name: "Auxiliary"
uri: "http://{settings.MASTER_IP}:8080/{cluster.release.version}/centos/auxiliary"
priority: 15
generated:
cobbler:
profile:
generator_arg: "centos-x86_64"
provision:
image_data:
/:
uri: "http://{settings.MASTER_IP}:8080/targetimages/centos_65_x86_64.img.gz"
format: "ext4"
container: "gzip"
/boot:
uri: "http://{settings.MASTER_IP}:8080/targetimages/centos_65_x86_64-boot.img.gz"
format: "ext2"
container: "gzip"
node_attributes: {}
- &ubuntu_xenial
pk: 2
extend: *base_release
fields:
name: "Newton on Ubuntu 16.04"
version: "newton-10.0"
operating_system: "Ubuntu"
description: "This option will install the OpenStack Newton packages using Ubuntu as a base operating system. With high availability features built in, you are getting a robust, enterprise-grade OpenStack deployment."
attributes_metadata:
editable:
kernel_params:
kernel:
value: "console=tty0 net.ifnames=1 biosdevname=0 rootdelay=90 nomodeset"
repo_setup:
metadata:
label: "Repositories"
weight: 50
group: "general"
always_editable: true
repos:
type: "custom_repo_configuration"
extra_priority: null
description: |
Please note: the first repository will be considered the operating system mirror that will be used during node provisioning.
To create a local repository mirror on the Fuel master node, please follow the instructions provided by running "fuel-createmirror --help" on the Fuel master node.
Please make sure your Fuel master node has Internet access to the repository before attempting to create a mirror.
value:
- type: "deb"
name: "ubuntu"
uri: "http://archive.ubuntu.com/ubuntu/"
suite: "xenial"
section: "main universe multiverse"
priority: null
- type: "deb"
name: "ubuntu-updates"
uri: "http://archive.ubuntu.com/ubuntu/"
suite: "xenial-updates"
section: "main universe multiverse"
priority: null
- type: "deb"
name: "ubuntu-security"
uri: "http://archive.ubuntu.com/ubuntu/"
suite: "xenial-security"
section: "main universe multiverse"
priority: null
- type: "deb"
name: "mos"
uri: "http://{settings.MASTER_IP}:8080/{cluster.release.version}/ubuntu/x86_64"
suite: "mos10.0"
section: "main restricted"
priority: 1050
- type: "deb"
name: "mos-updates"
uri: "http://mirror.fuel-infra.org/mos-repos/ubuntu/{cluster.release.environment_version}/"
suite: "mos10.0-updates"
section: "main restricted"
priority: 1050
- type: "deb"
name: "mos-security"
uri: "http://mirror.fuel-infra.org/mos-repos/ubuntu/{cluster.release.environment_version}/"
suite: "mos10.0-security"
section: "main restricted"
priority: 1050
- type: "deb"
name: "mos-holdback"
uri: "http://mirror.fuel-infra.org/mos-repos/ubuntu/{cluster.release.environment_version}/"
suite: "mos10.0-holdback"
section: "main restricted"
priority: 1100
- type: "deb"
name: "Auxiliary"
uri: "http://{settings.MASTER_IP}:8080/{cluster.release.version}/ubuntu/auxiliary"
suite: "auxiliary"
section: "main restricted"
priority: 1150
provision:
metadata:
label: "Provision"
weight: 80
group: "general"
restrictions:
- condition: "false"
action: "hide"
packages:
label: "Initial packages"
weight: 10
type: "textarea"
value: |
acl
anacron
bash-completion
bridge-utils
bsdmainutils
build-essential
cloud-init
curl
daemonize
debconf-utils
gdisk
grub-pc
hwloc
linux-firmware
linux-headers-generic-lts-xenial
linux-image-generic-lts-xenial
lvm2
mcollective
mdadm
multipath-tools
multipath-tools-boot
nailgun-agent
nailgun-mcagents
network-checker
ntp
ntpdate
openssh-client
openssh-server
puppet
python-alembic
python-amqp
python-amqplib
python-anyjson
python-babel
python-cinderclient
python-crypto
python-decorator
python-distributed
python-fysom
python-iso8601
python-jinja2
python-jsonschema
python-keystoneclient
python-keystonemiddleware
python-kombu
python-mako
python-markupsafe
python-migrate
python-netaddr
python-netifaces
python-networkx
python-novaclient
python-oslo-config
python-oslo-db
python-oslo-serialization
python-paste
python-ply
python-psycopg2
python-pydot-ng
python-requests
python-simplejson
python-six
python-sqlalchemy
python-stevedore
python-tz
python-urllib3
python-uwsgidecorators
python-webpy
python-wsgilog
python-yaml
python-yaql
ruby-augeas
ruby-ipaddress
ruby-json
ruby-netaddr
ruby-openstack
ruby-shadow
ruby-stomp
telnet
ubuntu-minimal
ubuntu-standard
uuid-runtime
vim
virt-what
vlan
generated:
cobbler:
profile:
generator_arg: "ubuntu_bootstrap"
provision:
codename: "xenial"
image_data:
/:
uri: "http://{settings.MASTER_IP}:8080/targetimages/env_{cluster.id}_ubuntu_1604_amd64.img.gz"
format: "ext4"
container: "gzip"
/boot:
uri: "http://{settings.MASTER_IP}:8080/targetimages/env_{cluster.id}_ubuntu_1604_amd64-boot.img.gz"
format: "ext2"
container: "gzip"
node_attributes:
cpu_pinning:
metadata:
group: "nfv"
label: "CPU pinning"
weight: 10
restrictions:
- condition: "settings:common.libvirt_type.value != 'kvm'"
action: "hide"
nova:
weight: 10
description: "Number of CPUs for Nova usage"
label: "Nova CPU pinning"
type: "number"
value: 0
min: 0
dpdk:
weight: 20
description: "Number of CPUs for DPDK usage"
label: "DPDK CPU pinning"
type: "number"
value: 0
min: 0
restrictions:
- condition: "not ('experimental' in version:feature_groups)"
action: "hide"
hugepages:
metadata:
group: "nfv"
label: "Huge Pages"
weight: 20
restrictions:
- condition: "settings:common.libvirt_type.value != 'kvm'"
action: "hide"
nova:
weight: 10
description: "Nova Huge Pages configuration"
label: "Nova Huge Pages"
type: "custom_hugepages"
value: {}
dpdk:
weight: 20
description: "DPDK Huge Pages per NUMA node in MB"
label: "DPDK Huge Pages"
type: "number"
value: 0
min: 0
restrictions:
- condition: "not ('experimental' in version:feature_groups)"
action: "hide"
networks_metadata:
dpdk_drivers:
# Sources:
# http://dpdk.org/browse/dpdk/tree/doc/guides/rel_notes/known_issues.rst?h=releases&id=7173acefc7cfdfbbb9b91fcba1c9a67adb4c07c9#n168
# http://dpdk.org/browse/dpdk/tree/lib/librte_eal/common/include/rte_pci_dev_ids.h?h=releases&id=7173acefc7cfdfbbb9b91fcba1c9a67adb4c07c9
igb_uio: [
"8086:100e", "8086:100f", "8086:1011", "8086:1010", "8086:1012",
"8086:101d", "8086:105e", "8086:105f", "8086:1060", "8086:10d9",
"8086:10da", "8086:10a4", "8086:10d5", "8086:10a5", "8086:10bc",
"8086:107d", "8086:107e", "8086:107f", "8086:10b9", "8086:109a",
"8086:10d3", "8086:10f6", "8086:150c", "8086:10c9", "8086:10e6",
"8086:10e7", "8086:10e8", "8086:1526", "8086:150a", "8086:1518",
"8086:150d", "8086:10a7", "8086:10a9", "8086:10d6", "8086:150e",
"8086:150f", "8086:1510", "8086:1511", "8086:1516", "8086:1527",
"8086:1521", "8086:1522", "8086:1523", "8086:1524", "8086:1546",
"8086:1533", "8086:1534", "8086:1535", "8086:1536", "8086:1537",
"8086:1538", "8086:1539", "8086:1f40", "8086:1f41", "8086:1f45",
"8086:0438", "8086:043a", "8086:043c", "8086:0440", "8086:10b6",
"8086:1508", "8086:10c6", "8086:10c8", "8086:150b", "8086:10db",
"8086:10dd", "8086:10ec", "8086:10f1", "8086:10f4", "8086:10f7",
"8086:1514", "8086:1517", "8086:10f9", "8086:10fb", "8086:11a9",
"8086:1f72", "8086:17d0", "8086:0470", "8086:152a", "8086:1529",
"8086:1507", "8086:154d", "8086:154a", "8086:1558", "8086:1557",
"8086:10fc", "8086:151c", "8086:154f", "8086:1528", "8086:1560",
"8086:15ae", "8086:1563", "8086:15aa", "8086:15ab", "8086:155d",
"8086:1572", "8086:1574", "8086:157f", "8086:1580", "8086:1581",
"8086:1583", "8086:1584", "8086:1585", "8086:1586", "8086:15a4",
"8086:10ca", "8086:152d", "8086:1520", "8086:152f", "8086:10ed",
"8086:152e", "8086:1515", "8086:1530", "8086:1564", "8086:1565",
"8086:15a8", "8086:15a9", "8086:154c", "8086:1571", "1af4:1000",
"15ad:07b0", "8086:15a5", "1137:0043", "1137:0071", "14e4:168a",
"14e4:16a9", "14e4:164f", "14e4:168e", "14e4:16af", "14e4:163d",
"14e4:163f", "14e4:168d", "14e4:16a1", "14e4:16a2", "14e4:16ad",
"14e4:16ae", "14e4:163e", "14e4:16a4", "8086:10f8"
]
- pk: 3
extend: *ubuntu_xenial
fields:
name: "Newton on Ubuntu+UCA 16.04"
version: "newton-10.0"
description: "This option will install the OpenStack Newton packages using Ubuntu as a base operating system, including Ubuntu Cloud Archive OpenStack packages. With high availability features built in, you are getting a robust, enterprise-grade OpenStack deployment."
attributes_metadata:
editable:
repo_setup:
repos:
type: "custom_repo_configuration"
extra_priority: null
description: |
Please note: the first repository will be considered the operating system mirror that will be used during node provisioning.
To create a local repository mirror on the Fuel master node, please follow the instructions provided by running "fuel-createmirror --help" on the Fuel master node.
Please make sure your Fuel master node has Internet access to the repository before attempting to create a mirror.
value:
- type: "deb"
name: "ubuntu"
uri: "http://archive.ubuntu.com/ubuntu/"
suite: "xenial"
section: "main universe multiverse"
priority: null
- type: "deb"
name: "ubuntu-updates"
uri: "http://archive.ubuntu.com/ubuntu/"
suite: "xenial-updates"
section: "main universe multiverse"
priority: null
- type: "deb"
name: "ubuntu-security"
uri: "http://archive.ubuntu.com/ubuntu/"
suite: "xenial-security"
section: "main universe multiverse"
priority: null
- type: "deb"
name: "uca"
uri: "http://ubuntu-cloud.archive.canonical.com/ubuntu"
suite: "xenial-updates/newton"
section: "main"
priority: 1080
- type: "deb"
name: "uca-proposed"
uri: "http://ubuntu-cloud.archive.canonical.com/ubuntu"
suite: "xenial-proposed/newton"
section: "main"
priority: 1080
- type: "deb"
name: "mos"
uri: "http://{settings.MASTER_IP}:8080/{cluster.release.version}/ubuntu/x86_64"
suite: "mos10.0"
section: "main restricted"
priority: 1050
- type: "deb"
name: "mos-updates"
uri: "http://mirror.fuel-infra.org/mos-repos/ubuntu/{cluster.release.environment_version}/"
suite: "mos10.0-updates"
section: "main restricted"
priority: 1050
- type: "deb"
name: "mos-security"
uri: "http://mirror.fuel-infra.org/mos-repos/ubuntu/{cluster.release.environment_version}/"
suite: "mos10.0-security"
section: "main restricted"
priority: 1050
- type: "deb"
name: "mos-holdback"
uri: "http://mirror.fuel-infra.org/mos-repos/ubuntu/{cluster.release.environment_version}/"
suite: "mos10.0-holdback"
section: "main restricted"
priority: 1100
- type: "deb"
name: "Auxiliary"
uri: "http://{settings.MASTER_IP}:8080/{cluster.release.version}/ubuntu/auxiliary"
suite: "auxiliary"
section: "main restricted"
priority: 1150
repo_type:
type: "hidden"
weight: 58
value: "uca"
pin_haproxy:
label: "HAProxy APT Pinning"
description: "Use Fuel HAProxy packages instead of upstream"
weight: 59
type: "checkbox"
value: true
pin_rabbitmq:
label: "RabbitMQ APT Pinning"
description: "Use Fuel RabbitMQ packages instead of upstream"
weight: 60
type: "checkbox"
value: true
pin_ceph:
label: "Ceph APT Pinning"
description: "Use Fuel Ceph packages instead of upstream"
weight: 61
type: "checkbox"
value: true