Migrate to Fuel 7.0

Migration basically will include kilo-based nova plugin, new release
file, new deployment task file and new metadata file. As fuel plugin
builder 3.0.0 will support post-install script, the customized fuel
plugin builder (https://github.com/citrix-openstack/fuel-plugins)
will be useless for XenServer Fuel Plugin building.

Change-Id: I129b2f429165ef805ac3e8f6bf57383b09876e60
This commit is contained in:
John Hua 2015-11-10 18:00:10 +08:00
parent eaa432775c
commit d50641477a
7 changed files with 451 additions and 125 deletions

View File

@ -17,28 +17,7 @@ and [user guide](doc/content/user-guide.rst).
How to build plugin
===================
Install prerequisites
---------------------
apt-get install createrepo rpm dpkg-dev python-pip sshpass -y \
|| yum install createrepo rpm rpm-build dpkg-devel python-pip sshpass -y
Clone Citrix FPB
------------------
XenServer Fuel Plugin uses a forked Fuel Plugin Builder (FPB) to deploy a new OpenStack release during the installation of the plugin.
This is achieved by adding a post-install script option to the version 2.0 plugin.
pip install fuel-plugin-builder
git clone https://git.openstack.org/openstack/fuel-plugin-xenserver
sudo pip install fuel-plugins/fuel_plugin_builder/
Build and Check
---------------
git clone https://git.openstack.org/openstack/fuel-plugin-xenserver.git
fpb --check fuel-plugin-xenserver
fpb --build fuel-plugin-xenserver

View File

@ -36,7 +36,7 @@ def execute(*cmd, **kwargs):
if out:
debug(out)
if proc.returncode != 0:
if proc.returncode is not None and proc.returncode != 0:
warning(err)
raise Exception(err)
@ -216,11 +216,11 @@ def route_to_compute(endpoints, himn_xs, himn_local, username, password):
def install_suppack(himn, username, password):
"""Install xapi driver supplemental pack. """
# TODO: check if installed
scp(himn, username, password, '/tmp/', 'novaplugins.iso')
scp(himn, username, password, '/tmp/', 'novaplugins-kilo.iso')
out = ssh(
himn, username, password, 'xe-install-supplemental-pack',
'/tmp/novaplugins.iso', prompt='Y\n')
ssh(himn, username, password, 'rm', '/tmp/novaplugins.iso')
'/tmp/novaplugins-kilo.iso', prompt='Y\n')
ssh(himn, username, password, 'rm', '/tmp/novaplugins-kilo.iso')
def forward_from_himn(eth):

32
deployment_tasks.yaml Normal file
View File

@ -0,0 +1,32 @@
- id: 'install-pv-tool'
role: ['compute']
required_for: ['compute-post-deployment']
requires: ['post_deployment_start']
type: shell
parameters:
cmd: 'dpkg -i ./xe-guest-utilities_6.5.0-1393_amd64.deb'
timeout: 10
- id: 'install-sshpass'
role: ['compute']
required_for: ['compute-post-deployment']
requires: ['post_deployment_start']
type: shell
parameters:
cmd: 'apt-get install sshpass -y'
timeout: 60
- id: 'compute-post-deployment'
role: ['compute']
required_for: ['post_deployment_end']
requires: ['install-pv-tool', 'install-sshpass']
type: shell
parameters:
cmd: ./compute_post_deployment.py
timeout: 300
- id: 'controller-post-deployment'
role: ['primary-controller']
required_for: ['post_deployment_end']
requires: ['post_deployment_start']
type: shell
parameters:
cmd: ./controller_post_deployment.sh
timeout: 300

View File

@ -3,11 +3,11 @@ name: fuel-plugin-xenserver
# Human-readable name for your plugin
title: XenServer Plugin
# Plugin version
version: '1.0.2'
version: '2.0.0'
# Description
description: Enable Mirantis OpenStack to integrate with Xenserver
# Required fuel version
fuel_version: ['6.1']
fuel_version: ['7.0']
# Specify license of your plugin
licenses: ['Apache License Version 2.0']
# Specify author or company name
@ -21,11 +21,11 @@ groups: ['network','hypervisor']
# The plugin is compatible with releases in the list
releases:
- os: ubuntu
version: 2014.2.2-6.1
version: '2015.1.0-7.0'
mode: ['multinode', 'ha']
deployment_scripts_path: deployment_scripts/
repository_path: repositories/ubuntu
# Version of plugin package
package_version: '2.0.0'
package_version: '3.0.0'

View File

@ -6,26 +6,19 @@
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."
multinode:
description: "In this configuration the OpenStack controller is deployed separately from the compute and cinder nodes. This mode assumes the presence of 1 controller node and 1 or more compute/cinder nodes. You can add more nodes to scale your cloud later."
roles:
- controller
- compute
- cinder
- cinder-vmware
- ceph-osd
- mongo
- base-os
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
has_primary: true
public_ip_required: true
public_for_dvr_required: true
limits:
min: 1
overrides:
@ -34,17 +27,20 @@
message: "Multi-node environment can not have more than one Controller node."
- condition: "cluster:mode == 'ha_compact'"
recommended: 3
message: "At least 3 Controller nodes are recommended for HA deployment."
message: "At least 3 Controller nodes are recommended for Highly Available (HA) environments. Deployments with less than 3 Controller nodes are not recommended for production environments."
compute:
name: "Compute"
description: "A Compute node creates, manages and terminates virtual machine instances."
description: "A Compute node creates, manages, and terminates virtual machine instances."
weight: 20
public_for_dvr_required: true
limits:
recommended: 1
fault_tolerance: "2%"
cinder:
# NOTE: naming, see https://bugs.launchpad.net/fuel/+bug/1383224
name: "Storage - 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 providing a server with access to raw block level devices."
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
limits:
recommended: 1
restrictions:
@ -55,7 +51,8 @@
message: "Ceph RBD cannot be used with Cinder"
cinder-vmware:
name: "Storage - Cinder Proxy to VMware Datastore"
description: "Cinder-VMware provides scheduling of block storage resources delivered over VMWare vCenter. Block storage can be used for database storage, expandable file systems, or providing a server with access to raw block level devices."
description: "Cinder-VMware provides scheduling of block storage resources delivered over VMware vCenter. Block storage can be used for database storage, expandable file systems, or providing a server with access to raw block level devices."
weight: 40
limits:
recommended: 1
restrictions:
@ -64,6 +61,7 @@
ceph-osd:
name: "Storage - 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
limits:
min: "settings:storage.osd_pool_size.value"
restrictions:
@ -74,6 +72,7 @@
mongo:
name: "Telemetry - MongoDB"
description: "A feature-complete and recommended database for storage of metering data from OpenStack Telemetry (Ceilometer)."
weight: 60
conflicts:
- compute
- ceph-osd
@ -88,8 +87,6 @@
recommended: 3
message: "At least 3 MongoDB nodes are recommended for HA deployment."
restrictions:
- condition: "cluster:status == 'operational'"
message: "MongoDB node can not be added to an operational environment."
- condition: "settings:additional_components.ceilometer.value == false"
message: "Ceilometer should be enabled."
- condition: "settings:additional_components.mongo.value == true"
@ -97,6 +94,209 @@
base-os:
name: "Operating System"
description: "Install base Operating System without additional packages and configuration."
weight: 70
virt:
name: "Virtual"
description: "ADVANCED: Make available possibilities to spawn vms on this node that can be assign as a normal nodes."
weight: 80
public_ip_required: true
conflicts:
- controller
- base-os
restrictions:
- condition: "not ('advanced' in version:feature_groups)"
action: "hide"
compute-vmware:
name: "Compute VMware"
description: "A node that runs nova-compute with VCDriver, that manages ESXi computing resources via VMware vCenter."
weight: 90
conflicts: "*"
restrictions:
- condition: "settings:common.use_vcenter.value == false"
action: "hide"
ironic:
name: "Ironic"
description: "Ironic conductor"
weight: 100
limits:
min: 1
recommended: 3
conflicts:
- compute
restrictions:
- condition: "settings:additional_components.ironic.value == false"
message: "Ironic should be enabled."
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: "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: "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: "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"
-
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: "management"
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
networks_metadata:
bonding:
availability:
@ -105,7 +305,10 @@
properties:
linux:
mode:
- values: ["balance-rr", "active-backup", "802.3ad"]
- 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:
@ -213,7 +416,17 @@
use_gateway: false
notation: "cidr"
render_type: "cidr"
render_addr_mask: "private"
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
config:
@ -244,7 +457,9 @@
volumes_roles_mapping:
controller:
- {allocate_size: "min", id: "os"}
- {allocate_size: "min", id: "logs"}
- {allocate_size: "all", id: "image"}
- {allocate_size: "min", id: "mysql"}
compute:
- {allocate_size: "min", id: "os"}
- {allocate_size: "all", id: "vm"}
@ -268,6 +483,13 @@
# 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"}
compute-vmware:
- {allocate_size: "min", id: "os"}
ironic:
- {allocate_size: "all", id: "os"}
volumes:
- id: "os"
type: "vg"
@ -284,6 +506,20 @@
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"
@ -366,7 +602,7 @@
weight: 10
type: "text"
regex:
source: &user_tenant_blacklist '^(?!services$)(?!nova$)(?!glance$)(?!keystone$)(?!neutron$)(?!cinder$)(?!swift$)(?!ceph$)(?![Gg]uest$)(?!.* +.*$).+'
source: &user_tenant_blacklist '^(?!services$)(?!nova$)(?!glance$)(?!keystone$)(?!neutron$)(?!cinder$)(?!swift$)(?!ceph$)(?!ironic$)(?![Gg]uest$)(?!.* +.*$).+'
error: "Invalid username"
email:
value: "admin@localhost"
@ -421,6 +657,7 @@
weight: 20
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/"
@ -434,6 +671,7 @@
weight: 20
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: ""
@ -525,17 +763,12 @@
description: "If selected, Sahara component will be installed"
weight: 10
type: "checkbox"
restrictions:
- condition: "true"
action: disable
murano:
value: false
label: "Install Murano"
description: "If selected, Murano component will be installed"
weight: 20
type: "checkbox"
restrictions:
- "cluster:net_provider != 'neutron'"
heat:
value: true
label: ""
@ -548,9 +781,6 @@
description: "If selected, Ceilometer component will be installed"
weight: 40
type: "checkbox"
restrictions:
- condition: "true"
action: disable
mongo:
value: false
label: "Use external Mongo DB"
@ -559,6 +789,15 @@
type: "checkbox"
restrictions:
- "settings:additional_components.ceilometer.value == false"
ironic:
value: false
label: "Install Ironic"
description: "If selected, Ironic component will be installed"
weight: 50
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": "Ironic requires Swift as a backend for Glance image service."
common:
metadata:
label: "Common"
@ -594,6 +833,8 @@
value: false
weight: 30
type: "hidden"
restrictions:
- condition: "cluster:net_provider == 'nova_network'"
libvirt_type:
value: "qemu"
values:
@ -637,6 +878,30 @@
description: "When disabled, public network will be assigned to controllers only"
weight: 10
type: "checkbox"
neutron_advanced_configuration:
metadata:
weight: 45
label: "Neutron Advanced Configuration"
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."
corosync:
metadata:
label: "Corosync"
@ -666,6 +931,8 @@
metadata:
label: "Syslog"
weight: 50
toggleable: true
enabled: false
syslog_transport:
value: "tcp"
values:
@ -684,6 +951,9 @@
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"
@ -692,23 +962,17 @@
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"
error: "Invalid syslog port"
provision:
metadata:
label: "Provision"
weight: 80
restrictions:
- condition: "true"
action: "hide"
method:
type: "radio"
label: "Provision method"
description: "Which provision method to use for this cluster."
type: "hidden"
value: "image"
values:
- data: "image"
label: "Image"
description: "Copying pre-built images on a disk."
- data: "cobbler"
label: "(DEPRECATED) Classic (use anaconda or debian-installer)"
description: "Install from scratch using anaconda or debian-installer."
external_dns:
metadata:
label: "Host OS DNS Servers"
@ -739,12 +1003,62 @@
regex:
source: '^\s*(?:(?:\w+(?:-+\w+)*\.)+[a-z]+|\d{1,3}(?:\.\d{1,3}){3})\s*(?:,\s*(?:(?:\w+(?:-+\w+)*\.)+[a-z]+|\d{1,3}(\.\d{1,3}){3})\s*)*$'
error: "Invalid NTP server list"
public_ssl:
metadata:
label: "Public TLS"
weight: 110
horizon:
value: true
label: "HTTPS for Horizon"
description: "Secure access to Horizon enabling HTTPS instead of HTTP"
weight: 10
type: "checkbox"
services:
value: true
label: "TLS for OpenStack public endpoints"
description: "Enable TLS termination on HAProxy for OpenStack services"
weight: 20
type: "checkbox"
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"
restrictions:
- condition: "settings:public_ssl.horizon.value == false and settings:public_ssl.services.value == false"
action: "hide"
kernel_params:
metadata:
label: "Kernel parameters"
weight: 40
kernel:
value: "console=ttyS0,9600 console=tty0 biosdevname=0 rootdelay=90 nomodeset"
value: "console=tty0 biosdevname=0 rootdelay=90 nomodeset"
label: "Initial parameters"
description: "Default kernel parameters"
weight: 45
@ -789,7 +1103,7 @@
- "settings:storage.images_vcenter.value == true": "Only one Glance backend could be selected."
images_vcenter:
value: false
label: "VMWare vCenter/ESXi datastore for images (Glance)"
label: "VMware vCenter/ESXi datastore for images (Glance)"
description: "Configures Glance to use the vCenter/ESXi backend to store images. If enabled, this option will prevent Swift from installing."
weight: 35
type: "checkbox"
@ -910,6 +1224,13 @@
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/"
@ -958,24 +1279,26 @@
type: "radio"
values:
- data: "neutron-vlan"
label: "dialog.create_cluster_wizard.network.neutr_vlan"
description: "dialog.create_cluster_wizard.network.neutr_vlan_description"
label: "common.network.neutron_vlan"
description: "dialog.create_cluster_wizard.network.neutron_vlan_description"
restrictions:
- "Compute.vcenter == true": "dialog.create_cluster_wizard.network.hypervisor_alert"
bind:
- "cluster:net_provider": "neutron"
- "cluster:net_segment_type": "vlan"
- data: "neutron-gre"
label: "dialog.create_cluster_wizard.network.neutr_gre"
description: "dialog.create_cluster_wizard.network.neutr_gre_description"
- data: "neutron-tun"
label: "common.network.neutron_tun"
description: "dialog.create_cluster_wizard.network.neutron_tun_description"
restrictions:
- "Compute.vcenter == true": "dialog.create_cluster_wizard.network.hypervisor_alert"
bind:
- "cluster:net_provider": "neutron"
- "cluster:net_segment_type": "gre"
- "cluster:net_segment_type": "tun"
- data: "nova-network"
label: "dialog.create_cluster_wizard.network.nova_network"
description: "dialog.create_cluster_wizard.network.nova_network_description"
restrictions:
- "Compute.vcenter == false": "dialog.create_cluster_wizard.network.nove_network_vcenter_alert"
bind:
- "cluster:net_provider": "nova_network"
Storage:
@ -1011,14 +1334,21 @@
description: "dialog.create_cluster_wizard.additional.install_murano_description"
bind: "settings:additional_components.murano.value"
weight: 20
restrictions:
- "Network.manager == 'nova-network'": "dialog.create_cluster_wizard.additional.network_mode_alert"
ceilometer:
type: "checkbox"
label: "dialog.create_cluster_wizard.additional.install_ceilometer"
description: "dialog.create_cluster_wizard.additional.install_ceilometer_description"
bind: "settings:additional_components.ceilometer.value"
weight: 30
ironic:
type: "checkbox"
label: "dialog.create_cluster_wizard.additional.install_ironic"
description: "dialog.create_cluster_wizard.additional.install_ironic_description"
bind: "settings:additional_components.ironic.value"
weight: 40
restrictions:
- "Network.manager != 'neutron-vlan'": "dialog.create_cluster_wizard.additional.ironic_network_mode_alert"
- "Storage.ceph == 'enable'": "dialog.create_cluster_wizard.additional.ironic_storage_mode_alert"
Ready: {}
vmware_attributes_metadata:
editable:
@ -1037,14 +1367,14 @@
description: "Availability zone name"
regex:
source: &availability_zone_blacklist '^(?!nova$)\w+$'
error: "Invalid Availability zone name"
error: "Invalid availability zone name"
-
name: "vcenter_host"
type: "text"
label: "vCenter host"
description: "vCenter host or IP"
regex:
source: &ipv4_or_hostname_regex '^[a-zA-Z\d]+[-\.\da-zA-Z]*$'
source: *ipv4_or_hostname_regex
error: "Invalid vCenter host"
-
name: "vcenter_username"
@ -1069,18 +1399,18 @@
-
name: "vsphere_cluster"
type: "text"
label: "VSphere cluster"
description: "VSphere cluster"
label: "vSphere cluster"
description: "vSphere cluster"
regex:
source: *non_empty_string
error: "Invalid VSphere cluster"
error: "Invalid vSphere cluster"
-
name: "service_name"
type: "text"
label: "Service name"
description: "Service name"
regex:
source: '^\w+$'
source: '^\w[\w\-]+$'
error: "Invalid service name"
-
name: "datastore_regex"
@ -1090,6 +1420,11 @@
regex:
source: *non_empty_string
error: "Invalid datastore regex"
-
name: "target_node"
type: "select"
label: "Target node"
description: "Target node for nova-compute service"
-
name: "network"
type: "object"
@ -1104,7 +1439,7 @@
description: "VLAN interface"
regex:
source: *non_empty_string
error: "Invalid Network Interface"
error: "Invalid network interface"
-
name: "glance"
type: "object"
@ -1143,7 +1478,7 @@
description: "Datacenter"
regex:
source: *non_empty_string
error: "Invalid Datacenter"
error: "Invalid datacenter"
-
name: "datastore"
type: "text"
@ -1151,7 +1486,7 @@
description: "Datastore"
regex:
source: *non_empty_string
error: "Invalid Datastore"
error: "Invalid datastore"
value:
availability_zones:
-
@ -1164,6 +1499,13 @@
vsphere_cluster: ""
service_name: ""
datastore_regex: ""
target_node:
options:
- id: "controllers"
label: "controllers"
current:
id: "controllers"
label: "controllers"
cinder:
enable: true
network:
@ -1175,18 +1517,15 @@
datacenter: ""
datastore: ""
modes: ['ha_compact']
extensions: ['volume_manager']
- pk: 9
extend: *base_release
fields:
name: "Juno+Citrix XenServer on Ubuntu 14.04.1"
version: "2014.2.2-6.1"
name: "Kilo+Citrix XenServer on Ubuntu 14.04"
version: "2015.1.0-7.0"
can_update_from_versions: []
operating_system: "Ubuntu"
description: "This option will install the OpenStack Juno packages using Ubuntu as a base operating system. With high availability features built in, you are getting a robust, enterprise-grade OpenStack deployment."
roles:
- controller
- compute
- cinder
description: "This option will install the OpenStack Kilo packages using Ubuntu as a base operating system. With high availability features built in, you are getting a robust, enterprise-grade OpenStack deployment."
roles_metadata:
controller:
name: "Controller"
@ -1264,25 +1603,25 @@
- type: "deb"
name: "mos"
uri: "http://{settings.MASTER_IP}:8080/{cluster.release.version}/ubuntu/x86_64"
suite: "mos6.1"
suite: "mos7.0"
section: "main restricted"
priority: 1050
- type: "deb"
name: "mos-updates"
uri: "http://mirror.fuel-infra.org/mos/ubuntu/"
suite: "mos6.1-updates"
uri: "http://mirror.fuel-infra.org/mos-repos/ubuntu/{cluster.release.environment_version}/"
suite: "mos7.0-updates"
section: "main restricted"
priority: 1050
- type: "deb"
name: "mos-security"
uri: "http://mirror.fuel-infra.org/mos/ubuntu/"
suite: "mos6.1-security"
uri: "http://mirror.fuel-infra.org/mos-repos/ubuntu/{cluster.release.environment_version}/"
suite: "mos7.0-security"
section: "main restricted"
priority: 1050
- type: "deb"
name: "mos-holdback"
uri: "http://mirror.fuel-infra.org/mos/ubuntu/"
suite: "mos6.1-holdback"
uri: "http://mirror.fuel-infra.org/mos-repos/ubuntu/{cluster.release.environment_version}/"
suite: "mos7.0-holdback"
section: "main restricted"
priority: 1100
- type: "deb"

View File

@ -1,24 +0,0 @@
- role: ['compute']
stage: pre_deployment/6000
type: shell
parameters:
cmd: 'dpkg -i ./xe-guest-utilities_6.5.0-1393_amd64.deb'
timeout: 10
- role: ['compute']
stage: pre_deployment/6001
type: shell
parameters:
cmd: 'apt-get install sshpass -y'
timeout: 60
- role: ['compute']
stage: post_deployment/50
type: shell
parameters:
cmd: ./compute_post_deployment.py
timeout: 300
- role: ['primary-controller']
stage: post_deployment/100
type: shell
parameters:
cmd: ./controller_post_deployment.sh
timeout: 300