Upgrade to fpb package version 4

Fuel plugin builder package version 4 introduces components.yaml to enable fuel
plugin manipulate wizard and settings without creating new release. So the old
xs_release.yaml will not be needed any more as well as other scripts or yamls
that helps on that.

Change-Id: I6e2226176faf11fff986f03da184558e6cfdce05
(cherry picked from commit 95b8677f1a248ede0ef5e749df481eab9a60d9b5)
This commit is contained in:
John Hua 2016-05-05 13:24:07 +08:00 committed by Bob Ball
parent 3aaefb8a74
commit c3d61b4579
18 changed files with 75 additions and 4600 deletions

View File

@ -1,20 +0,0 @@
#!/usr/bin/env python
import os
import yaml
settings = yaml.load(open('/etc/nailgun/settings.yaml'))
db_settings = settings['DATABASE']
os.environ["PGPASSWORD"] = db_settings['passwd']
def execute_sql(sql):
paras = dict(db_settings.items() + {'sql':sql}.items())
cmd = ('psql -h {host} -p {port} -U {user} -w -d {name} '
'-c "{sql}" '
).format(**paras)
print cmd
os.system(cmd)
if __name__ == '__main__':
execute_sql('delete from releases where name like \'%Xen%\';')

38
components.yaml Normal file
View File

@ -0,0 +1,38 @@
- name: 'hypervisor:xen'
label: 'XenServer'
description: 'Select this option if you run OpenStack on XenServer Hypervisor'
incompatible:
- name: 'hypervisor:vmware'
description: ''
- name: 'hypervisor:qemu'
description: ''
- name: 'network:neutron:ml2:tun'
description: ''
- name: 'additional_service:sahara'
description: ''
- name: 'additional_service:murano'
description: ''
- name: 'additional_service:ceilometer'
description: ''
- name: 'additional_service:mongo'
description: ''
- name: 'additional_service:ironic'
description: ''
- name: 'storage:volumes_ceph'
description: ''
- name: 'storage:images_ceph'
description: ''
- name: 'storage:ephemeral_ceph'
description: ''
- name: 'storage:images_ceph'
description: ''
- name: 'storage:images_ceph'
description: ''
- name: 'storage:block:ceph'
description: ''
- name: 'storage:object:ceph'
description: ''
- name: 'storage:ephemeral:ceph'
description: ''
- name: 'storage:image:ceph'
description: ''

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 54 KiB

View File

@ -57,9 +57,9 @@ author = u'John Hua (john.hua@citrix.com)'
# built documents.
#
# The short X.Y version.
version = '3.0'
version = '3.1'
# The full version, including alpha/beta/rc tags.
release = '3.0-3.0.0-1'
release = '3.1-3.1.0-1'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.

View File

@ -9,7 +9,7 @@ Requirement Version/Comment
========================= ============================
Fuel 8.0
XenServer 6.5 SP1 + Hotfix XS65ESP1013
XenServer plugin for Fuel 3.0.0
XenServer plugin for Fuel 3.1.0
========================= ============================
* This plugin will not install XenServer or configure the Virtual

View File

@ -36,16 +36,16 @@ Prepare infrastructure
One example deployment is shown below.
.. image:: _static/topology00.png
:width: 80%
:width: 100%
Select Environment
------------------
#. Create a new environment with the Fuel UI wizard. Select "Liberty+Citrix XenServer on Ubuntu 14.04" from OpenStack Release dropdown list. At the moment you will see most of options are disabled in the wizard.
#. Create a new environment with the Fuel UI wizard. Select "Liberty on Ubuntu 14.04" from OpenStack Release dropdown list, check off QEMU-KVM and check on XenServer. At the moment you will see most of options are disabled in the wizard.
.. image:: _static/fmwizard00.png
:width: 80%
:width: 100%
#. Create new VMs in XenCenter for the compute nodes
@ -56,14 +56,14 @@ Select Environment
Network to the compute virtual machines
.. image:: _static/HIMN_dialog.jpg
:width: 80%
:width: 100%
#. Add new VMs to the new environment according to `Fuel User Guide <https://docs.mirantis.com/openstack/fuel/fuel-8.0/user-guide.html#add-nodes-to-the-environment>`_ and configure them properly. A typical topology of 3 controller nodes + 3 compute nodes + 1 storage node is recommended.
#. Go to Settings tab and scroll down to "XenServer Plugin" section. You need to input the common access credentials to all XenServers that previously are used to create new VMs.
#. Go to Settings tab and "Compute" section. You need to input the common access credentials to all XenServers that previously are used to create new VMs.
.. image:: _static/fmsetting00.png
:width: 80%
:width: 100%
#. If the XenServer host already has compatible Nova plugins installed, untick the checkbox to install the supplemental packs. In normal cases, the XenServer host will not have compatible Nova plugins installed, so leave the checkbox enabled
@ -78,4 +78,4 @@ Finish environment configuration
#. After deployment is done, you will see in Horizon that all hypervisors are xen.
.. image:: _static/fmhorizon00.png
:width: 80%
:width: 100%

View File

@ -11,14 +11,14 @@ To install the XenServer Fuel plugin:
#. Copy the *rpm* file to the Fuel Master node:
::
[root@home ~]# scp fuel-plugin-xenserver-3.0-3.0.0-1.noarch.rpm root@fuel-master:/tmp
[root@home ~]# scp fuel-plugin-xenserver-3.1-3.1.0-1.noarch.rpm root@fuel:/tmp
#. Log into Fuel Master node and install the plugin using the
`Fuel CLI <https://docs.mirantis.com/openstack/fuel/fuel-8.0/user-guide.html#using-fuel-cli>`_:
::
[root@fuel-master ~]# fuel plugins --install /tmp/fuel-plugin-xenserver-3.0-3.0.0-1.noarch.rpm
[root@fuel-master ~]# fuel plugins --install /tmp/fuel-plugin-xenserver-3.1-3.1.0-1.noarch.rpm
#. Verify that the plugin is installed correctly:
::
@ -26,7 +26,7 @@ To install the XenServer Fuel plugin:
[root@fuel-master ~]# fuel plugins
id | name | version | package_version
---|-----------------------|---------|----------------
9 | fuel-plugin-xenserver | 3.0.0 | 3.0.0
1 | fuel-plugin-xenserver | 3.1.0 | 4.0.0
Add Management Network tool
---------------------------

View File

@ -1,4 +1,17 @@
attributes:
metadata:
restrictions:
- "settings:common.libvirt_type.value == 'kvm'"
- "settings:storage.volumes_ceph.value == true"
- "settings:storage.images_ceph.value == true"
- "settings:storage.ephemeral_ceph.value == true"
- "settings:storage.objects_ceph.value == true"
- "settings:additional_components.sahara.value == true"
- "settings:additional_components.murano.value == true"
- "settings:additional_components.ceilometer.value == true"
- "settings:additional_components.mongo.value == true"
- "settings:additional_components.ironic.value == true"
group: 'compute'
username:
value: 'root'
label: 'Username'

View File

@ -3,7 +3,7 @@ name: fuel-plugin-xenserver
# Human-readable name for your plugin
title: XenServer Plugin
# Plugin version
version: '3.0.0'
version: '3.1.0'
# Description
description: Enable Mirantis OpenStack to integrate with Xenserver
# Required fuel version
@ -17,6 +17,9 @@ homepage: 'https://git.openstack.org/cgit/openstack/fuel-plugin-xenserver'
# Specify a group which your plugin implements, possible options:
# network, storage, storage::cinder, storage::glance, hypervisor
groups: ['hypervisor']
# Change `false` to `true` if the plugin can be installed in the environment
# after the deployment.
is_hotpluggable: false
# The plugin is compatible with releases in the list
releases:
@ -27,5 +30,4 @@ releases:
repository_path: repositories/ubuntu
# Version of plugin package
package_version: '3.0.0'
package_version: '4.0.0'

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +0,0 @@
name=${1-"fuel-plugin-xenserver*"}
cd /var/www/nailgun/plugins/%{name}
dockerctl copy cleardb.py nailgun:/tmp/cleardb.py
dockerctl shell nailgun /tmp/cleardb.py
dockerctl shell nailgun rm /tmp/cleardb.py
dockerctl copy xs_release.yaml nailgun:/tmp/xs_release.yaml
dockerctl shell nailgun manage.py loaddata /tmp/xs_release.yaml
dockerctl shell nailgun rm /tmp/xs_release.yaml
fuel rel --sync-deployment-tasks --dir /etc/puppet/

View File

@ -12,19 +12,16 @@ Problem description
===================
There is currently no supported way for Citrix Xenserver customers to
use Mirantis OpenStack in their environments. Further, Fuel does not
provide sufficient flexibility to add a new hypervisor option to the
wizard, meaning that any users of Citrix XenServer who wish to
manually configure Fuel are required to select an incorrect hypervisor
then made post-install changes to switch them over to using XenServer.
use Mirantis OpenStack in their environments. XenServer Fuel plugin
aims to provide support for it.
Proposed change
===============
Unfortunately the Fuel Plugin architecture is not sufficiently
flexible to allow a plugin to add a new hypervisor option to the
wizard. Therefore, this plugin will provide a new Release definition
which can be used to automatically install with XenServer.
XenServer Fuel plugin that will deliver new features and patches to
Compute/Node nodes as well as the XenServer hosts, customize user
interface as XenServer isn't a built-in hypervisor and reconfigure
OpenStack environment from qemu-based to xenserver-based.
Alternatives
------------

View File

@ -1,7 +0,0 @@
name=${1-"fuel-plugin-xenserver*"}
cd /var/www/nailgun/plugins/%{name}
dockerctl copy cleardb.py nailgun:/tmp/cleardb.py
dockerctl shell nailgun /tmp/cleardb.py
dockerctl shell nailgun rm /tmp/cleardb.py
fuel rel --sync-deployment-tasks --dir /etc/puppet/

View File

@ -1,413 +0,0 @@
--- openstack.yaml 2016-03-18 14:55:44.532489000 +0800
+++ xs_release.yaml 2016-04-22 13:06:41.070655060 +0800
@@ -865,12 +865,18 @@
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:
+ - condition: "true"
+ action: "disable"
murano-cfapi:
value: false
label: "Install Murano service broker for Cloud Foundry"
@@ -905,6 +911,9 @@
description: "If selected, Ceilometer component will be installed"
weight: 60
type: "checkbox"
+ restrictions:
+ - condition: "true"
+ action: "disable"
mongo:
value: false
label: "Use external Mongo DB"
@@ -912,7 +921,8 @@
weight: 70
type: "checkbox"
restrictions:
- - "settings:additional_components.ceilometer.value == false"
+ - condition: "true"
+ action: "disable"
ironic:
value: false
label: "Install Ironic"
@@ -920,8 +930,8 @@
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."
+ - condition: "true"
+ action: "disable"
common:
metadata:
label: "Common"
@@ -974,6 +984,9 @@
group: "compute"
weight: 30
type: "radio"
+ restrictions:
+ - condition: "true"
+ action: "disable"
resume_guests_state_on_host_boot:
value: true
label: "Resume guests state on host boot"
@@ -982,12 +995,15 @@
weight: 50
type: "checkbox"
use_cow_images:
- value: true
+ value: false
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"
+ restrictions:
+ - condition: "true"
+ action: "disable"
auth_key:
value: ""
label: "Public Key"
@@ -1236,7 +1252,8 @@
weight: 10
type: "checkbox"
restrictions:
- - "settings:storage.volumes_ceph.value == true"
+ - condition: "true"
+ action: "disable"
iser:
value: false
label: "iSER protocol for volumes (Cinder)"
@@ -1254,7 +1271,8 @@
weight: 15
type: "checkbox"
restrictions:
- - "settings:storage.volumes_ceph.value == true"
+ - condition: "true"
+ action: "disable"
volumes_ceph:
value: false
label: "Ceph RBD for volumes (Cinder)"
@@ -1262,7 +1280,8 @@
weight: 20
type: "checkbox"
restrictions:
- - "settings:storage.volumes_lvm.value == true or settings:storage.volumes_block_device.value == true"
+ - condition: "true"
+ action: "disable"
images_ceph:
value: false
label: "Ceph RBD for images (Glance)"
@@ -1270,7 +1289,8 @@
weight: 30
type: "checkbox"
restrictions:
- - "settings:storage.images_vcenter.value == true": "Only one Glance backend could be selected."
+ - condition: "true"
+ action: "disable"
images_vcenter:
value: false
label: "VMware vCenter/ESXi datastore for images (Glance)"
@@ -1288,12 +1308,18 @@
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"
+ restrictions:
+ - condition: "true"
+ action: "disable"
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"
+ restrictions:
+ - condition: "true"
+ action: "disable"
osd_pool_size:
value: "3"
label: "Ceph object replication factor"
@@ -1303,6 +1329,9 @@
regex:
source: '^[1-9]\d*$'
error: "Invalid number"
+ restrictions:
+ - condition: "true"
+ action: "disable"
generated:
mysql:
root_password:
@@ -1680,21 +1709,20 @@
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:
+ label: "XenServer"
+ description: "Select this option if you run OpenStack on XenServer."
+ incompatible:
- name: hypervisor:vmware
+ message: "VMware not compatible with XenServer"
- name: hypervisor:vmware
weight: 15
bind:
- "settings:common.use_vcenter.value"
label: "dialog.create_cluster_wizard.compute.vcenter"
description: "dialog.create_cluster_wizard.compute.vcenter_description"
- compatible:
- - name: hypervisor:qemu
- requires:
+ incompatible:
- name: hypervisor:qemu
- message: "dialog.create_cluster_wizard.compute.vcenter_warning"
+ message: "VMware not compatible with XenServer"
- name: network:neutron:core:ml2
default: true
weight: 1000
@@ -1728,8 +1756,9 @@
description: "dialog.create_cluster_wizard.network.neutron_tun_description"
compatible:
- name: network:neutron:core:ml2
- - name: hypervisor:qemu
incompatible:
+ - name: hypervisor:qemu
+ message: "VXLAN tunnels not compatible with XenServer"
- name: network:neutron:ml2:vlan
message: "dialog.create_cluster_wizard.network.vlan_tun_alert"
- name: hypervisor:vmware
@@ -1762,7 +1791,6 @@
- "settings:storage.volumes_ceph.value": true
- "settings:storage.volumes_lvm.value": false
compatible:
- - name: hypervisor:qemu
- name: hypervisor:vmware
- name: network:neutron:core:ml2
- name: network:neutron:ml2:vlan
@@ -1771,8 +1799,8 @@
- name: storage:ephemeral:ceph
- name: storage:image:ceph
incompatible:
- - name: storage:block:lvm
- message: "Ceph not compatible with LVM"
+ - name: hypervisor:qemu
+ message: "Ceph not compatible with XenServer"
- name: storage:object:ceph
label: "dialog.create_cluster_wizard.storage.ceph"
description: "dialog.create_cluster_wizard.storage.ceph_object"
@@ -1780,7 +1808,6 @@
bind:
- "settings:storage.objects_ceph.value"
compatible:
- - name: hypervisor:qemu
- name: hypervisor:vmware
- name: network:neutron:core:ml2
- name: network:neutron:ml2:vlan
@@ -1789,6 +1816,9 @@
- name: storage:block:ceph
- name: storage:ephemeral:ceph
- name: storage:image:ceph
+ incompatible:
+ - name: hypervisor:qemu
+ message: "Ceph not compatible with XenServer"
- name: storage:ephemeral:ceph
label: "dialog.create_cluster_wizard.storage.ceph"
description: "dialog.create_cluster_wizard.storage.ceph_ephemeral"
@@ -1796,7 +1826,6 @@
bind:
- "settings:storage.ephemeral_ceph.value"
compatible:
- - name: hypervisor:qemu
- name: hypervisor:vmware
- name: network:neutron:core:ml2
- name: network:neutron:ml2:vlan
@@ -1805,6 +1834,9 @@
- name: storage:block:ceph
- name: storage:object:ceph
- name: storage:image:ceph
+ incompatible:
+ - name: hypervisor:qemu
+ message: "Ceph not compatible with XenServer"
- name: storage:image:ceph
label: "dialog.create_cluster_wizard.storage.ceph"
description: "dialog.create_cluster_wizard.storage.ceph_image"
@@ -1812,7 +1844,6 @@
bind:
- "settings:storage.images_ceph.value"
compatible:
- - name: hypervisor:qemu
- name: hypervisor:vmware
- name: network:neutron:core:ml2
- name: network:neutron:ml2:vlan
@@ -1821,6 +1852,9 @@
- name: storage:block:ceph
- name: storage:object:ceph
- name: storage:ephemeral:ceph
+ incompatible:
+ - name: hypervisor:qemu
+ message: "Ceph not compatible with XenServer"
- name: additional_service:sahara
bind:
- "settings:additional_components.sahara.value"
@@ -1828,7 +1862,6 @@
label: "dialog.create_cluster_wizard.additional.install_sahara"
description: "dialog.create_cluster_wizard.additional.install_sahara_description"
compatible:
- - name: hypervisor:qemu
- name: hypervisor:vmware
- name: network:neutron:core:ml2
- name: network:neutron:ml2:vlan
@@ -1842,6 +1875,9 @@
- name: additional_service:murano
- name: additional_service:ceilometer
- name: additional_service:ironic
+ incompatible:
+ - name: hypervisor:qemu
+ message: "Sahara not compatible with XenServer"
- name: additional_service:murano
bind:
- "settings:additional_components.murano.value"
@@ -1849,7 +1885,6 @@
label: "dialog.create_cluster_wizard.additional.install_murano"
description: "dialog.create_cluster_wizard.additional.install_murano_description"
compatible:
- - name: hypervisor:qemu
- name: hypervisor:vmware
- name: network:neutron:core:ml2
- name: network:neutron:ml2:vlan
@@ -1862,6 +1897,9 @@
- name: additional_service:sahara
- name: additional_service:ceilometer
- name: additional_service:ironic
+ incompatible:
+ - name: hypervisor:qemu
+ message: "Murano not compatible with XenServer"
- name: additional_service:ceilometer
bind:
- "settings:additional_components.ceilometer.value"
@@ -1869,7 +1907,6 @@
label: "dialog.create_cluster_wizard.additional.install_ceilometer"
description: "dialog.create_cluster_wizard.additional.install_ceilometer_description"
compatible:
- - name: hypervisor:qemu
- name: hypervisor:vmware
- name: network:neutron:core:ml2
- name: network:neutron:ml2:vlan
@@ -1882,6 +1919,9 @@
- name: additional_service:sahara
- name: additional_service:murano
- name: additional_service:ironic
+ incompatible:
+ - name: hypervisor:qemu
+ message: "Ceilometer not compatible with XenServer"
- name: additional_service:ironic
bind:
- "settings:additional_components.ironic.value"
@@ -1889,7 +1929,6 @@
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
@@ -1903,86 +1942,14 @@
incompatible:
- name: network:neutron:ml2:tun
message: "dialog.create_cluster_wizard.additional.ironic_network_mode_alert"
+ - name: hypervisor:qemu
+ message: "Ironic not compatible with XenServer"
modes: ['ha_compact']
extensions: ['volume_manager']
-- pk: 1
- extend: *base_release
- fields:
- name: "Liberty on CentOS 6.5"
- state: "unavailable"
- version: "liberty-8.0"
- can_update_from_versions: []
- operating_system: "CentOS"
- description: "This option will install the OpenStack Liberty 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.
- For more details, please refer to the documentation (https://docs.mirantis.com/openstack/fuel/fuel-8.0/reference-architecture.html#fuel-rep-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-fuel/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-fuel/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"
-- pk: 2
+- pk: 9
extend: *base_release
fields:
- name: "Liberty on Ubuntu 14.04"
+ name: "Liberty+Citrix XenServer on Ubuntu 14.04"
version: "liberty-8.0"
can_update_from_versions: []
operating_system: "Ubuntu"

File diff suppressed because it is too large Load Diff