<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.openstack.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tzumainn</id>
		<title>OpenStack - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.openstack.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tzumainn"/>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/wiki/Special:Contributions/Tzumainn"/>
		<updated>2026-07-08T15:31:43Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Meetings/TripleO&amp;diff=98847</id>
		<title>Meetings/TripleO</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Meetings/TripleO&amp;diff=98847"/>
				<updated>2015-12-04T17:50:00Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* One-off agenda items */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly TripleO team meeting =&lt;br /&gt;
'''MEETING TIME: Every Tuesday at 14:00 UTC''' in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
See [http://eavesdrop.openstack.org/irc-meetings.ical the iCal feed] to check the time this week.&lt;br /&gt;
&lt;br /&gt;
== Agenda for next meeting ==&lt;br /&gt;
&lt;br /&gt;
We have a standing agenda + one-off items, please add your one-off thing here:&lt;br /&gt;
&lt;br /&gt;
=== One-off agenda items ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* confirm that people are okay with *not* renaming tripleo-common just yet, even though we're placing the API code in there (tzumainn)&lt;br /&gt;
* add items here.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Review Highlights ===&lt;br /&gt;
* https://review.openstack.org/#/c/209505/ (Docker compute)&lt;br /&gt;
* https://review.openstack.org/#/c/188137/ (Manila integration)&lt;br /&gt;
* https://review.openstack.org/#/c/220863/ (Sahara integration)&lt;br /&gt;
* https://review.openstack.org/#/c/219927/  (os-net-config linux bridge)&lt;br /&gt;
* https://review.openstack.org/#/c/218134/10 (os-net-config linux bonding)&lt;br /&gt;
&lt;br /&gt;
=== Regular agenda ===&lt;br /&gt;
Copy/Paste into IRC to kick the meeting off:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#startmeeting tripleo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, once the bot has caught up and everyone is settled:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#topic agenda&lt;br /&gt;
* bugs&lt;br /&gt;
* Projects releases or stable backports&lt;br /&gt;
* CI&lt;br /&gt;
* Specs&lt;br /&gt;
* one off agenda items&lt;br /&gt;
* open discussion&lt;br /&gt;
&lt;br /&gt;
Remember that anyone can use the link and info commands, not just the moderator - if you have something worth noting in the meeting minutes feel free to tag it&lt;br /&gt;
#topic bugs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== bugs ==&lt;br /&gt;
* https://bugs.launchpad.net/tripleo/&lt;br /&gt;
* https://bugs.launchpad.net/diskimage-builder/&lt;br /&gt;
* https://bugs.launchpad.net/os-refresh-config&lt;br /&gt;
* https://bugs.launchpad.net/os-apply-config&lt;br /&gt;
* https://bugs.launchpad.net/os-cloud-config&lt;br /&gt;
* https://bugs.launchpad.net/os-collect-config&lt;br /&gt;
* https://bugs.launchpad.net/os-net-config&lt;br /&gt;
* https://bugs.launchpad.net/tuskar&lt;br /&gt;
* https://bugs.launchpad.net/python-tuskarclient&lt;br /&gt;
&lt;br /&gt;
Copy/Paste for IRC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#link https://bugs.launchpad.net/tripleo/&lt;br /&gt;
#link https://bugs.launchpad.net/diskimage-builder/&lt;br /&gt;
#link https://bugs.launchpad.net/os-refresh-config&lt;br /&gt;
#link https://bugs.launchpad.net/os-apply-config&lt;br /&gt;
#link https://bugs.launchpad.net/os-collect-config&lt;br /&gt;
#link https://bugs.launchpad.net/os-cloud-config&lt;br /&gt;
#link https://bugs.launchpad.net/os-net-config&lt;br /&gt;
#link https://bugs.launchpad.net/tuskar&lt;br /&gt;
#link https://bugs.launchpad.net/python-tuskarclient&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== reviews ==&lt;br /&gt;
&lt;br /&gt;
Here we check the review SLA and discuss any thorny blocked reviews.&lt;br /&gt;
&lt;br /&gt;
Copy/paste for IRC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#info There's a dashboard linked from https://wiki.openstack.org/wiki/TripleO#Review_team - look for &amp;quot;TripleO Inbox Dashboard&amp;quot;&lt;br /&gt;
#link http://russellbryant.net/openstack-stats/tripleo-openreviews.html&lt;br /&gt;
#link http://russellbryant.net/openstack-stats/tripleo-reviewers-30.txt&lt;br /&gt;
#link http://russellbryant.net/openstack-stats/tripleo-reviewers-90.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Other useful links:&lt;br /&gt;
* http://www.stackalytics.com/report/reviews/tripleo-group/open&lt;br /&gt;
* http://stackalytics.com/report/contribution/tripleo-group/30&lt;br /&gt;
* http://stackalytics.com/report/contribution/tripleo-group/90&lt;br /&gt;
* http://russellbryant.net/openstack-stats/tripleo-openreviews.html&lt;br /&gt;
* http://russellbryant.net/openstack-stats/tripleo-reviewers-30.txt&lt;br /&gt;
* http://russellbryant.net/openstack-stats/tripleo-reviewers-90.txt&lt;br /&gt;
&lt;br /&gt;
== CI ==&lt;br /&gt;
CI status - http://tripleo.org/cistatus.html&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
* [http://eavesdrop.openstack.org/meetings/tripleo]&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Meetings/TripleO&amp;diff=96721</id>
		<title>Meetings/TripleO</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Meetings/TripleO&amp;diff=96721"/>
				<updated>2015-11-13T12:16:35Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Agenda for next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly TripleO team meeting =&lt;br /&gt;
'''MEETING TIME: Every Tuesday at 14:00 UTC''' in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
See [https://www.google.com/calendar/ical/bj05mroquq28jhud58esggqmh4@group.calendar.google.com/public/basic.ics the iCal feed] to check the time this week.&lt;br /&gt;
&lt;br /&gt;
== Agenda for next meeting ==&lt;br /&gt;
&lt;br /&gt;
We have a standing agenda + one-off items, please add your one-off thing here:&lt;br /&gt;
&lt;br /&gt;
=== One-off agenda items ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* followup on tripleo-api location - separate repo or a renamed tripleo-common (tzumainn)&lt;br /&gt;
* add items here...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Review Highlights ===&lt;br /&gt;
* https://review.openstack.org/#/c/209505/ (Docker compute)&lt;br /&gt;
* https://review.openstack.org/#/c/188137/ (Manila integration)&lt;br /&gt;
* https://review.openstack.org/#/c/220863/ (Sahara integration)&lt;br /&gt;
* https://review.openstack.org/#/c/219927/  (os-net-config linux bridge)&lt;br /&gt;
* https://review.openstack.org/#/c/218134/10 (os-net-config linux bonding)&lt;br /&gt;
&lt;br /&gt;
=== Regular agenda ===&lt;br /&gt;
Copy/Paste into IRC to kick the meeting off:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#startmeeting tripleo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, once the bot has caught up and everyone is settled:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#topic agenda&lt;br /&gt;
* bugs&lt;br /&gt;
* Projects releases or stable backports&lt;br /&gt;
* CI&lt;br /&gt;
* Specs&lt;br /&gt;
* Review Priorities: https://etherpad.openstack.org/p/tripleo-review-priorities&lt;br /&gt;
* one off agenda items&lt;br /&gt;
* open discussion&lt;br /&gt;
&lt;br /&gt;
Remember that anyone can use the link and info commands, not just the moderator - if you have something worth noting in the meeting minutes feel free to tag it&lt;br /&gt;
#topic bugs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== bugs ==&lt;br /&gt;
* https://bugs.launchpad.net/tripleo/&lt;br /&gt;
* https://bugs.launchpad.net/diskimage-builder/&lt;br /&gt;
* https://bugs.launchpad.net/os-refresh-config&lt;br /&gt;
* https://bugs.launchpad.net/os-apply-config&lt;br /&gt;
* https://bugs.launchpad.net/os-cloud-config&lt;br /&gt;
* https://bugs.launchpad.net/os-collect-config&lt;br /&gt;
* https://bugs.launchpad.net/os-net-config&lt;br /&gt;
* https://bugs.launchpad.net/tuskar&lt;br /&gt;
* https://bugs.launchpad.net/python-tuskarclient&lt;br /&gt;
&lt;br /&gt;
Copy/Paste for IRC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#link https://bugs.launchpad.net/tripleo/&lt;br /&gt;
#link https://bugs.launchpad.net/diskimage-builder/&lt;br /&gt;
#link https://bugs.launchpad.net/os-refresh-config&lt;br /&gt;
#link https://bugs.launchpad.net/os-apply-config&lt;br /&gt;
#link https://bugs.launchpad.net/os-collect-config&lt;br /&gt;
#link https://bugs.launchpad.net/os-cloud-config&lt;br /&gt;
#link https://bugs.launchpad.net/os-net-config&lt;br /&gt;
#link https://bugs.launchpad.net/tuskar&lt;br /&gt;
#link https://bugs.launchpad.net/python-tuskarclient&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== reviews ==&lt;br /&gt;
&lt;br /&gt;
Here we check the review SLA and discuss any thorny blocked reviews.&lt;br /&gt;
&lt;br /&gt;
Copy/paste for IRC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#info There's a dashboard linked from https://wiki.openstack.org/wiki/TripleO#Review_team - look for &amp;quot;TripleO Inbox Dashboard&amp;quot;&lt;br /&gt;
#link http://russellbryant.net/openstack-stats/tripleo-openreviews.html&lt;br /&gt;
#link http://russellbryant.net/openstack-stats/tripleo-reviewers-30.txt&lt;br /&gt;
#link http://russellbryant.net/openstack-stats/tripleo-reviewers-90.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Other useful links:&lt;br /&gt;
* http://www.stackalytics.com/report/reviews/tripleo-group/open&lt;br /&gt;
* http://stackalytics.com/report/contribution/tripleo-group/30&lt;br /&gt;
* http://stackalytics.com/report/contribution/tripleo-group/90&lt;br /&gt;
* http://russellbryant.net/openstack-stats/tripleo-openreviews.html&lt;br /&gt;
* http://russellbryant.net/openstack-stats/tripleo-reviewers-30.txt&lt;br /&gt;
* http://russellbryant.net/openstack-stats/tripleo-reviewers-90.txt&lt;br /&gt;
&lt;br /&gt;
== CI ==&lt;br /&gt;
CI status - http://tripleo.org/cistatus.html&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
* [http://eavesdrop.openstack.org/meetings/tripleo]&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Meetings/TripleO&amp;diff=95822</id>
		<title>Meetings/TripleO</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Meetings/TripleO&amp;diff=95822"/>
				<updated>2015-11-07T04:37:02Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* One-off agenda items */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly TripleO team meeting =&lt;br /&gt;
'''MEETING TIME: Every Tuesday at 14:00 UTC''' in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
See [https://www.google.com/calendar/ical/bj05mroquq28jhud58esggqmh4@group.calendar.google.com/public/basic.ics the iCal feed] to check the time this week.&lt;br /&gt;
&lt;br /&gt;
== Agenda for next meeting ==&lt;br /&gt;
&lt;br /&gt;
We have a standing agenda + one-off items, please add your one-off thing here:&lt;br /&gt;
&lt;br /&gt;
=== One-off agenda items ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* Add &amp;quot;Bump trunk&amp;quot; as a regular item (derekh)&lt;br /&gt;
* OAC templates breakage, better to just leave those as they are now that we don't have CI? (gfidente)&lt;br /&gt;
* Discuss REST API naming - tripleo-api or tuskar v3?  The latter was the consensus at Summit, but comments on the spec review - https://review.openstack.org/#/c/230432/7 - argue for the former. (tzumainn)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Review Highlights ===&lt;br /&gt;
* https://review.openstack.org/#/c/209505/ (Docker compute)&lt;br /&gt;
* https://review.openstack.org/#/c/188137/ (Manila integration)&lt;br /&gt;
* https://review.openstack.org/#/c/220863/ (Sahara integration)&lt;br /&gt;
* https://review.openstack.org/#/c/219927/  (os-net-config linux bridge)&lt;br /&gt;
* https://review.openstack.org/#/c/218134/10 (os-net-config linux bonding)&lt;br /&gt;
&lt;br /&gt;
=== Regular agenda ===&lt;br /&gt;
Copy/Paste into IRC to kick the meeting off:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#startmeeting tripleo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, once the bot has caught up and everyone is settled:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#topic agenda&lt;br /&gt;
* bugs&lt;br /&gt;
* Projects releases or stable backports&lt;br /&gt;
* CI&lt;br /&gt;
* Specs&lt;br /&gt;
* Review Priorities: https://etherpad.openstack.org/p/tripleo-review-priorities&lt;br /&gt;
* one off agenda items&lt;br /&gt;
* open discussion&lt;br /&gt;
&lt;br /&gt;
Remember that anyone can use the link and info commands, not just the moderator - if you have something worth noting in the meeting minutes feel free to tag it&lt;br /&gt;
#topic bugs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== bugs ==&lt;br /&gt;
* https://bugs.launchpad.net/tripleo/&lt;br /&gt;
* https://bugs.launchpad.net/diskimage-builder/&lt;br /&gt;
* https://bugs.launchpad.net/os-refresh-config&lt;br /&gt;
* https://bugs.launchpad.net/os-apply-config&lt;br /&gt;
* https://bugs.launchpad.net/os-cloud-config&lt;br /&gt;
* https://bugs.launchpad.net/os-collect-config&lt;br /&gt;
* https://bugs.launchpad.net/os-net-config&lt;br /&gt;
* https://bugs.launchpad.net/tuskar&lt;br /&gt;
* https://bugs.launchpad.net/python-tuskarclient&lt;br /&gt;
&lt;br /&gt;
Copy/Paste for IRC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#link https://bugs.launchpad.net/tripleo/&lt;br /&gt;
#link https://bugs.launchpad.net/diskimage-builder/&lt;br /&gt;
#link https://bugs.launchpad.net/os-refresh-config&lt;br /&gt;
#link https://bugs.launchpad.net/os-apply-config&lt;br /&gt;
#link https://bugs.launchpad.net/os-collect-config&lt;br /&gt;
#link https://bugs.launchpad.net/os-cloud-config&lt;br /&gt;
#link https://bugs.launchpad.net/os-net-config&lt;br /&gt;
#link https://bugs.launchpad.net/tuskar&lt;br /&gt;
#link https://bugs.launchpad.net/python-tuskarclient&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== reviews ==&lt;br /&gt;
&lt;br /&gt;
Here we check the review SLA and discuss any thorny blocked reviews.&lt;br /&gt;
&lt;br /&gt;
Copy/paste for IRC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#info There's a dashboard linked from https://wiki.openstack.org/wiki/TripleO#Review_team - look for &amp;quot;TripleO Inbox Dashboard&amp;quot;&lt;br /&gt;
#link http://russellbryant.net/openstack-stats/tripleo-openreviews.html&lt;br /&gt;
#link http://russellbryant.net/openstack-stats/tripleo-reviewers-30.txt&lt;br /&gt;
#link http://russellbryant.net/openstack-stats/tripleo-reviewers-90.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Other useful links:&lt;br /&gt;
* http://www.stackalytics.com/report/reviews/tripleo-group/open&lt;br /&gt;
* http://stackalytics.com/report/contribution/tripleo-group/30&lt;br /&gt;
* http://stackalytics.com/report/contribution/tripleo-group/90&lt;br /&gt;
* http://russellbryant.net/openstack-stats/tripleo-openreviews.html&lt;br /&gt;
* http://russellbryant.net/openstack-stats/tripleo-reviewers-30.txt&lt;br /&gt;
* http://russellbryant.net/openstack-stats/tripleo-reviewers-90.txt&lt;br /&gt;
&lt;br /&gt;
== CI ==&lt;br /&gt;
CI status - http://tripleo.org/cistatus.html&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
* [http://eavesdrop.openstack.org/meetings/tripleo]&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Tuskar/Devtest&amp;diff=62197</id>
		<title>Tuskar/Devtest</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Tuskar/Devtest&amp;diff=62197"/>
				<updated>2014-09-08T04:28:17Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Setup devtest */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
Devtest is a script that creates a development environment for TripleO / Tuskar / TuskarUI development. Below you can find step-by-step instructions for setting up the environment using devtest. If you would like more information about how devtest works as well as the script itself, see the following links&lt;br /&gt;
* http://docs.openstack.org/developer/tripleo-incubator/index.html&lt;br /&gt;
* https://github.com/openstack/tripleo-incubator/blob/master/scripts/devtest.sh&lt;br /&gt;
However, following the steps below should lead to a complete functioning setup.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
=== Setup devtest ===&lt;br /&gt;
All commands (unless otherwise specified) should be run as root, in a dedicated machine you will use for TripleO development. We will call this machine &amp;quot;the lab machine&amp;quot; or &amp;quot;the lab server&amp;quot;. The setup has been tested with lab machines running Fedora 19.&lt;br /&gt;
&lt;br /&gt;
Note: You might want to move the location of the default libvirt storage pool. The default location is /var/lib/libvirt/images. Depending on your file system / partitions setup, there might not be enough space for images at this default location. To be on the safe side, you can move it to another location which has plenty of space. Below is an example how to move the default storage pool location to /home/images. If you are sure that there is enough space at the default location, you can skip this step.&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/images&lt;br /&gt;
 yum install -y libvirt&lt;br /&gt;
 service libvirtd start&lt;br /&gt;
 virsh pool-destroy default&lt;br /&gt;
 virsh pool-undefine default&lt;br /&gt;
 virsh pool-define-as default dir --target /home/images&lt;br /&gt;
 virsh pool-start default&lt;br /&gt;
 virsh pool-autostart default&lt;br /&gt;
 service libvirtd restart&lt;br /&gt;
&lt;br /&gt;
Install git and kvm. Installing kvm at this point sets the ownership of the /dev/kvm correctly (it should be owned by the root user and kvm group). If you don't do this, devtest will fail due to incorrectly set ownership of /dev/kvm.&lt;br /&gt;
 yum -y install git kvm&lt;br /&gt;
&lt;br /&gt;
Check access rights on /dev/kvm afterwards. If group is not kvm or group doesn't have rw on this file, execute the following commands and reboot:&lt;br /&gt;
 chgrp kvm /dev/kvm&lt;br /&gt;
 chmod g+rw /dev/kvm&lt;br /&gt;
&lt;br /&gt;
Create devtest configuration file:&lt;br /&gt;
 cat &amp;lt;&amp;lt;'EOF' &amp;gt; ~/.devtestrc&lt;br /&gt;
 export NODE_CPU=1 NODE_MEM=4096 NODE_DISK=60 NODE_ARCH=amd64&lt;br /&gt;
 export NODE_DIST=&amp;quot;fedora selinux-permissive&amp;quot;&lt;br /&gt;
 export DIB_RELEASE=20&lt;br /&gt;
 export UNDERCLOUD_DIB_EXTRA_ARGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export OVERCLOUD_DIB_EXTRA_ARGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export OVERCLOUD_COMPUTESCALE=1&lt;br /&gt;
 export TRIPLEO_CLEANUP=1&lt;br /&gt;
 export USE_IRONIC=1&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
Clone the tripleo-incubator repo and run the devtest script:&lt;br /&gt;
 export TRIPLEO_ROOT=~/tripleo&lt;br /&gt;
 mkdir -p $TRIPLEO_ROOT&lt;br /&gt;
 cd $TRIPLEO_ROOT&lt;br /&gt;
 git clone https://git.openstack.org/openstack/tripleo-incubator&lt;br /&gt;
 $TRIPLEO_ROOT/tripleo-incubator/scripts/devtest.sh --trash-my-machine&lt;br /&gt;
 # wait around 2+ hours&lt;br /&gt;
 # mawagner: if openvswitch fails to start, see https://bugzilla.redhat.com/show_bug.cgi?id=1006412 (or just mkdir /var/lock/subsys)&lt;br /&gt;
&lt;br /&gt;
If you want to e.g. redeploy Overcloud for testing purposes, you will need to source following &lt;br /&gt;
 source tripleo-incubator/scripts/devtest_variables.sh&lt;br /&gt;
 source ./tripleo-undercloud-passwords&lt;br /&gt;
 source ./tripleo-incubator/undercloudrc&lt;br /&gt;
 source $TRIPLEO_ROOT/tripleo-incubator/cloudprompt&lt;br /&gt;
 source ~/.devtestrc&lt;br /&gt;
&lt;br /&gt;
Build the block storage image&lt;br /&gt;
 $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST \&lt;br /&gt;
       -a $NODE_ARCH -o $TRIPLEO_ROOT/overcloud-cinder-volume hosts \&lt;br /&gt;
       baremetal cinder-volume neutron-openvswitch-agent os-collect-config heat-cfntools pip-cache \&lt;br /&gt;
       dhcp-all-interfaces $DIB_COMMON_ELEMENTS $OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS 2&amp;gt;&amp;amp;1 | \&lt;br /&gt;
       tee $TRIPLEO_ROOT/dib-overcloud-cinder-volume.log&lt;br /&gt;
&lt;br /&gt;
  load-image overcloud-cinder-volume.qcow2&lt;br /&gt;
&lt;br /&gt;
To be able to deploy object storage node, you need this&lt;br /&gt;
 $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST \&lt;br /&gt;
        -a $NODE_ARCH -o $TRIPLEO_ROOT/overcloud-swift-storage hosts \&lt;br /&gt;
        baremetal swift-storage neutron-openvswitch-agent os-collect-config \&lt;br /&gt;
        dhcp-all-interfaces $DIB_COMMON_ELEMENTS $OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS 2&amp;gt;&amp;amp;1 | \&lt;br /&gt;
        tee $TRIPLEO_ROOT/dib-overcloud-swift-storage.log&lt;br /&gt;
&lt;br /&gt;
  load-image overcloud-swift-storage.qcow2&lt;br /&gt;
&lt;br /&gt;
To list MAC's for virsh listed machines run&lt;br /&gt;
 virsh list --all&lt;br /&gt;
 virsh dumpxml baremetal_0 | grep 'mac address' | cut -d\' -f2&lt;br /&gt;
&lt;br /&gt;
At this point, your devtest environment is configured. To proceed, you need to install Tuskar, Horizon and Tuskar-UI, since they are not installed by devtest.&lt;br /&gt;
&lt;br /&gt;
=== Install Tuskar ===&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /opt/stack &amp;amp;&amp;amp; cd /opt/stack&lt;br /&gt;
 git clone https://git.openstack.org/openstack/tuskar&lt;br /&gt;
&lt;br /&gt;
Follow the instructions here to complete the install: https://github.com/openstack/tuskar/blob/master/doc/source/INSTALL.rst. Make sure that you create the initial data.&lt;br /&gt;
&lt;br /&gt;
To be able to deploy Overcloud via Tuskar, you need to delete the Overcloud created by Devtest first.&lt;br /&gt;
Go to the Undercloud machine and delete the Overcloud:&lt;br /&gt;
 ssh heat-admin@192.0.2.3&lt;br /&gt;
 sudo -i&lt;br /&gt;
 source stackrc&lt;br /&gt;
 heat stack-delete overcloud&lt;br /&gt;
&lt;br /&gt;
Devtest will also set up Tuskar endpoints, but pointing to the undercloud machine. You need them point to your machine. This can be done by deleting and readding endpoints, but it's quicker to just modify them in mysql:&lt;br /&gt;
 ssh heat-admin@192.0.2.3&lt;br /&gt;
 sudo -i&lt;br /&gt;
 mysql -u keystone -p keystone&lt;br /&gt;
 Enter password: unset&lt;br /&gt;
 update endpoint, service set endpoint.url=&amp;quot;http://&amp;lt;yourlocalip&amp;gt;:8585/&amp;quot; where service.type=&amp;quot;management&amp;quot; and endpoint.service_id=service.id;&lt;br /&gt;
&lt;br /&gt;
Finally, you'll want to set up an initial plan, some roles, and link the two:&lt;br /&gt;
&lt;br /&gt;
 # create a plan&lt;br /&gt;
 curl -i -X POST -H 'X-Auth-Token: xxxxxxxxxxxxxxxxxxxxxxxx' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'User-Agent: python-tuskarclient' -d '{&amp;quot;name&amp;quot;: &amp;quot;overcloud&amp;quot;, &amp;quot;description&amp;quot;: &amp;quot;overcloud&amp;quot;}' http://127.0.0.1:8585/v2/plans&lt;br /&gt;
 # load roles&lt;br /&gt;
 tuskar-load-roles --config-file etc/tuskar/tuskar.conf sample-hot-templates/&lt;br /&gt;
&lt;br /&gt;
 # list roles to get their uuids&lt;br /&gt;
 curl -i -X GET -H 'X-Auth-Token: xxxxxxxxxxxxxxxxxxxxxxxxx' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'User-Agent: python-tuskarclient' http://127.0.0.1:8585/v2/roles&lt;br /&gt;
 # add each role to the plan (you'll have to run this once for each role)&lt;br /&gt;
 curl -i -X POST -H 'X-Auth-Token: 2ac5b3b685bc5fd18c9618a7d7e306a3' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'User-Agent: python-tuskarclient' -d '{&amp;quot;uuid&amp;quot;: &amp;quot;&amp;lt;role_uuid&amp;gt;&amp;quot;}' http://127.0.0.1:8585/v2/plans/&amp;lt;plan_uuid&amp;gt;roles&lt;br /&gt;
&lt;br /&gt;
=== Add Horizon and Tuskar-UI ===&lt;br /&gt;
Install and configure Horizon and Tuskar-UI using the instructions at: http://tuskar-ui.readthedocs.org/en/latest/install.html.  Make sure to clone the horizon and tuskar-ui repositories in /opt/stack.&lt;br /&gt;
&lt;br /&gt;
.Afterwards, copy /root/stackrc from the undercloud to the lab machine, change the OS_AUTH_URL to point to the undercloud, and source it:&lt;br /&gt;
 ssh heat-admin@192.0.2.3 &amp;quot;sudo -i cat /root/stackrc&amp;quot; &amp;gt; /root/stackrc&lt;br /&gt;
 sed -i 's/localhost:5000/192.0.2.3:5000/' /root/stackrc&lt;br /&gt;
 source /root/stackrc&lt;br /&gt;
&lt;br /&gt;
Configure OPENSTACK_HOST in horizon settings to point to the undercloud machine:&lt;br /&gt;
 sed -i 's/OPENSTACK_HOST = &amp;quot;127.0.0.1&amp;quot;/OPENSTACK_HOST = &amp;quot;192.0.2.3&amp;quot;/' /opt/stack/horizon/openstack_dashboard/local/local_settings.py&lt;br /&gt;
&lt;br /&gt;
Start the server:&lt;br /&gt;
 tools/with_venv.sh ./manage.py runserver 0.0.0.0:8111&lt;br /&gt;
&lt;br /&gt;
Now you can see the UI from your browser (you can find credentials for dashboard in undercloud machine in /root/stackrc):&lt;br /&gt;
 lab-machine:8111&lt;br /&gt;
&lt;br /&gt;
If you want to develop locally, you need only to mount the remote folder containing the code, in your local file system:&lt;br /&gt;
 yum install -y sshfs &amp;amp;&amp;amp; mkdir -p ~/devtest&lt;br /&gt;
 sshfs root@lab-machine:/opt/stack/ ~/devtest&lt;br /&gt;
&lt;br /&gt;
=== Script for installing Tuskar and Tuskar UI ===&lt;br /&gt;
There is a script to automatically do previous two steps: https://gist.github.com/Divius/9525147. It clones to the current directory, uses sudo to do privileged operations, so it can be used by non-root. The only requirement is that stackrc file is in the current directory. Also note that the script is mostly unsupported and can become outdated.&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Tuskar/Devtest&amp;diff=62196</id>
		<title>Tuskar/Devtest</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Tuskar/Devtest&amp;diff=62196"/>
				<updated>2014-09-08T04:27:40Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Setup devtest */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
Devtest is a script that creates a development environment for TripleO / Tuskar / TuskarUI development. Below you can find step-by-step instructions for setting up the environment using devtest. If you would like more information about how devtest works as well as the script itself, see the following links&lt;br /&gt;
* http://docs.openstack.org/developer/tripleo-incubator/index.html&lt;br /&gt;
* https://github.com/openstack/tripleo-incubator/blob/master/scripts/devtest.sh&lt;br /&gt;
However, following the steps below should lead to a complete functioning setup.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
=== Setup devtest ===&lt;br /&gt;
All commands (unless otherwise specified) should be run as root, in a dedicated machine you will use for TripleO development. We will call this machine &amp;quot;the lab machine&amp;quot; or &amp;quot;the lab server&amp;quot;. The setup has been tested with lab machines running Fedora 19.&lt;br /&gt;
&lt;br /&gt;
Note: You might want to move the location of the default libvirt storage pool. The default location is /var/lib/libvirt/images. Depending on your file system / partitions setup, there might not be enough space for images at this default location. To be on the safe side, you can move it to another location which has plenty of space. Below is an example how to move the default storage pool location to /home/images. If you are sure that there is enough space at the default location, you can skip this step.&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/images&lt;br /&gt;
 yum install -y libvirt&lt;br /&gt;
 service libvirtd start&lt;br /&gt;
 virsh pool-destroy default&lt;br /&gt;
 virsh pool-undefine default&lt;br /&gt;
 virsh pool-define-as default dir --target /home/images&lt;br /&gt;
 virsh pool-start default&lt;br /&gt;
 virsh pool-autostart default&lt;br /&gt;
 service libvirtd restart&lt;br /&gt;
&lt;br /&gt;
Install git and kvm. Installing kvm at this point sets the ownership of the /dev/kvm correctly (it should be owned by the root user and kvm group). If you don't do this, devtest will fail due to incorrectly set ownership of /dev/kvm.&lt;br /&gt;
 yum -y install git kvm&lt;br /&gt;
&lt;br /&gt;
Check access rights on /dev/kvm afterwards. If group is not kvm or group doesn't have rw on this file, execute the following commands and reboot:&lt;br /&gt;
 chgrp kvm /dev/kvm&lt;br /&gt;
 chmod g+rw /dev/kvm&lt;br /&gt;
&lt;br /&gt;
Create devtest configuration file:&lt;br /&gt;
 cat &amp;lt;&amp;lt;'EOF' &amp;gt; ~/.devtestrc&lt;br /&gt;
 export NODE_CPU=1 NODE_MEM=4096 NODE_DISK=60 NODE_ARCH=amd64&lt;br /&gt;
 export NODE_DIST=&amp;quot;fedora selinux-permissive&amp;quot;&lt;br /&gt;
 export DIB_RELEASE=20&lt;br /&gt;
 export UNDERCLOUD_DIB_EXTRA_ARGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export OVERCLOUD_DIB_EXTRA_ARGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export OVERCLOUD_COMPUTESCALE=1&lt;br /&gt;
 export TRIPLEO_CLEANUP=1&lt;br /&gt;
export USE_IRONIC=1&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
Clone the tripleo-incubator repo and run the devtest script:&lt;br /&gt;
 export TRIPLEO_ROOT=~/tripleo&lt;br /&gt;
 mkdir -p $TRIPLEO_ROOT&lt;br /&gt;
 cd $TRIPLEO_ROOT&lt;br /&gt;
 git clone https://git.openstack.org/openstack/tripleo-incubator&lt;br /&gt;
 $TRIPLEO_ROOT/tripleo-incubator/scripts/devtest.sh --trash-my-machine&lt;br /&gt;
 # wait around 2+ hours&lt;br /&gt;
 # mawagner: if openvswitch fails to start, see https://bugzilla.redhat.com/show_bug.cgi?id=1006412 (or just mkdir /var/lock/subsys)&lt;br /&gt;
&lt;br /&gt;
If you want to e.g. redeploy Overcloud for testing purposes, you will need to source following &lt;br /&gt;
 source tripleo-incubator/scripts/devtest_variables.sh&lt;br /&gt;
 source ./tripleo-undercloud-passwords&lt;br /&gt;
 source ./tripleo-incubator/undercloudrc&lt;br /&gt;
 source $TRIPLEO_ROOT/tripleo-incubator/cloudprompt&lt;br /&gt;
 source ~/.devtestrc&lt;br /&gt;
&lt;br /&gt;
Build the block storage image&lt;br /&gt;
 $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST \&lt;br /&gt;
       -a $NODE_ARCH -o $TRIPLEO_ROOT/overcloud-cinder-volume hosts \&lt;br /&gt;
       baremetal cinder-volume neutron-openvswitch-agent os-collect-config heat-cfntools pip-cache \&lt;br /&gt;
       dhcp-all-interfaces $DIB_COMMON_ELEMENTS $OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS 2&amp;gt;&amp;amp;1 | \&lt;br /&gt;
       tee $TRIPLEO_ROOT/dib-overcloud-cinder-volume.log&lt;br /&gt;
&lt;br /&gt;
  load-image overcloud-cinder-volume.qcow2&lt;br /&gt;
&lt;br /&gt;
To be able to deploy object storage node, you need this&lt;br /&gt;
 $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST \&lt;br /&gt;
        -a $NODE_ARCH -o $TRIPLEO_ROOT/overcloud-swift-storage hosts \&lt;br /&gt;
        baremetal swift-storage neutron-openvswitch-agent os-collect-config \&lt;br /&gt;
        dhcp-all-interfaces $DIB_COMMON_ELEMENTS $OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS 2&amp;gt;&amp;amp;1 | \&lt;br /&gt;
        tee $TRIPLEO_ROOT/dib-overcloud-swift-storage.log&lt;br /&gt;
&lt;br /&gt;
  load-image overcloud-swift-storage.qcow2&lt;br /&gt;
&lt;br /&gt;
To list MAC's for virsh listed machines run&lt;br /&gt;
 virsh list --all&lt;br /&gt;
 virsh dumpxml baremetal_0 | grep 'mac address' | cut -d\' -f2&lt;br /&gt;
&lt;br /&gt;
At this point, your devtest environment is configured. To proceed, you need to install Tuskar, Horizon and Tuskar-UI, since they are not installed by devtest.&lt;br /&gt;
&lt;br /&gt;
=== Install Tuskar ===&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /opt/stack &amp;amp;&amp;amp; cd /opt/stack&lt;br /&gt;
 git clone https://git.openstack.org/openstack/tuskar&lt;br /&gt;
&lt;br /&gt;
Follow the instructions here to complete the install: https://github.com/openstack/tuskar/blob/master/doc/source/INSTALL.rst. Make sure that you create the initial data.&lt;br /&gt;
&lt;br /&gt;
To be able to deploy Overcloud via Tuskar, you need to delete the Overcloud created by Devtest first.&lt;br /&gt;
Go to the Undercloud machine and delete the Overcloud:&lt;br /&gt;
 ssh heat-admin@192.0.2.3&lt;br /&gt;
 sudo -i&lt;br /&gt;
 source stackrc&lt;br /&gt;
 heat stack-delete overcloud&lt;br /&gt;
&lt;br /&gt;
Devtest will also set up Tuskar endpoints, but pointing to the undercloud machine. You need them point to your machine. This can be done by deleting and readding endpoints, but it's quicker to just modify them in mysql:&lt;br /&gt;
 ssh heat-admin@192.0.2.3&lt;br /&gt;
 sudo -i&lt;br /&gt;
 mysql -u keystone -p keystone&lt;br /&gt;
 Enter password: unset&lt;br /&gt;
 update endpoint, service set endpoint.url=&amp;quot;http://&amp;lt;yourlocalip&amp;gt;:8585/&amp;quot; where service.type=&amp;quot;management&amp;quot; and endpoint.service_id=service.id;&lt;br /&gt;
&lt;br /&gt;
Finally, you'll want to set up an initial plan, some roles, and link the two:&lt;br /&gt;
&lt;br /&gt;
 # create a plan&lt;br /&gt;
 curl -i -X POST -H 'X-Auth-Token: xxxxxxxxxxxxxxxxxxxxxxxx' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'User-Agent: python-tuskarclient' -d '{&amp;quot;name&amp;quot;: &amp;quot;overcloud&amp;quot;, &amp;quot;description&amp;quot;: &amp;quot;overcloud&amp;quot;}' http://127.0.0.1:8585/v2/plans&lt;br /&gt;
 # load roles&lt;br /&gt;
 tuskar-load-roles --config-file etc/tuskar/tuskar.conf sample-hot-templates/&lt;br /&gt;
&lt;br /&gt;
 # list roles to get their uuids&lt;br /&gt;
 curl -i -X GET -H 'X-Auth-Token: xxxxxxxxxxxxxxxxxxxxxxxxx' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'User-Agent: python-tuskarclient' http://127.0.0.1:8585/v2/roles&lt;br /&gt;
 # add each role to the plan (you'll have to run this once for each role)&lt;br /&gt;
 curl -i -X POST -H 'X-Auth-Token: 2ac5b3b685bc5fd18c9618a7d7e306a3' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'User-Agent: python-tuskarclient' -d '{&amp;quot;uuid&amp;quot;: &amp;quot;&amp;lt;role_uuid&amp;gt;&amp;quot;}' http://127.0.0.1:8585/v2/plans/&amp;lt;plan_uuid&amp;gt;roles&lt;br /&gt;
&lt;br /&gt;
=== Add Horizon and Tuskar-UI ===&lt;br /&gt;
Install and configure Horizon and Tuskar-UI using the instructions at: http://tuskar-ui.readthedocs.org/en/latest/install.html.  Make sure to clone the horizon and tuskar-ui repositories in /opt/stack.&lt;br /&gt;
&lt;br /&gt;
.Afterwards, copy /root/stackrc from the undercloud to the lab machine, change the OS_AUTH_URL to point to the undercloud, and source it:&lt;br /&gt;
 ssh heat-admin@192.0.2.3 &amp;quot;sudo -i cat /root/stackrc&amp;quot; &amp;gt; /root/stackrc&lt;br /&gt;
 sed -i 's/localhost:5000/192.0.2.3:5000/' /root/stackrc&lt;br /&gt;
 source /root/stackrc&lt;br /&gt;
&lt;br /&gt;
Configure OPENSTACK_HOST in horizon settings to point to the undercloud machine:&lt;br /&gt;
 sed -i 's/OPENSTACK_HOST = &amp;quot;127.0.0.1&amp;quot;/OPENSTACK_HOST = &amp;quot;192.0.2.3&amp;quot;/' /opt/stack/horizon/openstack_dashboard/local/local_settings.py&lt;br /&gt;
&lt;br /&gt;
Start the server:&lt;br /&gt;
 tools/with_venv.sh ./manage.py runserver 0.0.0.0:8111&lt;br /&gt;
&lt;br /&gt;
Now you can see the UI from your browser (you can find credentials for dashboard in undercloud machine in /root/stackrc):&lt;br /&gt;
 lab-machine:8111&lt;br /&gt;
&lt;br /&gt;
If you want to develop locally, you need only to mount the remote folder containing the code, in your local file system:&lt;br /&gt;
 yum install -y sshfs &amp;amp;&amp;amp; mkdir -p ~/devtest&lt;br /&gt;
 sshfs root@lab-machine:/opt/stack/ ~/devtest&lt;br /&gt;
&lt;br /&gt;
=== Script for installing Tuskar and Tuskar UI ===&lt;br /&gt;
There is a script to automatically do previous two steps: https://gist.github.com/Divius/9525147. It clones to the current directory, uses sudo to do privileged operations, so it can be used by non-root. The only requirement is that stackrc file is in the current directory. Also note that the script is mostly unsupported and can become outdated.&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Tuskar/Devtest&amp;diff=61362</id>
		<title>Tuskar/Devtest</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Tuskar/Devtest&amp;diff=61362"/>
				<updated>2014-08-26T20:53:56Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Install Tuskar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
Devtest is a script that creates a development environment for TripleO / Tuskar / TuskarUI development. Below you can find step-by-step instructions for setting up the environment using devtest. If you would like more information about how devtest works as well as the script itself, see the following links&lt;br /&gt;
* http://docs.openstack.org/developer/tripleo-incubator/index.html&lt;br /&gt;
* https://github.com/openstack/tripleo-incubator/blob/master/scripts/devtest.sh&lt;br /&gt;
However, following the steps below should lead to a complete functioning setup.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
=== Setup devtest ===&lt;br /&gt;
All commands (unless otherwise specified) should be run as root, in a dedicated machine you will use for TripleO development. We will call this machine &amp;quot;the lab machine&amp;quot; or &amp;quot;the lab server&amp;quot;. The setup has been tested with lab machines running Fedora 19.&lt;br /&gt;
&lt;br /&gt;
Note: You might want to move the location of the default libvirt storage pool. The default location is /var/lib/libvirt/images. Depending on your file system / partitions setup, there might not be enough space for images at this default location. To be on the safe side, you can move it to another location which has plenty of space. Below is an example how to move the default storage pool location to /home/images. If you are sure that there is enough space at the default location, you can skip this step.&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/images&lt;br /&gt;
 yum install -y libvirt&lt;br /&gt;
 service libvirtd start&lt;br /&gt;
 virsh pool-destroy default&lt;br /&gt;
 virsh pool-undefine default&lt;br /&gt;
 virsh pool-define-as default dir --target /home/images&lt;br /&gt;
 virsh pool-start default&lt;br /&gt;
 virsh pool-autostart default&lt;br /&gt;
 service libvirtd restart&lt;br /&gt;
&lt;br /&gt;
Install git and kvm. Installing kvm at this point sets the ownership of the /dev/kvm correctly (it should be owned by the root user and kvm group). If you don't do this, devtest will fail due to incorrectly set ownership of /dev/kvm.&lt;br /&gt;
 yum -y install git kvm&lt;br /&gt;
&lt;br /&gt;
Check access rights on /dev/kvm afterwards. If group is not kvm or group doesn't have rw on this file, execute the following commands and reboot:&lt;br /&gt;
 chgrp kvm /dev/kvm&lt;br /&gt;
 chmod g+rw /dev/kvm&lt;br /&gt;
&lt;br /&gt;
Create devtest configuration file:&lt;br /&gt;
 cat &amp;lt;&amp;lt;'EOF' &amp;gt; ~/.devtestrc&lt;br /&gt;
 export NODE_CPU=1 NODE_MEM=4096 NODE_DISK=60 NODE_ARCH=amd64&lt;br /&gt;
 export NODE_DIST=&amp;quot;fedora selinux-permissive&amp;quot;&lt;br /&gt;
 export DIB_RELEASE=20&lt;br /&gt;
 export UNDERCLOUD_DIB_EXTRA_ARGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export OVERCLOUD_DIB_EXTRA_ARGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export OVERCLOUD_COMPUTESCALE=1&lt;br /&gt;
 export TRIPLEO_CLEANUP=1&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
Clone the tripleo-incubator repo and run the devtest script:&lt;br /&gt;
 export TRIPLEO_ROOT=~/tripleo&lt;br /&gt;
 mkdir -p $TRIPLEO_ROOT&lt;br /&gt;
 cd $TRIPLEO_ROOT&lt;br /&gt;
 git clone https://git.openstack.org/openstack/tripleo-incubator&lt;br /&gt;
 $TRIPLEO_ROOT/tripleo-incubator/scripts/devtest.sh --trash-my-machine&lt;br /&gt;
 # wait around 2+ hours&lt;br /&gt;
 # mawagner: if openvswitch fails to start, see https://bugzilla.redhat.com/show_bug.cgi?id=1006412 (or just mkdir /var/lock/subsys)&lt;br /&gt;
&lt;br /&gt;
If you want to e.g. redeploy Overcloud for testing purposes, you will need to source following &lt;br /&gt;
 source tripleo-incubator/scripts/devtest_variables.sh&lt;br /&gt;
 source ./tripleo-undercloud-passwords&lt;br /&gt;
 source ./tripleo-incubator/undercloudrc&lt;br /&gt;
 source $TRIPLEO_ROOT/tripleo-incubator/cloudprompt&lt;br /&gt;
 source ~/.devtestrc&lt;br /&gt;
&lt;br /&gt;
Build the block storage image&lt;br /&gt;
 $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST \&lt;br /&gt;
       -a $NODE_ARCH -o $TRIPLEO_ROOT/overcloud-cinder-volume hosts \&lt;br /&gt;
       baremetal cinder-volume neutron-openvswitch-agent os-collect-config heat-cfntools pip-cache \&lt;br /&gt;
       dhcp-all-interfaces $DIB_COMMON_ELEMENTS $OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS 2&amp;gt;&amp;amp;1 | \&lt;br /&gt;
       tee $TRIPLEO_ROOT/dib-overcloud-cinder-volume.log&lt;br /&gt;
&lt;br /&gt;
  load-image overcloud-cinder-volume.qcow2&lt;br /&gt;
&lt;br /&gt;
To be able to deploy object storage node, you need this&lt;br /&gt;
 $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST \&lt;br /&gt;
        -a $NODE_ARCH -o $TRIPLEO_ROOT/overcloud-swift-storage hosts \&lt;br /&gt;
        baremetal swift-storage neutron-openvswitch-agent os-collect-config \&lt;br /&gt;
        dhcp-all-interfaces $DIB_COMMON_ELEMENTS $OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS 2&amp;gt;&amp;amp;1 | \&lt;br /&gt;
        tee $TRIPLEO_ROOT/dib-overcloud-swift-storage.log&lt;br /&gt;
&lt;br /&gt;
  load-image overcloud-swift-storage.qcow2&lt;br /&gt;
&lt;br /&gt;
To list MAC's for virsh listed machines run&lt;br /&gt;
 virsh list --all&lt;br /&gt;
 virsh dumpxml baremetal_0 | grep 'mac address' | cut -d\' -f2&lt;br /&gt;
&lt;br /&gt;
At this point, your devtest environment is configured. To proceed, you need to install Tuskar, Horizon and Tuskar-UI, since they are not installed by devtest.&lt;br /&gt;
&lt;br /&gt;
=== Install Tuskar ===&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /opt/stack &amp;amp;&amp;amp; cd /opt/stack&lt;br /&gt;
 git clone https://git.openstack.org/openstack/tuskar&lt;br /&gt;
&lt;br /&gt;
Follow the instructions here to complete the install: https://github.com/openstack/tuskar/blob/master/doc/source/INSTALL.rst. Make sure that you create the initial data.&lt;br /&gt;
&lt;br /&gt;
To be able to deploy Overcloud via Tuskar, you need to delete the Overcloud created by Devtest first.&lt;br /&gt;
Go to the Undercloud machine and delete the Overcloud:&lt;br /&gt;
 ssh heat-admin@192.0.2.3&lt;br /&gt;
 sudo -i&lt;br /&gt;
 source stackrc&lt;br /&gt;
 heat stack-delete overcloud&lt;br /&gt;
&lt;br /&gt;
Devtest will also set up Tuskar endpoints, but pointing to the undercloud machine. You need them point to your machine. This can be done by deleting and readding endpoints, but it's quicker to just modify them in mysql:&lt;br /&gt;
 ssh heat-admin@192.0.2.3&lt;br /&gt;
 sudo -i&lt;br /&gt;
 mysql -u keystone -p keystone&lt;br /&gt;
 Enter password: unset&lt;br /&gt;
 update endpoint, service set endpoint.url=&amp;quot;http://&amp;lt;yourlocalip&amp;gt;:8585/&amp;quot; where service.type=&amp;quot;management&amp;quot; and endpoint.service_id=service.id;&lt;br /&gt;
&lt;br /&gt;
Finally, you'll want to set up an initial plan, some roles, and link the two:&lt;br /&gt;
&lt;br /&gt;
 # create a plan&lt;br /&gt;
 curl -i -X POST -H 'X-Auth-Token: xxxxxxxxxxxxxxxxxxxxxxxx' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'User-Agent: python-tuskarclient' -d '{&amp;quot;name&amp;quot;: &amp;quot;overcloud&amp;quot;, &amp;quot;description&amp;quot;: &amp;quot;overcloud&amp;quot;}' http://127.0.0.1:8585/v2/plans&lt;br /&gt;
 # load roles&lt;br /&gt;
 tuskar-load-roles --config-file etc/tuskar/tuskar.conf sample-hot-templates/&lt;br /&gt;
&lt;br /&gt;
 # list roles to get their uuids&lt;br /&gt;
 curl -i -X GET -H 'X-Auth-Token: xxxxxxxxxxxxxxxxxxxxxxxxx' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'User-Agent: python-tuskarclient' http://127.0.0.1:8585/v2/roles&lt;br /&gt;
 # add each role to the plan (you'll have to run this once for each role)&lt;br /&gt;
 curl -i -X POST -H 'X-Auth-Token: 2ac5b3b685bc5fd18c9618a7d7e306a3' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'User-Agent: python-tuskarclient' -d '{&amp;quot;uuid&amp;quot;: &amp;quot;&amp;lt;role_uuid&amp;gt;&amp;quot;}' http://127.0.0.1:8585/v2/plans/&amp;lt;plan_uuid&amp;gt;roles&lt;br /&gt;
&lt;br /&gt;
=== Add Horizon and Tuskar-UI ===&lt;br /&gt;
Install and configure Horizon and Tuskar-UI using the instructions at: http://tuskar-ui.readthedocs.org/en/latest/install.html.  Make sure to clone the horizon and tuskar-ui repositories in /opt/stack.&lt;br /&gt;
&lt;br /&gt;
.Afterwards, copy /root/stackrc from the undercloud to the lab machine, change the OS_AUTH_URL to point to the undercloud, and source it:&lt;br /&gt;
 ssh heat-admin@192.0.2.3 &amp;quot;sudo -i cat /root/stackrc&amp;quot; &amp;gt; /root/stackrc&lt;br /&gt;
 sed -i 's/localhost:5000/192.0.2.3:5000/' /root/stackrc&lt;br /&gt;
 source /root/stackrc&lt;br /&gt;
&lt;br /&gt;
Configure OPENSTACK_HOST in horizon settings to point to the undercloud machine:&lt;br /&gt;
 sed -i 's/OPENSTACK_HOST = &amp;quot;127.0.0.1&amp;quot;/OPENSTACK_HOST = &amp;quot;192.0.2.3&amp;quot;/' /opt/stack/horizon/openstack_dashboard/local/local_settings.py&lt;br /&gt;
&lt;br /&gt;
Start the server:&lt;br /&gt;
 tools/with_venv.sh ./manage.py runserver 0.0.0.0:8111&lt;br /&gt;
&lt;br /&gt;
Now you can see the UI from your browser (you can find credentials for dashboard in undercloud machine in /root/stackrc):&lt;br /&gt;
 lab-machine:8111&lt;br /&gt;
&lt;br /&gt;
If you want to develop locally, you need only to mount the remote folder containing the code, in your local file system:&lt;br /&gt;
 yum install -y sshfs &amp;amp;&amp;amp; mkdir -p ~/devtest&lt;br /&gt;
 sshfs root@lab-machine:/opt/stack/ ~/devtest&lt;br /&gt;
&lt;br /&gt;
=== Script for installing Tuskar and Tuskar UI ===&lt;br /&gt;
There is a script to automatically do previous two steps: https://gist.github.com/Divius/9525147. It clones to the current directory, uses sudo to do privileged operations, so it can be used by non-root. The only requirement is that stackrc file is in the current directory. Also note that the script is mostly unsupported and can become outdated.&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Tuskar/Devtest&amp;diff=61359</id>
		<title>Tuskar/Devtest</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Tuskar/Devtest&amp;diff=61359"/>
				<updated>2014-08-26T20:44:58Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Install Tuskar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
Devtest is a script that creates a development environment for TripleO / Tuskar / TuskarUI development. Below you can find step-by-step instructions for setting up the environment using devtest. If you would like more information about how devtest works as well as the script itself, see the following links&lt;br /&gt;
* http://docs.openstack.org/developer/tripleo-incubator/index.html&lt;br /&gt;
* https://github.com/openstack/tripleo-incubator/blob/master/scripts/devtest.sh&lt;br /&gt;
However, following the steps below should lead to a complete functioning setup.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
=== Setup devtest ===&lt;br /&gt;
All commands (unless otherwise specified) should be run as root, in a dedicated machine you will use for TripleO development. We will call this machine &amp;quot;the lab machine&amp;quot; or &amp;quot;the lab server&amp;quot;. The setup has been tested with lab machines running Fedora 19.&lt;br /&gt;
&lt;br /&gt;
Note: You might want to move the location of the default libvirt storage pool. The default location is /var/lib/libvirt/images. Depending on your file system / partitions setup, there might not be enough space for images at this default location. To be on the safe side, you can move it to another location which has plenty of space. Below is an example how to move the default storage pool location to /home/images. If you are sure that there is enough space at the default location, you can skip this step.&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/images&lt;br /&gt;
 yum install -y libvirt&lt;br /&gt;
 service libvirtd start&lt;br /&gt;
 virsh pool-destroy default&lt;br /&gt;
 virsh pool-undefine default&lt;br /&gt;
 virsh pool-define-as default dir --target /home/images&lt;br /&gt;
 virsh pool-start default&lt;br /&gt;
 virsh pool-autostart default&lt;br /&gt;
 service libvirtd restart&lt;br /&gt;
&lt;br /&gt;
Install git and kvm. Installing kvm at this point sets the ownership of the /dev/kvm correctly (it should be owned by the root user and kvm group). If you don't do this, devtest will fail due to incorrectly set ownership of /dev/kvm.&lt;br /&gt;
 yum -y install git kvm&lt;br /&gt;
&lt;br /&gt;
Check access rights on /dev/kvm afterwards. If group is not kvm or group doesn't have rw on this file, execute the following commands and reboot:&lt;br /&gt;
 chgrp kvm /dev/kvm&lt;br /&gt;
 chmod g+rw /dev/kvm&lt;br /&gt;
&lt;br /&gt;
Create devtest configuration file:&lt;br /&gt;
 cat &amp;lt;&amp;lt;'EOF' &amp;gt; ~/.devtestrc&lt;br /&gt;
 export NODE_CPU=1 NODE_MEM=4096 NODE_DISK=60 NODE_ARCH=amd64&lt;br /&gt;
 export NODE_DIST=&amp;quot;fedora selinux-permissive&amp;quot;&lt;br /&gt;
 export DIB_RELEASE=20&lt;br /&gt;
 export UNDERCLOUD_DIB_EXTRA_ARGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export OVERCLOUD_DIB_EXTRA_ARGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export OVERCLOUD_COMPUTESCALE=1&lt;br /&gt;
 export TRIPLEO_CLEANUP=1&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
Clone the tripleo-incubator repo and run the devtest script:&lt;br /&gt;
 export TRIPLEO_ROOT=~/tripleo&lt;br /&gt;
 mkdir -p $TRIPLEO_ROOT&lt;br /&gt;
 cd $TRIPLEO_ROOT&lt;br /&gt;
 git clone https://git.openstack.org/openstack/tripleo-incubator&lt;br /&gt;
 $TRIPLEO_ROOT/tripleo-incubator/scripts/devtest.sh --trash-my-machine&lt;br /&gt;
 # wait around 2+ hours&lt;br /&gt;
 # mawagner: if openvswitch fails to start, see https://bugzilla.redhat.com/show_bug.cgi?id=1006412 (or just mkdir /var/lock/subsys)&lt;br /&gt;
&lt;br /&gt;
If you want to e.g. redeploy Overcloud for testing purposes, you will need to source following &lt;br /&gt;
 source tripleo-incubator/scripts/devtest_variables.sh&lt;br /&gt;
 source ./tripleo-undercloud-passwords&lt;br /&gt;
 source ./tripleo-incubator/undercloudrc&lt;br /&gt;
 source $TRIPLEO_ROOT/tripleo-incubator/cloudprompt&lt;br /&gt;
 source ~/.devtestrc&lt;br /&gt;
&lt;br /&gt;
Build the block storage image&lt;br /&gt;
 $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST \&lt;br /&gt;
       -a $NODE_ARCH -o $TRIPLEO_ROOT/overcloud-cinder-volume hosts \&lt;br /&gt;
       baremetal cinder-volume neutron-openvswitch-agent os-collect-config heat-cfntools pip-cache \&lt;br /&gt;
       dhcp-all-interfaces $DIB_COMMON_ELEMENTS $OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS 2&amp;gt;&amp;amp;1 | \&lt;br /&gt;
       tee $TRIPLEO_ROOT/dib-overcloud-cinder-volume.log&lt;br /&gt;
&lt;br /&gt;
  load-image overcloud-cinder-volume.qcow2&lt;br /&gt;
&lt;br /&gt;
To be able to deploy object storage node, you need this&lt;br /&gt;
 $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST \&lt;br /&gt;
        -a $NODE_ARCH -o $TRIPLEO_ROOT/overcloud-swift-storage hosts \&lt;br /&gt;
        baremetal swift-storage neutron-openvswitch-agent os-collect-config \&lt;br /&gt;
        dhcp-all-interfaces $DIB_COMMON_ELEMENTS $OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS 2&amp;gt;&amp;amp;1 | \&lt;br /&gt;
        tee $TRIPLEO_ROOT/dib-overcloud-swift-storage.log&lt;br /&gt;
&lt;br /&gt;
  load-image overcloud-swift-storage.qcow2&lt;br /&gt;
&lt;br /&gt;
To list MAC's for virsh listed machines run&lt;br /&gt;
 virsh list --all&lt;br /&gt;
 virsh dumpxml baremetal_0 | grep 'mac address' | cut -d\' -f2&lt;br /&gt;
&lt;br /&gt;
At this point, your devtest environment is configured. To proceed, you need to install Tuskar, Horizon and Tuskar-UI, since they are not installed by devtest.&lt;br /&gt;
&lt;br /&gt;
=== Install Tuskar ===&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /opt/stack &amp;amp;&amp;amp; cd /opt/stack&lt;br /&gt;
 git clone https://git.openstack.org/openstack/tuskar&lt;br /&gt;
&lt;br /&gt;
Follow the instructions here to complete the install: https://github.com/openstack/tuskar/blob/master/doc/source/INSTALL.rst. Make sure that you create the initial data.&lt;br /&gt;
&lt;br /&gt;
To be able to deploy Overcloud via Tuskar, you need to delete the Overcloud created by Devtest first.&lt;br /&gt;
Go to the Undercloud machine and delete the Overcloud:&lt;br /&gt;
 ssh heat-admin@192.0.2.3&lt;br /&gt;
 sudo -i&lt;br /&gt;
 source stackrc&lt;br /&gt;
 heat stack-delete overcloud&lt;br /&gt;
&lt;br /&gt;
Devtest will also set up Tuskar endpoints, but pointing to the undercloud machine. You need them point to your machine. This can be done by deleting and readding endpoints, but it's quicker to just modify them in mysql:&lt;br /&gt;
 ssh heat-admin@192.0.2.3&lt;br /&gt;
 sudo -i&lt;br /&gt;
 mysql -u keystone -p keystone&lt;br /&gt;
 Enter password: unset&lt;br /&gt;
 update endpoint, service set endpoint.url=&amp;quot;http://&amp;lt;yourlocalip&amp;gt;:8585/&amp;quot; where service.type=&amp;quot;management&amp;quot; and endpoint.service_id=service.id;&lt;br /&gt;
&lt;br /&gt;
Finally, you'll want to set up an initial plan, some roles, and link the two:&lt;br /&gt;
&lt;br /&gt;
 curl -i -X POST -H 'X-Auth-Token: xxxxxxxxxxxxxxxxxxxxxxxx' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'User-Agent: python-tuskarclient' -d '{&amp;quot;name&amp;quot;: &amp;quot;overcloud&amp;quot;, &amp;quot;description&amp;quot;: &amp;quot;overcloud&amp;quot;}' http://127.0.0.1:8585/v2/plans&lt;br /&gt;
 tuskar-load-roles --config-file etc/tuskar/tuskar.conf sample-hot-templates/&lt;br /&gt;
&lt;br /&gt;
=== Add Horizon and Tuskar-UI ===&lt;br /&gt;
Install and configure Horizon and Tuskar-UI using the instructions at: http://tuskar-ui.readthedocs.org/en/latest/install.html.  Make sure to clone the horizon and tuskar-ui repositories in /opt/stack.&lt;br /&gt;
&lt;br /&gt;
.Afterwards, copy /root/stackrc from the undercloud to the lab machine, change the OS_AUTH_URL to point to the undercloud, and source it:&lt;br /&gt;
 ssh heat-admin@192.0.2.3 &amp;quot;sudo -i cat /root/stackrc&amp;quot; &amp;gt; /root/stackrc&lt;br /&gt;
 sed -i 's/localhost:5000/192.0.2.3:5000/' /root/stackrc&lt;br /&gt;
 source /root/stackrc&lt;br /&gt;
&lt;br /&gt;
Configure OPENSTACK_HOST in horizon settings to point to the undercloud machine:&lt;br /&gt;
 sed -i 's/OPENSTACK_HOST = &amp;quot;127.0.0.1&amp;quot;/OPENSTACK_HOST = &amp;quot;192.0.2.3&amp;quot;/' /opt/stack/horizon/openstack_dashboard/local/local_settings.py&lt;br /&gt;
&lt;br /&gt;
Start the server:&lt;br /&gt;
 tools/with_venv.sh ./manage.py runserver 0.0.0.0:8111&lt;br /&gt;
&lt;br /&gt;
Now you can see the UI from your browser (you can find credentials for dashboard in undercloud machine in /root/stackrc):&lt;br /&gt;
 lab-machine:8111&lt;br /&gt;
&lt;br /&gt;
If you want to develop locally, you need only to mount the remote folder containing the code, in your local file system:&lt;br /&gt;
 yum install -y sshfs &amp;amp;&amp;amp; mkdir -p ~/devtest&lt;br /&gt;
 sshfs root@lab-machine:/opt/stack/ ~/devtest&lt;br /&gt;
&lt;br /&gt;
=== Script for installing Tuskar and Tuskar UI ===&lt;br /&gt;
There is a script to automatically do previous two steps: https://gist.github.com/Divius/9525147. It clones to the current directory, uses sudo to do privileged operations, so it can be used by non-root. The only requirement is that stackrc file is in the current directory. Also note that the script is mostly unsupported and can become outdated.&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Tuskar/Devtest&amp;diff=61358</id>
		<title>Tuskar/Devtest</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Tuskar/Devtest&amp;diff=61358"/>
				<updated>2014-08-26T20:44:13Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Install Tuskar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
Devtest is a script that creates a development environment for TripleO / Tuskar / TuskarUI development. Below you can find step-by-step instructions for setting up the environment using devtest. If you would like more information about how devtest works as well as the script itself, see the following links&lt;br /&gt;
* http://docs.openstack.org/developer/tripleo-incubator/index.html&lt;br /&gt;
* https://github.com/openstack/tripleo-incubator/blob/master/scripts/devtest.sh&lt;br /&gt;
However, following the steps below should lead to a complete functioning setup.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
=== Setup devtest ===&lt;br /&gt;
All commands (unless otherwise specified) should be run as root, in a dedicated machine you will use for TripleO development. We will call this machine &amp;quot;the lab machine&amp;quot; or &amp;quot;the lab server&amp;quot;. The setup has been tested with lab machines running Fedora 19.&lt;br /&gt;
&lt;br /&gt;
Note: You might want to move the location of the default libvirt storage pool. The default location is /var/lib/libvirt/images. Depending on your file system / partitions setup, there might not be enough space for images at this default location. To be on the safe side, you can move it to another location which has plenty of space. Below is an example how to move the default storage pool location to /home/images. If you are sure that there is enough space at the default location, you can skip this step.&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/images&lt;br /&gt;
 yum install -y libvirt&lt;br /&gt;
 service libvirtd start&lt;br /&gt;
 virsh pool-destroy default&lt;br /&gt;
 virsh pool-undefine default&lt;br /&gt;
 virsh pool-define-as default dir --target /home/images&lt;br /&gt;
 virsh pool-start default&lt;br /&gt;
 virsh pool-autostart default&lt;br /&gt;
 service libvirtd restart&lt;br /&gt;
&lt;br /&gt;
Install git and kvm. Installing kvm at this point sets the ownership of the /dev/kvm correctly (it should be owned by the root user and kvm group). If you don't do this, devtest will fail due to incorrectly set ownership of /dev/kvm.&lt;br /&gt;
 yum -y install git kvm&lt;br /&gt;
&lt;br /&gt;
Check access rights on /dev/kvm afterwards. If group is not kvm or group doesn't have rw on this file, execute the following commands and reboot:&lt;br /&gt;
 chgrp kvm /dev/kvm&lt;br /&gt;
 chmod g+rw /dev/kvm&lt;br /&gt;
&lt;br /&gt;
Create devtest configuration file:&lt;br /&gt;
 cat &amp;lt;&amp;lt;'EOF' &amp;gt; ~/.devtestrc&lt;br /&gt;
 export NODE_CPU=1 NODE_MEM=4096 NODE_DISK=60 NODE_ARCH=amd64&lt;br /&gt;
 export NODE_DIST=&amp;quot;fedora selinux-permissive&amp;quot;&lt;br /&gt;
 export DIB_RELEASE=20&lt;br /&gt;
 export UNDERCLOUD_DIB_EXTRA_ARGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export OVERCLOUD_DIB_EXTRA_ARGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export OVERCLOUD_COMPUTESCALE=1&lt;br /&gt;
 export TRIPLEO_CLEANUP=1&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
Clone the tripleo-incubator repo and run the devtest script:&lt;br /&gt;
 export TRIPLEO_ROOT=~/tripleo&lt;br /&gt;
 mkdir -p $TRIPLEO_ROOT&lt;br /&gt;
 cd $TRIPLEO_ROOT&lt;br /&gt;
 git clone https://git.openstack.org/openstack/tripleo-incubator&lt;br /&gt;
 $TRIPLEO_ROOT/tripleo-incubator/scripts/devtest.sh --trash-my-machine&lt;br /&gt;
 # wait around 2+ hours&lt;br /&gt;
 # mawagner: if openvswitch fails to start, see https://bugzilla.redhat.com/show_bug.cgi?id=1006412 (or just mkdir /var/lock/subsys)&lt;br /&gt;
&lt;br /&gt;
If you want to e.g. redeploy Overcloud for testing purposes, you will need to source following &lt;br /&gt;
 source tripleo-incubator/scripts/devtest_variables.sh&lt;br /&gt;
 source ./tripleo-undercloud-passwords&lt;br /&gt;
 source ./tripleo-incubator/undercloudrc&lt;br /&gt;
 source $TRIPLEO_ROOT/tripleo-incubator/cloudprompt&lt;br /&gt;
 source ~/.devtestrc&lt;br /&gt;
&lt;br /&gt;
Build the block storage image&lt;br /&gt;
 $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST \&lt;br /&gt;
       -a $NODE_ARCH -o $TRIPLEO_ROOT/overcloud-cinder-volume hosts \&lt;br /&gt;
       baremetal cinder-volume neutron-openvswitch-agent os-collect-config heat-cfntools pip-cache \&lt;br /&gt;
       dhcp-all-interfaces $DIB_COMMON_ELEMENTS $OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS 2&amp;gt;&amp;amp;1 | \&lt;br /&gt;
       tee $TRIPLEO_ROOT/dib-overcloud-cinder-volume.log&lt;br /&gt;
&lt;br /&gt;
  load-image overcloud-cinder-volume.qcow2&lt;br /&gt;
&lt;br /&gt;
To be able to deploy object storage node, you need this&lt;br /&gt;
 $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST \&lt;br /&gt;
        -a $NODE_ARCH -o $TRIPLEO_ROOT/overcloud-swift-storage hosts \&lt;br /&gt;
        baremetal swift-storage neutron-openvswitch-agent os-collect-config \&lt;br /&gt;
        dhcp-all-interfaces $DIB_COMMON_ELEMENTS $OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS 2&amp;gt;&amp;amp;1 | \&lt;br /&gt;
        tee $TRIPLEO_ROOT/dib-overcloud-swift-storage.log&lt;br /&gt;
&lt;br /&gt;
  load-image overcloud-swift-storage.qcow2&lt;br /&gt;
&lt;br /&gt;
To list MAC's for virsh listed machines run&lt;br /&gt;
 virsh list --all&lt;br /&gt;
 virsh dumpxml baremetal_0 | grep 'mac address' | cut -d\' -f2&lt;br /&gt;
&lt;br /&gt;
At this point, your devtest environment is configured. To proceed, you need to install Tuskar, Horizon and Tuskar-UI, since they are not installed by devtest.&lt;br /&gt;
&lt;br /&gt;
=== Install Tuskar ===&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /opt/stack &amp;amp;&amp;amp; cd /opt/stack&lt;br /&gt;
 git clone https://git.openstack.org/openstack/tuskar&lt;br /&gt;
&lt;br /&gt;
Follow the instructions here to complete the install: https://github.com/openstack/tuskar/blob/master/doc/source/INSTALL.rst. Make sure that you create the initial data.&lt;br /&gt;
&lt;br /&gt;
To be able to deploy Overcloud via Tuskar, you need to delete the Overcloud created by Devtest first.&lt;br /&gt;
Go to the Undercloud machine and delete the Overcloud:&lt;br /&gt;
 ssh heat-admin@192.0.2.3&lt;br /&gt;
 sudo -i&lt;br /&gt;
 source stackrc&lt;br /&gt;
 heat stack-delete overcloud&lt;br /&gt;
&lt;br /&gt;
Devtest will also set up Tuskar endpoints, but pointing to the undercloud machine. You need them point to your machine. This can be done by deleting and readding endpoints, but it's quicker to just modify them in mysql:&lt;br /&gt;
 ssh heat-admin@192.0.2.3&lt;br /&gt;
 sudo -i&lt;br /&gt;
 mysql -u keystone -p keystone&lt;br /&gt;
 Enter password: unset&lt;br /&gt;
 update endpoint, service set endpoint.url=&amp;quot;http://&amp;lt;yourlocalip&amp;gt;:8585/&amp;quot; where service.type=&amp;quot;management&amp;quot; and endpoint.service_id=service.id;&lt;br /&gt;
&lt;br /&gt;
Finally, you'll want to set up an initial plan, some roles, and link the two:&lt;br /&gt;
&lt;br /&gt;
 curl -iPOST -H 'X-Auth-Token: xxxxxxxxxxxxxxxxxx' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'User-Agent: python-tuskarclient' -d '{&amp;quot;name&amp;quot;: &amp;quot;overcloud&amp;quot;, &amp;quot;description&amp;quot;: &amp;quot;overcloud&amp;quot;}' http://127.0.0.1:8585/v2/plans&lt;br /&gt;
 tuskar-load-roles --config-file etc/tuskar/tuskar.conf sample-hot-templates/&lt;br /&gt;
&lt;br /&gt;
=== Add Horizon and Tuskar-UI ===&lt;br /&gt;
Install and configure Horizon and Tuskar-UI using the instructions at: http://tuskar-ui.readthedocs.org/en/latest/install.html.  Make sure to clone the horizon and tuskar-ui repositories in /opt/stack.&lt;br /&gt;
&lt;br /&gt;
.Afterwards, copy /root/stackrc from the undercloud to the lab machine, change the OS_AUTH_URL to point to the undercloud, and source it:&lt;br /&gt;
 ssh heat-admin@192.0.2.3 &amp;quot;sudo -i cat /root/stackrc&amp;quot; &amp;gt; /root/stackrc&lt;br /&gt;
 sed -i 's/localhost:5000/192.0.2.3:5000/' /root/stackrc&lt;br /&gt;
 source /root/stackrc&lt;br /&gt;
&lt;br /&gt;
Configure OPENSTACK_HOST in horizon settings to point to the undercloud machine:&lt;br /&gt;
 sed -i 's/OPENSTACK_HOST = &amp;quot;127.0.0.1&amp;quot;/OPENSTACK_HOST = &amp;quot;192.0.2.3&amp;quot;/' /opt/stack/horizon/openstack_dashboard/local/local_settings.py&lt;br /&gt;
&lt;br /&gt;
Start the server:&lt;br /&gt;
 tools/with_venv.sh ./manage.py runserver 0.0.0.0:8111&lt;br /&gt;
&lt;br /&gt;
Now you can see the UI from your browser (you can find credentials for dashboard in undercloud machine in /root/stackrc):&lt;br /&gt;
 lab-machine:8111&lt;br /&gt;
&lt;br /&gt;
If you want to develop locally, you need only to mount the remote folder containing the code, in your local file system:&lt;br /&gt;
 yum install -y sshfs &amp;amp;&amp;amp; mkdir -p ~/devtest&lt;br /&gt;
 sshfs root@lab-machine:/opt/stack/ ~/devtest&lt;br /&gt;
&lt;br /&gt;
=== Script for installing Tuskar and Tuskar UI ===&lt;br /&gt;
There is a script to automatically do previous two steps: https://gist.github.com/Divius/9525147. It clones to the current directory, uses sudo to do privileged operations, so it can be used by non-root. The only requirement is that stackrc file is in the current directory. Also note that the script is mostly unsupported and can become outdated.&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Tuskar/Devtest&amp;diff=61357</id>
		<title>Tuskar/Devtest</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Tuskar/Devtest&amp;diff=61357"/>
				<updated>2014-08-26T20:36:42Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Install Tuskar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
Devtest is a script that creates a development environment for TripleO / Tuskar / TuskarUI development. Below you can find step-by-step instructions for setting up the environment using devtest. If you would like more information about how devtest works as well as the script itself, see the following links&lt;br /&gt;
* http://docs.openstack.org/developer/tripleo-incubator/index.html&lt;br /&gt;
* https://github.com/openstack/tripleo-incubator/blob/master/scripts/devtest.sh&lt;br /&gt;
However, following the steps below should lead to a complete functioning setup.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
=== Setup devtest ===&lt;br /&gt;
All commands (unless otherwise specified) should be run as root, in a dedicated machine you will use for TripleO development. We will call this machine &amp;quot;the lab machine&amp;quot; or &amp;quot;the lab server&amp;quot;. The setup has been tested with lab machines running Fedora 19.&lt;br /&gt;
&lt;br /&gt;
Note: You might want to move the location of the default libvirt storage pool. The default location is /var/lib/libvirt/images. Depending on your file system / partitions setup, there might not be enough space for images at this default location. To be on the safe side, you can move it to another location which has plenty of space. Below is an example how to move the default storage pool location to /home/images. If you are sure that there is enough space at the default location, you can skip this step.&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/images&lt;br /&gt;
 yum install -y libvirt&lt;br /&gt;
 service libvirtd start&lt;br /&gt;
 virsh pool-destroy default&lt;br /&gt;
 virsh pool-undefine default&lt;br /&gt;
 virsh pool-define-as default dir --target /home/images&lt;br /&gt;
 virsh pool-start default&lt;br /&gt;
 virsh pool-autostart default&lt;br /&gt;
 service libvirtd restart&lt;br /&gt;
&lt;br /&gt;
Install git and kvm. Installing kvm at this point sets the ownership of the /dev/kvm correctly (it should be owned by the root user and kvm group). If you don't do this, devtest will fail due to incorrectly set ownership of /dev/kvm.&lt;br /&gt;
 yum -y install git kvm&lt;br /&gt;
&lt;br /&gt;
Check access rights on /dev/kvm afterwards. If group is not kvm or group doesn't have rw on this file, execute the following commands and reboot:&lt;br /&gt;
 chgrp kvm /dev/kvm&lt;br /&gt;
 chmod g+rw /dev/kvm&lt;br /&gt;
&lt;br /&gt;
Create devtest configuration file:&lt;br /&gt;
 cat &amp;lt;&amp;lt;'EOF' &amp;gt; ~/.devtestrc&lt;br /&gt;
 export NODE_CPU=1 NODE_MEM=4096 NODE_DISK=60 NODE_ARCH=amd64&lt;br /&gt;
 export NODE_DIST=&amp;quot;fedora selinux-permissive&amp;quot;&lt;br /&gt;
 export DIB_RELEASE=20&lt;br /&gt;
 export UNDERCLOUD_DIB_EXTRA_ARGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export OVERCLOUD_DIB_EXTRA_ARGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export OVERCLOUD_COMPUTESCALE=1&lt;br /&gt;
 export TRIPLEO_CLEANUP=1&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
Clone the tripleo-incubator repo and run the devtest script:&lt;br /&gt;
 export TRIPLEO_ROOT=~/tripleo&lt;br /&gt;
 mkdir -p $TRIPLEO_ROOT&lt;br /&gt;
 cd $TRIPLEO_ROOT&lt;br /&gt;
 git clone https://git.openstack.org/openstack/tripleo-incubator&lt;br /&gt;
 $TRIPLEO_ROOT/tripleo-incubator/scripts/devtest.sh --trash-my-machine&lt;br /&gt;
 # wait around 2+ hours&lt;br /&gt;
 # mawagner: if openvswitch fails to start, see https://bugzilla.redhat.com/show_bug.cgi?id=1006412 (or just mkdir /var/lock/subsys)&lt;br /&gt;
&lt;br /&gt;
If you want to e.g. redeploy Overcloud for testing purposes, you will need to source following &lt;br /&gt;
 source tripleo-incubator/scripts/devtest_variables.sh&lt;br /&gt;
 source ./tripleo-undercloud-passwords&lt;br /&gt;
 source ./tripleo-incubator/undercloudrc&lt;br /&gt;
 source $TRIPLEO_ROOT/tripleo-incubator/cloudprompt&lt;br /&gt;
 source ~/.devtestrc&lt;br /&gt;
&lt;br /&gt;
Build the block storage image&lt;br /&gt;
 $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST \&lt;br /&gt;
       -a $NODE_ARCH -o $TRIPLEO_ROOT/overcloud-cinder-volume hosts \&lt;br /&gt;
       baremetal cinder-volume neutron-openvswitch-agent os-collect-config heat-cfntools pip-cache \&lt;br /&gt;
       dhcp-all-interfaces $DIB_COMMON_ELEMENTS $OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS 2&amp;gt;&amp;amp;1 | \&lt;br /&gt;
       tee $TRIPLEO_ROOT/dib-overcloud-cinder-volume.log&lt;br /&gt;
&lt;br /&gt;
  load-image overcloud-cinder-volume.qcow2&lt;br /&gt;
&lt;br /&gt;
To be able to deploy object storage node, you need this&lt;br /&gt;
 $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST \&lt;br /&gt;
        -a $NODE_ARCH -o $TRIPLEO_ROOT/overcloud-swift-storage hosts \&lt;br /&gt;
        baremetal swift-storage neutron-openvswitch-agent os-collect-config \&lt;br /&gt;
        dhcp-all-interfaces $DIB_COMMON_ELEMENTS $OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS 2&amp;gt;&amp;amp;1 | \&lt;br /&gt;
        tee $TRIPLEO_ROOT/dib-overcloud-swift-storage.log&lt;br /&gt;
&lt;br /&gt;
  load-image overcloud-swift-storage.qcow2&lt;br /&gt;
&lt;br /&gt;
To list MAC's for virsh listed machines run&lt;br /&gt;
 virsh list --all&lt;br /&gt;
 virsh dumpxml baremetal_0 | grep 'mac address' | cut -d\' -f2&lt;br /&gt;
&lt;br /&gt;
At this point, your devtest environment is configured. To proceed, you need to install Tuskar, Horizon and Tuskar-UI, since they are not installed by devtest.&lt;br /&gt;
&lt;br /&gt;
=== Install Tuskar ===&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /opt/stack &amp;amp;&amp;amp; cd /opt/stack&lt;br /&gt;
 git clone https://git.openstack.org/openstack/tuskar&lt;br /&gt;
&lt;br /&gt;
Follow the instructions here to complete the install: https://github.com/openstack/tuskar/blob/master/doc/source/INSTALL.rst. Make sure that you create the initial data.&lt;br /&gt;
&lt;br /&gt;
To be able to deploy Overcloud via Tuskar, you need to delete the Overcloud created by Devtest first.&lt;br /&gt;
Go to the Undercloud machine and delete the Overcloud:&lt;br /&gt;
 ssh heat-admin@192.0.2.3&lt;br /&gt;
 sudo -i&lt;br /&gt;
 source stackrc&lt;br /&gt;
 heat stack-delete overcloud&lt;br /&gt;
&lt;br /&gt;
Devtest will also set up Tuskar endpoints, but pointing to the undercloud machine. You need them point to your machine. This can be done by deleting and readding endpoints, but it's quicker to just modify them in mysql:&lt;br /&gt;
 ssh heat-admin@192.0.2.3&lt;br /&gt;
 sudo -i&lt;br /&gt;
 mysql -u keystone -p keystone&lt;br /&gt;
 Enter password: unset&lt;br /&gt;
 update endpoint, service set endpoint.url=&amp;quot;http://&amp;lt;yourlocalip&amp;gt;:8585/&amp;quot; where service.type=&amp;quot;management&amp;quot; and endpoint.service_id=service.id;&lt;br /&gt;
&lt;br /&gt;
Finally, you'll want to set up an initial plan, some roles, and link the two:&lt;br /&gt;
&lt;br /&gt;
 tuskar-load-roles --config-file etc/tuskar/tuskar.conf sample-hot-templates/&lt;br /&gt;
&lt;br /&gt;
=== Add Horizon and Tuskar-UI ===&lt;br /&gt;
Install and configure Horizon and Tuskar-UI using the instructions at: http://tuskar-ui.readthedocs.org/en/latest/install.html.  Make sure to clone the horizon and tuskar-ui repositories in /opt/stack.&lt;br /&gt;
&lt;br /&gt;
.Afterwards, copy /root/stackrc from the undercloud to the lab machine, change the OS_AUTH_URL to point to the undercloud, and source it:&lt;br /&gt;
 ssh heat-admin@192.0.2.3 &amp;quot;sudo -i cat /root/stackrc&amp;quot; &amp;gt; /root/stackrc&lt;br /&gt;
 sed -i 's/localhost:5000/192.0.2.3:5000/' /root/stackrc&lt;br /&gt;
 source /root/stackrc&lt;br /&gt;
&lt;br /&gt;
Configure OPENSTACK_HOST in horizon settings to point to the undercloud machine:&lt;br /&gt;
 sed -i 's/OPENSTACK_HOST = &amp;quot;127.0.0.1&amp;quot;/OPENSTACK_HOST = &amp;quot;192.0.2.3&amp;quot;/' /opt/stack/horizon/openstack_dashboard/local/local_settings.py&lt;br /&gt;
&lt;br /&gt;
Start the server:&lt;br /&gt;
 tools/with_venv.sh ./manage.py runserver 0.0.0.0:8111&lt;br /&gt;
&lt;br /&gt;
Now you can see the UI from your browser (you can find credentials for dashboard in undercloud machine in /root/stackrc):&lt;br /&gt;
 lab-machine:8111&lt;br /&gt;
&lt;br /&gt;
If you want to develop locally, you need only to mount the remote folder containing the code, in your local file system:&lt;br /&gt;
 yum install -y sshfs &amp;amp;&amp;amp; mkdir -p ~/devtest&lt;br /&gt;
 sshfs root@lab-machine:/opt/stack/ ~/devtest&lt;br /&gt;
&lt;br /&gt;
=== Script for installing Tuskar and Tuskar UI ===&lt;br /&gt;
There is a script to automatically do previous two steps: https://gist.github.com/Divius/9525147. It clones to the current directory, uses sudo to do privileged operations, so it can be used by non-root. The only requirement is that stackrc file is in the current directory. Also note that the script is mostly unsupported and can become outdated.&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=51921</id>
		<title>Tuskar/UsageGuide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=51921"/>
				<updated>2014-05-09T20:54:46Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Specifiy Deployment Parameters and Options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This guide details the usage of the Tuskar UI.  It assumes that you have already installed Tuskar and the Tuskar UI.  If you have not, please follow one of the [[TripleO/Tuskar#Getting_Started|Installation Guides]] first.&lt;br /&gt;
&lt;br /&gt;
A [https://www.youtube.com/watch?v=-6whFIqCqLU narrated video] is also available.&lt;br /&gt;
&lt;br /&gt;
== Register Nodes ==&lt;br /&gt;
&lt;br /&gt;
Start by logging into the Tuskar UI.  The Tuskar UI is designed as a plugin to Horizon.  The recommended installation will eliminate the standard 'Project' and 'Admin' dashboard, leaving only the Tuskar UI's 'Infrastructure' dashboard.&lt;br /&gt;
&lt;br /&gt;
First you'll need to register some nodes.  Click on the Nodes tab, then on the &amp;quot;Register Nodes&amp;quot; button in the upper-right corner.&lt;br /&gt;
&lt;br /&gt;
You'll see a form that asks you to input your nodes' details.  At a minimum you must specify the NIC mac address, the number of CPUs, the memory, and the local disk.  You can enter information for multiple nodes by clicking on the &amp;quot;Add Node&amp;quot; link.  Once done, click &amp;quot;Register Nodes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If the nodes are registered successfully, you'll be back at the Nodes index page; only now there will be a count of Free Nodes.  Before using these nodes for a cloud deployment, you'll want to wait a minute for nova to register them for use as a hypervisor.&lt;br /&gt;
&lt;br /&gt;
== Create Flavors ==&lt;br /&gt;
&lt;br /&gt;
The next step is to create flavors.  Flavors are used so that your OpenStack Deployment knows which Nodes are appropriate for use.&lt;br /&gt;
&lt;br /&gt;
Click on the Flavors tab.  If no flavors exist, click on Flavor Suggestions.  Here, you'll see suggested flavor specifications that match the nodes created in the previous step.  To create them, simply click on the 'Create' button, and you'll be taken to a pre-filled flavor creation form.  If you are satisfied with the form values, click on 'Create Flavor'.  Make sure the &amp;quot;Deploy Kernel Image&amp;quot; and &amp;quot;Deploy Ramdisk Image&amp;quot; are set to the bm-deploy-kernel and bm-deploy-ramdisk images.&lt;br /&gt;
&lt;br /&gt;
Now if you select the 'Flavor' tab, you'll see that your flavor has been created.&lt;br /&gt;
&lt;br /&gt;
== Associate Flavors with Roles ==&lt;br /&gt;
&lt;br /&gt;
Now that your nodes and flavors have been created, we can get started on creating the actual OpenStack Deployment.  Click on that tab.&lt;br /&gt;
&lt;br /&gt;
You'll see a deployment creation workflow, beginning with a list of pre-defined roles.  However before specifying the node count for each role, you must specify the flavor that each role will use to match appropriate nodes.  To do this for each role, click on 'Add a flavor'.&lt;br /&gt;
&lt;br /&gt;
An 'Edit Deployment Role' form will pop up.  As these are default roles, the only value that can be modified is Flavor.  Select your desired flavor and click on 'Apply Changes'.&lt;br /&gt;
&lt;br /&gt;
== Specify Deployment Parameters and Options ==&lt;br /&gt;
&lt;br /&gt;
Now it's time to specify the parameters and options for your Deployment.  First, select the number of nodes you wish deployed in each role.  Note that the Controller role must be exactly 1. &lt;br /&gt;
&lt;br /&gt;
Afterwards, click on the Configuration tab.  Here you can specify various configuration options for your deployment.  You can also choose not to modify any of these values; Tuskar will use appropriate defaults. You'll need to set the NovaComputeLibvirtType flag to the correct option for your environment - probably kvm for Baremetal deployments and qemu for virtualized ones.&lt;br /&gt;
&lt;br /&gt;
== Deployment ==&lt;br /&gt;
&lt;br /&gt;
Once you are satisfied with your deployment choices, click on the 'Deploy' button.  If everything goes as expected, you'll see a deployment progress bar, and here your watch begins.  &lt;br /&gt;
&lt;br /&gt;
As nodes are provisioned with the appropriate image for a role, this page will refresh with updated information.  You can also click on the 'Log' tab to see a log of events that Heat is undertaking while creating the deployment stack.&lt;br /&gt;
&lt;br /&gt;
== Post-Deployment ==&lt;br /&gt;
&lt;br /&gt;
For the installation via Devtest, the initialization code can be found in Overcloud deployment&lt;br /&gt;
docs: http://docs.openstack.org/developer/tripleo-incubator/devtest_overcloud.html starting with step 13&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=51920</id>
		<title>Tuskar/UsageGuide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=51920"/>
				<updated>2014-05-09T20:54:33Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Post-Deployment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This guide details the usage of the Tuskar UI.  It assumes that you have already installed Tuskar and the Tuskar UI.  If you have not, please follow one of the [[TripleO/Tuskar#Getting_Started|Installation Guides]] first.&lt;br /&gt;
&lt;br /&gt;
A [https://www.youtube.com/watch?v=-6whFIqCqLU narrated video] is also available.&lt;br /&gt;
&lt;br /&gt;
== Register Nodes ==&lt;br /&gt;
&lt;br /&gt;
Start by logging into the Tuskar UI.  The Tuskar UI is designed as a plugin to Horizon.  The recommended installation will eliminate the standard 'Project' and 'Admin' dashboard, leaving only the Tuskar UI's 'Infrastructure' dashboard.&lt;br /&gt;
&lt;br /&gt;
First you'll need to register some nodes.  Click on the Nodes tab, then on the &amp;quot;Register Nodes&amp;quot; button in the upper-right corner.&lt;br /&gt;
&lt;br /&gt;
You'll see a form that asks you to input your nodes' details.  At a minimum you must specify the NIC mac address, the number of CPUs, the memory, and the local disk.  You can enter information for multiple nodes by clicking on the &amp;quot;Add Node&amp;quot; link.  Once done, click &amp;quot;Register Nodes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If the nodes are registered successfully, you'll be back at the Nodes index page; only now there will be a count of Free Nodes.  Before using these nodes for a cloud deployment, you'll want to wait a minute for nova to register them for use as a hypervisor.&lt;br /&gt;
&lt;br /&gt;
== Create Flavors ==&lt;br /&gt;
&lt;br /&gt;
The next step is to create flavors.  Flavors are used so that your OpenStack Deployment knows which Nodes are appropriate for use.&lt;br /&gt;
&lt;br /&gt;
Click on the Flavors tab.  If no flavors exist, click on Flavor Suggestions.  Here, you'll see suggested flavor specifications that match the nodes created in the previous step.  To create them, simply click on the 'Create' button, and you'll be taken to a pre-filled flavor creation form.  If you are satisfied with the form values, click on 'Create Flavor'.  Make sure the &amp;quot;Deploy Kernel Image&amp;quot; and &amp;quot;Deploy Ramdisk Image&amp;quot; are set to the bm-deploy-kernel and bm-deploy-ramdisk images.&lt;br /&gt;
&lt;br /&gt;
Now if you select the 'Flavor' tab, you'll see that your flavor has been created.&lt;br /&gt;
&lt;br /&gt;
== Associate Flavors with Roles ==&lt;br /&gt;
&lt;br /&gt;
Now that your nodes and flavors have been created, we can get started on creating the actual OpenStack Deployment.  Click on that tab.&lt;br /&gt;
&lt;br /&gt;
You'll see a deployment creation workflow, beginning with a list of pre-defined roles.  However before specifying the node count for each role, you must specify the flavor that each role will use to match appropriate nodes.  To do this for each role, click on 'Add a flavor'.&lt;br /&gt;
&lt;br /&gt;
An 'Edit Deployment Role' form will pop up.  As these are default roles, the only value that can be modified is Flavor.  Select your desired flavor and click on 'Apply Changes'.&lt;br /&gt;
&lt;br /&gt;
== Specifiy Deployment Parameters and Options ==&lt;br /&gt;
&lt;br /&gt;
Now it's time to specify the parameters and options for your Deployment.  First, select the number of nodes you wish deployed in each role.  Note that the Controller role must be exactly 1. &lt;br /&gt;
&lt;br /&gt;
Afterwards, click on the Configuration tab.  Here you can specify various configuration options for your deployment.  You can also choose not to modify any of these values; Tuskar will use appropriate defaults. You'll need to set the NovaComputeLibvirtType flag to the correct option for your environment - probably kvm for Baremetal deployments and qemu for virtualized ones.&lt;br /&gt;
&lt;br /&gt;
== Deployment ==&lt;br /&gt;
&lt;br /&gt;
Once you are satisfied with your deployment choices, click on the 'Deploy' button.  If everything goes as expected, you'll see a deployment progress bar, and here your watch begins.  &lt;br /&gt;
&lt;br /&gt;
As nodes are provisioned with the appropriate image for a role, this page will refresh with updated information.  You can also click on the 'Log' tab to see a log of events that Heat is undertaking while creating the deployment stack.&lt;br /&gt;
&lt;br /&gt;
== Post-Deployment ==&lt;br /&gt;
&lt;br /&gt;
For the installation via Devtest, the initialization code can be found in Overcloud deployment&lt;br /&gt;
docs: http://docs.openstack.org/developer/tripleo-incubator/devtest_overcloud.html starting with step 13&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=51918</id>
		<title>Tuskar/UsageGuide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=51918"/>
				<updated>2014-05-09T18:59:31Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Register Nodes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This guide details the usage of the Tuskar UI.  It assumes that you have already installed Tuskar and the Tuskar UI.  If you have not, please follow one of the [[TripleO/Tuskar#Getting_Started|Installation Guides]] first.&lt;br /&gt;
&lt;br /&gt;
A [https://www.youtube.com/watch?v=-6whFIqCqLU narrated video] is also available.&lt;br /&gt;
&lt;br /&gt;
== Register Nodes ==&lt;br /&gt;
&lt;br /&gt;
Start by logging into the Tuskar UI.  The Tuskar UI is designed as a plugin to Horizon.  The recommended installation will eliminate the standard 'Project' and 'Admin' dashboard, leaving only the Tuskar UI's 'Infrastructure' dashboard.&lt;br /&gt;
&lt;br /&gt;
First you'll need to register some nodes.  Click on the Nodes tab, then on the &amp;quot;Register Nodes&amp;quot; button in the upper-right corner.&lt;br /&gt;
&lt;br /&gt;
You'll see a form that asks you to input your nodes' details.  At a minimum you must specify the NIC mac address, the number of CPUs, the memory, and the local disk.  You can enter information for multiple nodes by clicking on the &amp;quot;Add Node&amp;quot; link.  Once done, click &amp;quot;Register Nodes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If the nodes are registered successfully, you'll be back at the Nodes index page; only now there will be a count of Free Nodes.  Before using these nodes for a cloud deployment, you'll want to wait a minute for nova to register them for use as a hypervisor.&lt;br /&gt;
&lt;br /&gt;
== Create Flavors ==&lt;br /&gt;
&lt;br /&gt;
The next step is to create flavors.  Flavors are used so that your OpenStack Deployment knows which Nodes are appropriate for use.&lt;br /&gt;
&lt;br /&gt;
Click on the Flavors tab.  If no flavors exist, click on Flavor Suggestions.  Here, you'll see suggested flavor specifications that match the nodes created in the previous step.  To create them, simply click on the 'Create' button, and you'll be taken to a pre-filled flavor creation form.  If you are satisfied with the form values, click on 'Create Flavor'.  Make sure the &amp;quot;Deploy Kernel Image&amp;quot; and &amp;quot;Deploy Ramdisk Image&amp;quot; are set to the bm-deploy-kernel and bm-deploy-ramdisk images.&lt;br /&gt;
&lt;br /&gt;
Now if you select the 'Flavor' tab, you'll see that your flavor has been created.&lt;br /&gt;
&lt;br /&gt;
== Associate Flavors with Roles ==&lt;br /&gt;
&lt;br /&gt;
Now that your nodes and flavors have been created, we can get started on creating the actual OpenStack Deployment.  Click on that tab.&lt;br /&gt;
&lt;br /&gt;
You'll see a deployment creation workflow, beginning with a list of pre-defined roles.  However before specifying the node count for each role, you must specify the flavor that each role will use to match appropriate nodes.  To do this for each role, click on 'Add a flavor'.&lt;br /&gt;
&lt;br /&gt;
An 'Edit Deployment Role' form will pop up.  As these are default roles, the only value that can be modified is Flavor.  Select your desired flavor and click on 'Apply Changes'.&lt;br /&gt;
&lt;br /&gt;
== Specifiy Deployment Parameters and Options ==&lt;br /&gt;
&lt;br /&gt;
Now it's time to specify the parameters and options for your Deployment.  First, select the number of nodes you wish deployed in each role.  Note that the Controller role must be exactly 1. &lt;br /&gt;
&lt;br /&gt;
Afterwards, click on the Configuration tab.  Here you can specify various configuration options for your deployment.  You can also choose not to modify any of these values; Tuskar will use appropriate defaults. You'll need to set the NovaComputeLibvirtType flag to the correct option for your environment - probably kvm for Baremetal deployments and qemu for virtualized ones.&lt;br /&gt;
&lt;br /&gt;
== Deployment ==&lt;br /&gt;
&lt;br /&gt;
Once you are satisfied with your deployment choices, click on the 'Deploy' button.  If everything goes as expected, you'll see a deployment progress bar, and here your watch begins.  &lt;br /&gt;
&lt;br /&gt;
As nodes are provisioned with the appropriate image for a role, this page will refresh with updated information.  You can also click on the 'Log' tab to see a log of events that Heat is undertaking while creating the deployment stack.&lt;br /&gt;
&lt;br /&gt;
== Post-Deployment ==&lt;br /&gt;
&lt;br /&gt;
For the installation via Devtest, the initialization code can be found in Overcloud deployment&lt;br /&gt;
docs: http://docs.openstack.org/developer/tripleo-incubator/devtest_overcloud.html starting with step 13&lt;br /&gt;
&lt;br /&gt;
For the installation via Instack, you can find the code for Overcloud Deployment here:&lt;br /&gt;
https://github.com/agroup/instack-undercloud/blob/master/scripts/instack-deploy-overcloud-tuskarcli&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning/TemplateBackend&amp;diff=51565</id>
		<title>TripleO/TuskarJunoPlanning/TemplateBackend</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning/TemplateBackend&amp;diff=51565"/>
				<updated>2014-05-07T15:00:40Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to describe a change in architecture to use Heat templates and environments as the data store for Tuskar. &lt;br /&gt;
&lt;br /&gt;
This design assumes the following:&lt;br /&gt;
&lt;br /&gt;
* completion of the Juno changes to the TripleO Heat templates to use provider resources.&lt;br /&gt;
* images are created outside of Tuskar&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Format =&lt;br /&gt;
&lt;br /&gt;
There are two main types of information that are needed when configuring an overcloud:&lt;br /&gt;
* The selection and count of what services will be run in the cloud.&lt;br /&gt;
* The configuration for those services.&lt;br /&gt;
&lt;br /&gt;
The Icehouse release for Tuskar uses a database to store both pieces of information. For Juno, the goal is to move that information directly into the Heat templates themselves. This will be accomplished using two recently added features of Heat: provider resources and environments. Provider resources allow for fine-grained stacks to be defined and built up into a larger Heat stack. Environments are a way to capture the selection of which provider resources to use and their configuration values.&lt;br /&gt;
&lt;br /&gt;
Using these features, Tuskar will be able to choose a subset of the TripleO Heat templates to include in the overcloud. Those templates remain static and unedited by Tuskar. Tuskar is then responsible for generating the overall cloud template that includes each of the provider resources and the environment file for saving the configuration.&lt;br /&gt;
&lt;br /&gt;
The following series of diagrams shows the relationships between the provider resource templates and the Tuskar-generated files that will use them for configuring a cloud.  ''Note: Discussion on where these files are stored is elsewhere on this page; what follows is a description of the interplay between the TripleO templates and the Tuskar-generated files.''&lt;br /&gt;
&lt;br /&gt;
== Step 1: Create a Cloud ==&lt;br /&gt;
&lt;br /&gt;
[[File:Generated-1.png]]&lt;br /&gt;
&lt;br /&gt;
When a cloud is initially created in Tuskar, it is comprised of two files: the deployment plan which is the overarching Heat template that configures the cloud's stack and the environment file which contains the provider resource mappings and cloud's configuration values. ''Note: The names of these files as depicted in the diagram are not final.''&lt;br /&gt;
&lt;br /&gt;
The files listed on the left are provider resource templates from TripleO. They are not edited by Tuskar and are used as building blocks for the cloud's stack.&lt;br /&gt;
&lt;br /&gt;
== Step 2: Select Roles ==&lt;br /&gt;
&lt;br /&gt;
[[File:Generated-2.png]]&lt;br /&gt;
&lt;br /&gt;
The Icehouse release of Tuskar uses the term &amp;quot;role&amp;quot; to describe an individual function of the cloud. For the purposes of this discussion, they are considered to map 1:1 with provider resource template files. ''Note: This is likely not 100% accurate but is a sufficient abstraction for now.''&lt;br /&gt;
&lt;br /&gt;
In the diagram above, the user has selected both alpha and beta for inclusion in the cloud. At this point, Tuskar makes the following changes to its generated files:&lt;br /&gt;
* A reference to the template file is added to the environment. The example simply names them X and Y; a better naming scheme will be determined in the future. More details on what this reference looks like are discussed below.&lt;br /&gt;
* A resource for each provider resource is added to the plan template.&lt;br /&gt;
&lt;br /&gt;
== Step 3: Configuration Consolidation ==&lt;br /&gt;
&lt;br /&gt;
[[File:Generated-3.png]]&lt;br /&gt;
&lt;br /&gt;
The plan template needs to expose the configurable parameters of each provider resource. The example in the diagram is intentionally simplistic; there is no overlap in parameter names between provider resources. Resolving conflicts is potentially complicated. There are a few scenarios to consider:&lt;br /&gt;
* The same value should be used across multiple resources. For instance, if both alpha and beta expose a value called &amp;quot;key_name&amp;quot; for the SSH keypair and the same keypair should be used for each resource.&lt;br /&gt;
* Multiple provider resources use the same name for a parameter but will need separate values. For instance, if alpha and beta both simply use &amp;quot;image_id&amp;quot;, however the likely usage is that they will be created from different images.&lt;br /&gt;
* A single provider resource, used multiple times and configured differently in each case. For instance, two uses of the provider resource that use a different flavor.&lt;br /&gt;
&lt;br /&gt;
Further discussion on possible solutions can be found in the Open Questions section.&lt;br /&gt;
&lt;br /&gt;
== Step 4: Configuration Mapping ==&lt;br /&gt;
&lt;br /&gt;
[[File:Generated-4.png]]&lt;br /&gt;
&lt;br /&gt;
In addition to consolidating the configurable parameters, the generated plan template needs to map the parameters to the appropriate resources. How much work needs to be done here is contingent on how the consolidation takes place in step 3. If there is a renaming of the values, they will need to be properly mapped here. If the names are taken directly from the provider resource templates, this step can be omitted as Heat will automatically pass the parameters in a parent stack to its nested stacks.&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
[[File:Generated-end.png]]&lt;br /&gt;
&lt;br /&gt;
The diagram above is a summary of the steps necessary for Tuskar to generate an environment and overall plan for a cloud.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Storage =&lt;br /&gt;
&lt;br /&gt;
== Provider Resource Templates ==&lt;br /&gt;
&lt;br /&gt;
There are two approaches being discussed with regard to how to store the provider templates and their inclusion in a deployment plan. Keep in mind that provider resource templates refers to both the TripleO Heat templates as well as any custom Heat templates uploaded by a user.&lt;br /&gt;
&lt;br /&gt;
The approaches that follow are conceptual. Notes on particular implementations will be provided, but the purpose of the following sections is to focus on the desired approach. Tuskar should be written that the actual implementation backend be pluggable to support integration with existing processes (for instance, the ability to use a git-based backend for CI systems).&lt;br /&gt;
&lt;br /&gt;
When considering these approaches, the following use cases should be taken into account:&lt;br /&gt;
* Initial creation of the cloud and selection of which provider resources to include&lt;br /&gt;
* Making changes to a provider resource template (either by the user or through an upgrade of Tuskar) and how those changes are propagated&lt;br /&gt;
* Migrating changes from one cloud to another, such as in a promotion workflow (e.g. testing in a development cloud and then migrating the new templates to a QE cloud)&lt;br /&gt;
&lt;br /&gt;
In both cases, the deployment plan constitutes multiple files (at very least, an environment file and an overall Heat template). Where and how that directory of files is stored should be comparable for both of these approaches.&lt;br /&gt;
&lt;br /&gt;
=== Referenced ===&lt;br /&gt;
&lt;br /&gt;
[[File:Storage-ref.png]]&lt;br /&gt;
&lt;br /&gt;
This approach focuses around a global repository of hosted provider resource templates. Each template is immutable and versioned, which allows templates to be changed but the changes not made live in the clouds until the user explicitly wishes them to be.&lt;br /&gt;
&lt;br /&gt;
The environment file references a specific provider template (including its version) in the resource_registry section. The simplest solution is for Tuskar to use the Heat client libraries for making stack requests, which currently support HTTP URLs.&lt;br /&gt;
&lt;br /&gt;
One of the drawbacks to using strict version numbering is that Heat templates do not have the concept of a version. One approach is to assume the version information is in the URL for the referenced template.&lt;br /&gt;
&lt;br /&gt;
Pros:&lt;br /&gt;
* Strong notion of template versioning and accountability for changes&lt;br /&gt;
* Easy mechanism for determining the differences between two templates (for example, in the event that a template is changed globally and we need to see which clouds would be affected)&lt;br /&gt;
&lt;br /&gt;
Cons:&lt;br /&gt;
* Places more requirements on the storage backend, such as the ability to expose multiple versions of a template with unique, static URLs&lt;br /&gt;
* Long term will likely need APIs for culling old versions that takes into account if they are in use&lt;br /&gt;
&lt;br /&gt;
=== Copied ===&lt;br /&gt;
&lt;br /&gt;
[[File:Storage-copy.png]]&lt;br /&gt;
&lt;br /&gt;
This approach stores the entire contents of the deployment plan together. When the user elects to include a provider resource in a cloud, a copy is made of the template and placed in the plan. Changes can then be made on a per cloud basis.&lt;br /&gt;
&lt;br /&gt;
Pros:&lt;br /&gt;
* Less overhead involved in making custom changes for a particular cloud; no need for a new version, the changes are made directly in the cloud&lt;br /&gt;
* Simpler workflow around deleting the original provider templates&lt;br /&gt;
&lt;br /&gt;
Cons:&lt;br /&gt;
* More complicated to determine the difference between two provider templates&lt;br /&gt;
&lt;br /&gt;
== Deployment Plan ==&lt;br /&gt;
&lt;br /&gt;
As previous stated, the deployment plan consists of multiple files. Again, Tuskar should be written in such a way that the backend storage for these files is configurable.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Tuskar APIs =&lt;br /&gt;
&lt;br /&gt;
Below are some thoughts on the behavior of the Tuskar APIs. The intent is not to be full fledged REST API documentation (however the grouping of the calls is similar to how REST APIs would be structured) but rather a conceptual discussion of what each call's implementation needs to take into consideration.&lt;br /&gt;
&lt;br /&gt;
== Cloud Collection ==&lt;br /&gt;
&lt;br /&gt;
Example URL: &amp;lt;code&amp;gt;/clouds/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create: Creates a new cloud to be managed by Tuskar. This will create the empty environment and plan templates, as well as creating the empty stack in Heat.&lt;br /&gt;
&lt;br /&gt;
List: Returns a list of all defined clouds. The format of what is returned needs to be determined and may be as simple as a list of names or enhanced include its current configuration.&lt;br /&gt;
&lt;br /&gt;
== Individual Cloud ==&lt;br /&gt;
&lt;br /&gt;
Example URL: &amp;lt;code&amp;gt;/clouds/&amp;lt;id&amp;gt;/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get: Retrieve the full details of the specified cloud. The format of what is returned need s to be determined, but should at least include a list of all of the roles (and their versions) and the full list of configuration values for the cloud.&lt;br /&gt;
&lt;br /&gt;
Update: Adds/removes/changes values for the configuration parameters found in the environment file. This should not trigger a call to update Heat, allowing the user to stage and review multiple changes before making them live.&lt;br /&gt;
&lt;br /&gt;
Delete: Deletes the given cloud's deployment plan from Tuskar and the corresponding stack in Heat.&lt;br /&gt;
&lt;br /&gt;
Deploy: Trigger the current state of the cloud to be deployed/updated in Heat. ''Note: This is another case where the APIs are more conceptual than literal; from a REST point of view we'll need to figure out the right approach.''&lt;br /&gt;
&lt;br /&gt;
== Cloud Roles Collection ==&lt;br /&gt;
&lt;br /&gt;
Example URL: &amp;lt;code&amp;gt;/clouds/&amp;lt;cloud_id&amp;gt;/roles/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create: Adds an entry for the role to the cloud's environment file and consolidates the stack's configuration parameters. Additional steps may be taken depending on the storage model discussion above.&lt;br /&gt;
&lt;br /&gt;
List: Return a list of role names, versions, and UUIDs that are present in the cloud.&lt;br /&gt;
&lt;br /&gt;
== Individual Cloud Role ==&lt;br /&gt;
&lt;br /&gt;
Example URL: &amp;lt;code&amp;gt;/clouds/&amp;lt;cloud_id&amp;gt;/roles/&amp;lt;role_uuid&amp;gt;/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Delete: Removes the given role from the specified cloud. The configuration parameter consolidation will need to occur to remove the role's parameters from both the overall template and the parameter values in the environment file.&lt;br /&gt;
&lt;br /&gt;
== Roles ==&lt;br /&gt;
&lt;br /&gt;
Example URL: &amp;lt;code&amp;gt;/roles/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
List: List the names and versions of all roles known to Tuskar.&lt;br /&gt;
&lt;br /&gt;
''Note: Create/Update/Delete: Future functionality for managing custom roles. For the immediate future, a Tuskar installation step will take care of getting the TripleO templates in the correct location.''&lt;br /&gt;
&lt;br /&gt;
== Individual Role ==&lt;br /&gt;
&lt;br /&gt;
Example URL: &amp;lt;code&amp;gt;/roles/&amp;lt;role_name_and_version/&amp;gt;/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get: Retrieve details of the specific role. This can either be the template directly or a parsed version that simply describes it's possible configuration parameters.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Open Questions =&lt;br /&gt;
&lt;br /&gt;
== Post-install Configuration Steps ==&lt;br /&gt;
&lt;br /&gt;
The biggest problem with this approach is that not everything is done in the Heat templates themselves. For TripleO specifically, the os-cloud-config project exists to perform these post-Heat configuration of the cloud. In working with purely the provider resource templates, these steps are not represented.&lt;br /&gt;
&lt;br /&gt;
== Parameter Consolidation ==&lt;br /&gt;
&lt;br /&gt;
This was touched on earlier, but there are a number of things that need to be taken into account when arbitrarily selecting provider resources:&lt;br /&gt;
* In the event that two provider resources request the same parameter, there is a question of whether or not it should be the same across the stack or unique for each resource.&lt;br /&gt;
* There needs to be a mechanism for differentiating between two provider resources that define the same parameter. This should also take into consideration the possibility of using the same provider resource multiple times in a stack. For instance, having multiple the same resource deployed with different flavors.&lt;br /&gt;
* This mechanism should provide some form of UI clue as to their grouping/relationship.&lt;br /&gt;
&lt;br /&gt;
== Other Cloud Data ==&lt;br /&gt;
&lt;br /&gt;
The deployment plan already consists of two files: the environment and the overall Heat template. Since Tuskar is already storing a directory of files for a given cloud, it would be simple to add a Tuskar-specific file that contains extra information. This may be necessary for Tuskar to track a dirty bit that indicates if any changes have been made to the cloud but not yet sent to Heat to be made live.&lt;br /&gt;
&lt;br /&gt;
== Display Name ==&lt;br /&gt;
&lt;br /&gt;
A minor issue surrounds the fact that Heat templates have a description but no user-frienedly name. When displaying a list of possible roles to select, there is currently no simple way to present a user-friendly list.&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning/TemplateBackend&amp;diff=51564</id>
		<title>TripleO/TuskarJunoPlanning/TemplateBackend</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning/TemplateBackend&amp;diff=51564"/>
				<updated>2014-05-07T15:00:15Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to describe a change in architecture to use Heat templates and environments as the data store for Tuskar. &lt;br /&gt;
&lt;br /&gt;
This design assumes the following:&lt;br /&gt;
&lt;br /&gt;
   * completion of the Juno changes to the TripleO Heat templates to use provider resources.&lt;br /&gt;
   * images are created outside of Tuskar&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Format =&lt;br /&gt;
&lt;br /&gt;
There are two main types of information that are needed when configuring an overcloud:&lt;br /&gt;
* The selection and count of what services will be run in the cloud.&lt;br /&gt;
* The configuration for those services.&lt;br /&gt;
&lt;br /&gt;
The Icehouse release for Tuskar uses a database to store both pieces of information. For Juno, the goal is to move that information directly into the Heat templates themselves. This will be accomplished using two recently added features of Heat: provider resources and environments. Provider resources allow for fine-grained stacks to be defined and built up into a larger Heat stack. Environments are a way to capture the selection of which provider resources to use and their configuration values.&lt;br /&gt;
&lt;br /&gt;
Using these features, Tuskar will be able to choose a subset of the TripleO Heat templates to include in the overcloud. Those templates remain static and unedited by Tuskar. Tuskar is then responsible for generating the overall cloud template that includes each of the provider resources and the environment file for saving the configuration.&lt;br /&gt;
&lt;br /&gt;
The following series of diagrams shows the relationships between the provider resource templates and the Tuskar-generated files that will use them for configuring a cloud.  ''Note: Discussion on where these files are stored is elsewhere on this page; what follows is a description of the interplay between the TripleO templates and the Tuskar-generated files.''&lt;br /&gt;
&lt;br /&gt;
== Step 1: Create a Cloud ==&lt;br /&gt;
&lt;br /&gt;
[[File:Generated-1.png]]&lt;br /&gt;
&lt;br /&gt;
When a cloud is initially created in Tuskar, it is comprised of two files: the deployment plan which is the overarching Heat template that configures the cloud's stack and the environment file which contains the provider resource mappings and cloud's configuration values. ''Note: The names of these files as depicted in the diagram are not final.''&lt;br /&gt;
&lt;br /&gt;
The files listed on the left are provider resource templates from TripleO. They are not edited by Tuskar and are used as building blocks for the cloud's stack.&lt;br /&gt;
&lt;br /&gt;
== Step 2: Select Roles ==&lt;br /&gt;
&lt;br /&gt;
[[File:Generated-2.png]]&lt;br /&gt;
&lt;br /&gt;
The Icehouse release of Tuskar uses the term &amp;quot;role&amp;quot; to describe an individual function of the cloud. For the purposes of this discussion, they are considered to map 1:1 with provider resource template files. ''Note: This is likely not 100% accurate but is a sufficient abstraction for now.''&lt;br /&gt;
&lt;br /&gt;
In the diagram above, the user has selected both alpha and beta for inclusion in the cloud. At this point, Tuskar makes the following changes to its generated files:&lt;br /&gt;
* A reference to the template file is added to the environment. The example simply names them X and Y; a better naming scheme will be determined in the future. More details on what this reference looks like are discussed below.&lt;br /&gt;
* A resource for each provider resource is added to the plan template.&lt;br /&gt;
&lt;br /&gt;
== Step 3: Configuration Consolidation ==&lt;br /&gt;
&lt;br /&gt;
[[File:Generated-3.png]]&lt;br /&gt;
&lt;br /&gt;
The plan template needs to expose the configurable parameters of each provider resource. The example in the diagram is intentionally simplistic; there is no overlap in parameter names between provider resources. Resolving conflicts is potentially complicated. There are a few scenarios to consider:&lt;br /&gt;
* The same value should be used across multiple resources. For instance, if both alpha and beta expose a value called &amp;quot;key_name&amp;quot; for the SSH keypair and the same keypair should be used for each resource.&lt;br /&gt;
* Multiple provider resources use the same name for a parameter but will need separate values. For instance, if alpha and beta both simply use &amp;quot;image_id&amp;quot;, however the likely usage is that they will be created from different images.&lt;br /&gt;
* A single provider resource, used multiple times and configured differently in each case. For instance, two uses of the provider resource that use a different flavor.&lt;br /&gt;
&lt;br /&gt;
Further discussion on possible solutions can be found in the Open Questions section.&lt;br /&gt;
&lt;br /&gt;
== Step 4: Configuration Mapping ==&lt;br /&gt;
&lt;br /&gt;
[[File:Generated-4.png]]&lt;br /&gt;
&lt;br /&gt;
In addition to consolidating the configurable parameters, the generated plan template needs to map the parameters to the appropriate resources. How much work needs to be done here is contingent on how the consolidation takes place in step 3. If there is a renaming of the values, they will need to be properly mapped here. If the names are taken directly from the provider resource templates, this step can be omitted as Heat will automatically pass the parameters in a parent stack to its nested stacks.&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
[[File:Generated-end.png]]&lt;br /&gt;
&lt;br /&gt;
The diagram above is a summary of the steps necessary for Tuskar to generate an environment and overall plan for a cloud.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Storage =&lt;br /&gt;
&lt;br /&gt;
== Provider Resource Templates ==&lt;br /&gt;
&lt;br /&gt;
There are two approaches being discussed with regard to how to store the provider templates and their inclusion in a deployment plan. Keep in mind that provider resource templates refers to both the TripleO Heat templates as well as any custom Heat templates uploaded by a user.&lt;br /&gt;
&lt;br /&gt;
The approaches that follow are conceptual. Notes on particular implementations will be provided, but the purpose of the following sections is to focus on the desired approach. Tuskar should be written that the actual implementation backend be pluggable to support integration with existing processes (for instance, the ability to use a git-based backend for CI systems).&lt;br /&gt;
&lt;br /&gt;
When considering these approaches, the following use cases should be taken into account:&lt;br /&gt;
* Initial creation of the cloud and selection of which provider resources to include&lt;br /&gt;
* Making changes to a provider resource template (either by the user or through an upgrade of Tuskar) and how those changes are propagated&lt;br /&gt;
* Migrating changes from one cloud to another, such as in a promotion workflow (e.g. testing in a development cloud and then migrating the new templates to a QE cloud)&lt;br /&gt;
&lt;br /&gt;
In both cases, the deployment plan constitutes multiple files (at very least, an environment file and an overall Heat template). Where and how that directory of files is stored should be comparable for both of these approaches.&lt;br /&gt;
&lt;br /&gt;
=== Referenced ===&lt;br /&gt;
&lt;br /&gt;
[[File:Storage-ref.png]]&lt;br /&gt;
&lt;br /&gt;
This approach focuses around a global repository of hosted provider resource templates. Each template is immutable and versioned, which allows templates to be changed but the changes not made live in the clouds until the user explicitly wishes them to be.&lt;br /&gt;
&lt;br /&gt;
The environment file references a specific provider template (including its version) in the resource_registry section. The simplest solution is for Tuskar to use the Heat client libraries for making stack requests, which currently support HTTP URLs.&lt;br /&gt;
&lt;br /&gt;
One of the drawbacks to using strict version numbering is that Heat templates do not have the concept of a version. One approach is to assume the version information is in the URL for the referenced template.&lt;br /&gt;
&lt;br /&gt;
Pros:&lt;br /&gt;
* Strong notion of template versioning and accountability for changes&lt;br /&gt;
* Easy mechanism for determining the differences between two templates (for example, in the event that a template is changed globally and we need to see which clouds would be affected)&lt;br /&gt;
&lt;br /&gt;
Cons:&lt;br /&gt;
* Places more requirements on the storage backend, such as the ability to expose multiple versions of a template with unique, static URLs&lt;br /&gt;
* Long term will likely need APIs for culling old versions that takes into account if they are in use&lt;br /&gt;
&lt;br /&gt;
=== Copied ===&lt;br /&gt;
&lt;br /&gt;
[[File:Storage-copy.png]]&lt;br /&gt;
&lt;br /&gt;
This approach stores the entire contents of the deployment plan together. When the user elects to include a provider resource in a cloud, a copy is made of the template and placed in the plan. Changes can then be made on a per cloud basis.&lt;br /&gt;
&lt;br /&gt;
Pros:&lt;br /&gt;
* Less overhead involved in making custom changes for a particular cloud; no need for a new version, the changes are made directly in the cloud&lt;br /&gt;
* Simpler workflow around deleting the original provider templates&lt;br /&gt;
&lt;br /&gt;
Cons:&lt;br /&gt;
* More complicated to determine the difference between two provider templates&lt;br /&gt;
&lt;br /&gt;
== Deployment Plan ==&lt;br /&gt;
&lt;br /&gt;
As previous stated, the deployment plan consists of multiple files. Again, Tuskar should be written in such a way that the backend storage for these files is configurable.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Tuskar APIs =&lt;br /&gt;
&lt;br /&gt;
Below are some thoughts on the behavior of the Tuskar APIs. The intent is not to be full fledged REST API documentation (however the grouping of the calls is similar to how REST APIs would be structured) but rather a conceptual discussion of what each call's implementation needs to take into consideration.&lt;br /&gt;
&lt;br /&gt;
== Cloud Collection ==&lt;br /&gt;
&lt;br /&gt;
Example URL: &amp;lt;code&amp;gt;/clouds/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create: Creates a new cloud to be managed by Tuskar. This will create the empty environment and plan templates, as well as creating the empty stack in Heat.&lt;br /&gt;
&lt;br /&gt;
List: Returns a list of all defined clouds. The format of what is returned needs to be determined and may be as simple as a list of names or enhanced include its current configuration.&lt;br /&gt;
&lt;br /&gt;
== Individual Cloud ==&lt;br /&gt;
&lt;br /&gt;
Example URL: &amp;lt;code&amp;gt;/clouds/&amp;lt;id&amp;gt;/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get: Retrieve the full details of the specified cloud. The format of what is returned need s to be determined, but should at least include a list of all of the roles (and their versions) and the full list of configuration values for the cloud.&lt;br /&gt;
&lt;br /&gt;
Update: Adds/removes/changes values for the configuration parameters found in the environment file. This should not trigger a call to update Heat, allowing the user to stage and review multiple changes before making them live.&lt;br /&gt;
&lt;br /&gt;
Delete: Deletes the given cloud's deployment plan from Tuskar and the corresponding stack in Heat.&lt;br /&gt;
&lt;br /&gt;
Deploy: Trigger the current state of the cloud to be deployed/updated in Heat. ''Note: This is another case where the APIs are more conceptual than literal; from a REST point of view we'll need to figure out the right approach.''&lt;br /&gt;
&lt;br /&gt;
== Cloud Roles Collection ==&lt;br /&gt;
&lt;br /&gt;
Example URL: &amp;lt;code&amp;gt;/clouds/&amp;lt;cloud_id&amp;gt;/roles/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create: Adds an entry for the role to the cloud's environment file and consolidates the stack's configuration parameters. Additional steps may be taken depending on the storage model discussion above.&lt;br /&gt;
&lt;br /&gt;
List: Return a list of role names, versions, and UUIDs that are present in the cloud.&lt;br /&gt;
&lt;br /&gt;
== Individual Cloud Role ==&lt;br /&gt;
&lt;br /&gt;
Example URL: &amp;lt;code&amp;gt;/clouds/&amp;lt;cloud_id&amp;gt;/roles/&amp;lt;role_uuid&amp;gt;/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Delete: Removes the given role from the specified cloud. The configuration parameter consolidation will need to occur to remove the role's parameters from both the overall template and the parameter values in the environment file.&lt;br /&gt;
&lt;br /&gt;
== Roles ==&lt;br /&gt;
&lt;br /&gt;
Example URL: &amp;lt;code&amp;gt;/roles/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
List: List the names and versions of all roles known to Tuskar.&lt;br /&gt;
&lt;br /&gt;
''Note: Create/Update/Delete: Future functionality for managing custom roles. For the immediate future, a Tuskar installation step will take care of getting the TripleO templates in the correct location.''&lt;br /&gt;
&lt;br /&gt;
== Individual Role ==&lt;br /&gt;
&lt;br /&gt;
Example URL: &amp;lt;code&amp;gt;/roles/&amp;lt;role_name_and_version/&amp;gt;/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get: Retrieve details of the specific role. This can either be the template directly or a parsed version that simply describes it's possible configuration parameters.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Open Questions =&lt;br /&gt;
&lt;br /&gt;
== Post-install Configuration Steps ==&lt;br /&gt;
&lt;br /&gt;
The biggest problem with this approach is that not everything is done in the Heat templates themselves. For TripleO specifically, the os-cloud-config project exists to perform these post-Heat configuration of the cloud. In working with purely the provider resource templates, these steps are not represented.&lt;br /&gt;
&lt;br /&gt;
== Parameter Consolidation ==&lt;br /&gt;
&lt;br /&gt;
This was touched on earlier, but there are a number of things that need to be taken into account when arbitrarily selecting provider resources:&lt;br /&gt;
* In the event that two provider resources request the same parameter, there is a question of whether or not it should be the same across the stack or unique for each resource.&lt;br /&gt;
* There needs to be a mechanism for differentiating between two provider resources that define the same parameter. This should also take into consideration the possibility of using the same provider resource multiple times in a stack. For instance, having multiple the same resource deployed with different flavors.&lt;br /&gt;
* This mechanism should provide some form of UI clue as to their grouping/relationship.&lt;br /&gt;
&lt;br /&gt;
== Other Cloud Data ==&lt;br /&gt;
&lt;br /&gt;
The deployment plan already consists of two files: the environment and the overall Heat template. Since Tuskar is already storing a directory of files for a given cloud, it would be simple to add a Tuskar-specific file that contains extra information. This may be necessary for Tuskar to track a dirty bit that indicates if any changes have been made to the cloud but not yet sent to Heat to be made live.&lt;br /&gt;
&lt;br /&gt;
== Display Name ==&lt;br /&gt;
&lt;br /&gt;
A minor issue surrounds the fact that Heat templates have a description but no user-frienedly name. When displaying a list of possible roles to select, there is currently no simple way to present a user-friendly list.&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Tuskar/Devtest&amp;diff=50721</id>
		<title>Tuskar/Devtest</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Tuskar/Devtest&amp;diff=50721"/>
				<updated>2014-04-30T20:30:05Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Add Horizon and Tuskar-UI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
Devtest is a script that creates a development environment for TripleO / Tuskar / TuskarUI development. Below you can find step-by-step instructions for setting up the environment using devtest. If you would like more information about how devtest works as well as the script itself, see the following links&lt;br /&gt;
* http://docs.openstack.org/developer/tripleo-incubator/index.html&lt;br /&gt;
* https://github.com/openstack/tripleo-incubator/blob/master/scripts/devtest.sh&lt;br /&gt;
However, following the steps below should lead to a complete functioning setup.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
=== Setup devtest ===&lt;br /&gt;
All commands (unless otherwise specified) should be run as root, in a dedicated machine you will use for TripleO development. We will call this machine &amp;quot;the lab machine&amp;quot; or &amp;quot;the lab server&amp;quot;. The setup has been tested with lab machines running Fedora 19.&lt;br /&gt;
&lt;br /&gt;
Note: You might want to move the location of the default libvirt storage pool. The default location is /var/lib/libvirt/images. Depending on your file system / partitions setup, there might not be enough space for images at this default location. To be on the safe side, you can move it to another location which has plenty of space. Below is an example how to move the default storage pool location to /home/images. If you are sure that there is enough space at the default location, you can skip this step.&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/images&lt;br /&gt;
 yum install -y libvirt&lt;br /&gt;
 service libvirtd start&lt;br /&gt;
 virsh pool-destroy default&lt;br /&gt;
 virsh pool-undefine default&lt;br /&gt;
 virsh pool-define-as default dir --target /home/images&lt;br /&gt;
 virsh pool-start default&lt;br /&gt;
 virsh pool-autostart default&lt;br /&gt;
 service libvirtd restart&lt;br /&gt;
&lt;br /&gt;
Install git and kvm. Installing kvm at this point sets the ownership of the /dev/kvm correctly (it should be owned by the root user and kvm group). If you don't do this, devtest will fail due to incorrectly set ownership of /dev/kvm.&lt;br /&gt;
 yum -y install git kvm&lt;br /&gt;
&lt;br /&gt;
Check access rights on /dev/kvm afterwards. If group is not kvm or group doesn't have rw on this file, execute the following commands and reboot:&lt;br /&gt;
 chgrp kvm /dev/kvm&lt;br /&gt;
 chmod g+rw /dev/kvm&lt;br /&gt;
&lt;br /&gt;
Create devtest configuration file:&lt;br /&gt;
 cat &amp;lt;&amp;lt;'EOF' &amp;gt; ~/.devtestrc&lt;br /&gt;
 export NODE_CPU=1 NODE_MEM=4096 NODE_DISK=60 NODE_ARCH=amd64&lt;br /&gt;
 export NODE_DIST=&amp;quot;fedora selinux-permissive&amp;quot;&lt;br /&gt;
 export DIB_RELEASE=20&lt;br /&gt;
 export UNDERCLOUD_DIB_EXTRA_ARGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export OVERCLOUD_DIB_EXTRA_ARGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export OVERCLOUD_COMPUTESCALE=1&lt;br /&gt;
 export TRIPLEO_CLEANUP=1&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
Clone the tripleo-incubator repo and run the devtest script:&lt;br /&gt;
 export TRIPLEO_ROOT=~/tripleo&lt;br /&gt;
 mkdir -p $TRIPLEO_ROOT&lt;br /&gt;
 cd $TRIPLEO_ROOT&lt;br /&gt;
 git clone https://git.openstack.org/openstack/tripleo-incubator&lt;br /&gt;
 $TRIPLEO_ROOT/tripleo-incubator/scripts/devtest.sh --trash-my-machine&lt;br /&gt;
 # wait around 2+ hours&lt;br /&gt;
 # mawagner: if openvswitch fails to start, see https://bugzilla.redhat.com/show_bug.cgi?id=1006412 (or just mkdir /var/lock/subsys)&lt;br /&gt;
&lt;br /&gt;
Create more baremetals, you can use their MAC addresses to register them from the UI later, so save the MACS somewhere &lt;br /&gt;
 source $TRIPLEO_ROOT/tripleorc&lt;br /&gt;
 source tripleo-incubator/scripts/devtest_variables.sh&lt;br /&gt;
 source ./tripleo-undercloud-passwords&lt;br /&gt;
 source ./tripleo-incubator/undercloudrc&lt;br /&gt;
 source ~/.devtestrc&lt;br /&gt;
 export SSH_USER=$(whoami)&lt;br /&gt;
 export HOSTIP=${HOSTIP:-192.168.122.1}&lt;br /&gt;
 &lt;br /&gt;
 export MORE_MACS=$(create-nodes $NODE_CPU $NODE_MEM $NODE_DISK $NODE_ARCH 4 $SSH_USER $HOSTIP $TE_DATAFILE | tr '\r\n' ' ')&lt;br /&gt;
&lt;br /&gt;
To be able to deploy block-storage role, you will need image for it in glance, here is pre-built image&lt;br /&gt;
 curl -L -O &amp;quot;https://s3-eu-west-1.amazonaws.com/somerandomname/overcloud-cinder-volume.qcow2&amp;quot;&lt;br /&gt;
 load-image overcloud-cinder-volume.qcow2&lt;br /&gt;
&lt;br /&gt;
Or build the block storage image&lt;br /&gt;
 $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST \&lt;br /&gt;
       -a $NODE_ARCH -o $TRIPLEO_ROOT/overcloud-cinder-volume hosts \&lt;br /&gt;
       baremetal cinder-volume neutron-openvswitch-agent os-collect-config heat-cfntools pip-cache \&lt;br /&gt;
       dhcp-all-interfaces $DIB_COMMON_ELEMENTS $OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS 2&amp;gt;&amp;amp;1 | \&lt;br /&gt;
       tee $TRIPLEO_ROOT/dib-overcloud-cinder-volume.log&lt;br /&gt;
&lt;br /&gt;
  load-image overcloud-cinder-volume.qcow2&lt;br /&gt;
&lt;br /&gt;
To be able to deploy object storage node, you need this&lt;br /&gt;
 $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST \&lt;br /&gt;
        -a $NODE_ARCH -o $TRIPLEO_ROOT/overcloud-swift-storage hosts \&lt;br /&gt;
        baremetal swift-storage neutron-openvswitch-agent os-collect-config \&lt;br /&gt;
        dhcp-all-interfaces $DIB_COMMON_ELEMENTS $OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS 2&amp;gt;&amp;amp;1 | \&lt;br /&gt;
        tee $TRIPLEO_ROOT/dib-overcloud-swift-storage.log&lt;br /&gt;
&lt;br /&gt;
  load-image overcloud-swift-storage.qcow2&lt;br /&gt;
&lt;br /&gt;
To list MAC's for virsh listed machines run&lt;br /&gt;
 virsh list --all&lt;br /&gt;
 virsh dumpxml baremetal_0 | grep 'mac address' | cut -d\' -f2&lt;br /&gt;
&lt;br /&gt;
At this point, your devtest environment is configured. To proceed, you need to install Tuskar, Horizon and Tuskar-UI, since they are not installed by devtest.&lt;br /&gt;
&lt;br /&gt;
=== Install Tuskar ===&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /opt/stack &amp;amp;&amp;amp; cd /opt/stack&lt;br /&gt;
 git clone https://git.openstack.org/openstack/tuskar&lt;br /&gt;
&lt;br /&gt;
Follow the instructions here to complete the install: https://github.com/openstack/tuskar/blob/master/doc/source/INSTALL.rst. Make sure that you create the initial data.&lt;br /&gt;
&lt;br /&gt;
To be able to deploy Overcloud via Tuskar, you need to delete the Overcloud created by Devtest first.&lt;br /&gt;
Go to the Undercloud machine and delete the Overcloud:&lt;br /&gt;
 ssh heat-admin@192.0.2.3&lt;br /&gt;
 sudo -i&lt;br /&gt;
 source stackrc&lt;br /&gt;
 heat stack-delete overcloud&lt;br /&gt;
&lt;br /&gt;
=== Add Horizon and Tuskar-UI ===&lt;br /&gt;
Install and configure Horizon and Tuskar-UI using the instructions at: http://tuskar-ui.readthedocs.org/en/latest/install.html.  Make sure to clone the horizon and tuskar-ui repositories in /opt/stack.&lt;br /&gt;
&lt;br /&gt;
.Afterwards, copy /root/stackrc from the undercloud to the lab machine, change the OS_AUTH_URL to point to the undercloud, and source it:&lt;br /&gt;
 ssh heat-admin@192.0.2.3 &amp;quot;sudo -i cat /root/stackrc&amp;quot; &amp;gt; /root/stackrc&lt;br /&gt;
 sed -i 's/localhost:5000/192.0.2.3:5000/' /root/stackrc&lt;br /&gt;
 source /root/stackrc&lt;br /&gt;
&lt;br /&gt;
Configure OPENSTACK_HOST in horizon settings to point to the undercloud machine:&lt;br /&gt;
 sed -i 's/OPENSTACK_HOST = &amp;quot;127.0.0.1&amp;quot;/OPENSTACK_HOST = &amp;quot;192.0.2.3&amp;quot;/' /opt/stack/horizon/openstack_dashboard/local/local_settings.py&lt;br /&gt;
&lt;br /&gt;
Start the server:&lt;br /&gt;
 tools/with_venv.sh ./manage.py runserver 0.0.0.0:8111&lt;br /&gt;
&lt;br /&gt;
Now you can see the UI from your browser (you can find credentials for dashboard in undercloud machine in /root/stackrc):&lt;br /&gt;
 lab-machine:8111&lt;br /&gt;
&lt;br /&gt;
If you want to develop locally, you need only to mount the remote folder containing the code, in your local file system:&lt;br /&gt;
 yum install -y sshfs &amp;amp;&amp;amp; mkdir -p ~/devtest&lt;br /&gt;
 sshfs root@lab-machine:/opt/stack/ ~/devtest&lt;br /&gt;
&lt;br /&gt;
=== Script for installing Tuskar and Tuskar UI ===&lt;br /&gt;
There is a script to automatically do previous two steps: https://gist.github.com/Divius/9525147. It clones to the current directory, uses sudo to do privileged operations, so it can be used by non-root. The only requirement is that stackrc file is in the current directory. Also note that the script is mostly unsupported and can become outdated.&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=50432</id>
		<title>Tuskar/UsageGuide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=50432"/>
				<updated>2014-04-29T14:47:29Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Create Flavors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This guide details the usage of the Tuskar UI.  It assumes that you have already installed Tuskar and the Tuskar UI.  If you have not, please follow one of the [[TripleO/Tuskar#Getting_Started|Installation Guides]] first.&lt;br /&gt;
&lt;br /&gt;
A [https://www.youtube.com/watch?v=-6whFIqCqLU narrated video] is also available.&lt;br /&gt;
&lt;br /&gt;
== Register Nodes ==&lt;br /&gt;
&lt;br /&gt;
Start by logging into the Tuskar UI.  The Tuskar UI is designed as a plugin to Horizon.  The recommended installation will eliminate the standard 'Project' and 'Admin' dashboard, leaving only the Tuskar UI's 'Infrastructure' dashboard.&lt;br /&gt;
&lt;br /&gt;
First you'll need to register some nodes.  Click on the Nodes tab, then on the &amp;quot;Register Nodes&amp;quot; button in the upper-right corner.&lt;br /&gt;
&lt;br /&gt;
You'll see a form that asks you to input your nodes' details.  At a minimum you must specify the NIC mac address, the number of CPUs, the memory, and the local disk.  You can enter information for multiple nodes by clicking on the &amp;quot;Add Node&amp;quot; link.  Once done, click &amp;quot;Register Nodes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If the nodes are registered successfully, you'll be back at the Nodes index page; only now there will be a count of Free Nodes.&lt;br /&gt;
&lt;br /&gt;
== Create Flavors ==&lt;br /&gt;
&lt;br /&gt;
The next step is to create flavors.  Flavors are used so that your OpenStack Deployment knows which Nodes are appropriate for use.&lt;br /&gt;
&lt;br /&gt;
Click on the Flavors tab.  If no flavors exist, click on Flavor Suggestions.  Here, you'll see suggested flavor specifications that match the nodes created in the previous step.  To create them, simply click on the 'Create' button, and you'll be taken to a pre-filled flavor creation form.  If you are satisfied with the form values, click on 'Create Flavor'.  Make sure the &amp;quot;Deploy Kernel Image&amp;quot; and &amp;quot;Deploy Ramdisk Image&amp;quot; are set to the bm-deploy-kernel and bm-deploy-ramdisk images.&lt;br /&gt;
&lt;br /&gt;
Now if you select the 'Flavor' tab, you'll see that your flavor has been created.&lt;br /&gt;
&lt;br /&gt;
== Associate Flavors with Roles ==&lt;br /&gt;
&lt;br /&gt;
Now that your nodes and flavors have been created, we can get started on creating the actual OpenStack Deployment.  Click on that tab.&lt;br /&gt;
&lt;br /&gt;
You'll see a deployment creation workflow, beginning with a list of pre-defined roles.  However before specifying the node count for each role, you must specify the flavor that each role will use to match appropriate nodes.  To do this for each role, click on 'Add a flavor'.&lt;br /&gt;
&lt;br /&gt;
An 'Edit Deployment Role' form will pop up.  As these are default roles, the only value that can be modified is Flavor.  Select your desired flavor and click on 'Apply Changes'.&lt;br /&gt;
&lt;br /&gt;
== Specifiy Deployment Parameters and Options ==&lt;br /&gt;
&lt;br /&gt;
Now it's time to specify the parameters and options for your Deployment.  First, select the number of nodes you wish deployed in each role.  Note that the Controller role must be exactly 1.&lt;br /&gt;
&lt;br /&gt;
Afterwards, click on the Configuration tab.  Here you can specify various configuration options for your deployment.  You can also choose not to modify any of these values; Tuskar will use appropriate defaults.&lt;br /&gt;
&lt;br /&gt;
== Deployment ==&lt;br /&gt;
&lt;br /&gt;
Once you are satisfied with your deployment choices, click on the 'Deploy' button.  If everything goes as expected, you'll see a deployment progress bar, and here your watch begins.  &lt;br /&gt;
&lt;br /&gt;
As nodes are provisioned with the appropriate image for a role, this page will refresh with updated information.  You can also click on the 'Log' tab to see a log of events that Heat is undertaking while creating the deployment stack.&lt;br /&gt;
&lt;br /&gt;
== Post-Deployment ==&lt;br /&gt;
&lt;br /&gt;
For the installation via Devtest, the initialization code can be found in Overcloud deployment&lt;br /&gt;
docs: http://docs.openstack.org/developer/tripleo-incubator/devtest_overcloud.html starting with step 13&lt;br /&gt;
&lt;br /&gt;
For the installation via Instack, you can find the code for Overcloud Deployment here:&lt;br /&gt;
https://github.com/agroup/instack-undercloud/blob/master/scripts/instack-deploy-overcloud-tuskarcli&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=50422</id>
		<title>Tuskar/UsageGuide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=50422"/>
				<updated>2014-04-29T13:38:49Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Create Flavors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This guide details the usage of the Tuskar UI.  It assumes that you have already installed Tuskar and the Tuskar UI.  If you have not, please follow one of the [[TripleO/Tuskar#Getting_Started|Installation Guides]] first.&lt;br /&gt;
&lt;br /&gt;
A [https://www.youtube.com/watch?v=-6whFIqCqLU narrated video] is also available.&lt;br /&gt;
&lt;br /&gt;
== Register Nodes ==&lt;br /&gt;
&lt;br /&gt;
Start by logging into the Tuskar UI.  The Tuskar UI is designed as a plugin to Horizon.  The recommended installation will eliminate the standard 'Project' and 'Admin' dashboard, leaving only the Tuskar UI's 'Infrastructure' dashboard.&lt;br /&gt;
&lt;br /&gt;
First you'll need to register some nodes.  Click on the Nodes tab, then on the &amp;quot;Register Nodes&amp;quot; button in the upper-right corner.&lt;br /&gt;
&lt;br /&gt;
You'll see a form that asks you to input your nodes' details.  At a minimum you must specify the NIC mac address, the number of CPUs, the memory, and the local disk.  You can enter information for multiple nodes by clicking on the &amp;quot;Add Node&amp;quot; link.  Once done, click &amp;quot;Register Nodes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If the nodes are registered successfully, you'll be back at the Nodes index page; only now there will be a count of Free Nodes.&lt;br /&gt;
&lt;br /&gt;
== Create Flavors ==&lt;br /&gt;
&lt;br /&gt;
The next step is to create flavors.  Flavors are used so that your OpenStack Deployment knows which Nodes are appropriate for use.&lt;br /&gt;
&lt;br /&gt;
Click on the Flavors tab.  If no flavors exist, click on Flavor Suggestions.  Here, you'll see suggested flavor specifications that match the nodes created in the previous step.  To create them, simply click on the 'Create' button, and you'll be taken to a pre-filled flavor creation form.  If you are satisfied with the form values, click on 'Create Flavor'.  Make sure the &amp;quot;Deploy Kernel Image&amp;quot; and &amp;quot;Deploy Ramdisk Image&amp;quot; are set to kernel and ramdisk images.&lt;br /&gt;
&lt;br /&gt;
Now if you select the 'Flavor' tab, you'll see that your flavor has been created.&lt;br /&gt;
&lt;br /&gt;
== Associate Flavors with Roles ==&lt;br /&gt;
&lt;br /&gt;
Now that your nodes and flavors have been created, we can get started on creating the actual OpenStack Deployment.  Click on that tab.&lt;br /&gt;
&lt;br /&gt;
You'll see a deployment creation workflow, beginning with a list of pre-defined roles.  However before specifying the node count for each role, you must specify the flavor that each role will use to match appropriate nodes.  To do this for each role, click on 'Add a flavor'.&lt;br /&gt;
&lt;br /&gt;
An 'Edit Deployment Role' form will pop up.  As these are default roles, the only value that can be modified is Flavor.  Select your desired flavor and click on 'Apply Changes'.&lt;br /&gt;
&lt;br /&gt;
== Specifiy Deployment Parameters and Options ==&lt;br /&gt;
&lt;br /&gt;
Now it's time to specify the parameters and options for your Deployment.  First, select the number of nodes you wish deployed in each role.  Note that the Controller role must be exactly 1.&lt;br /&gt;
&lt;br /&gt;
Afterwards, click on the Configuration tab.  Here you can specify various configuration options for your deployment.  You can also choose not to modify any of these values; Tuskar will use appropriate defaults.&lt;br /&gt;
&lt;br /&gt;
== Deployment ==&lt;br /&gt;
&lt;br /&gt;
Once you are satisfied with your deployment choices, click on the 'Deploy' button.  If everything goes as expected, you'll see a deployment progress bar, and here your watch begins.  &lt;br /&gt;
&lt;br /&gt;
As nodes are provisioned with the appropriate image for a role, this page will refresh with updated information.  You can also click on the 'Log' tab to see a log of events that Heat is undertaking while creating the deployment stack.&lt;br /&gt;
&lt;br /&gt;
== Post-Deployment ==&lt;br /&gt;
&lt;br /&gt;
For the installation via Devtest, the initialization code can be found in Overcloud deployment&lt;br /&gt;
docs: http://docs.openstack.org/developer/tripleo-incubator/devtest_overcloud.html starting with step 13&lt;br /&gt;
&lt;br /&gt;
For the installation via Instack, you can find the code for Overcloud Deployment here:&lt;br /&gt;
https://github.com/agroup/instack-undercloud/blob/master/scripts/instack-deploy-overcloud-tuskarcli&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Design_Summit/Juno/Etherpads&amp;diff=50394</id>
		<title>Design Summit/Juno/Etherpads</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Design_Summit/Juno/Etherpads&amp;diff=50394"/>
				<updated>2014-04-29T00:27:01Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* TripleO (Deployment) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Summit]]&lt;br /&gt;
[[Category:Juno]]&lt;br /&gt;
[[Category:Etherpad]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3;-moz-column-count:3;-webkit-column-count:3&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ceilometer ==&lt;br /&gt;
== Cinder ==&lt;br /&gt;
==Cross-Project==&lt;br /&gt;
== Devstack ==&lt;br /&gt;
* Fri 16:00 [https://etherpad.openstack.org/p/juno-summit-devstack-update DevStack Update]&lt;br /&gt;
* Fri 16:50 [https://etherpad.openstack.org/p/juno-summit-devstack-project-support DevStack Project Support]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
== Glance ==&lt;br /&gt;
== Heat ==&lt;br /&gt;
&lt;br /&gt;
* Wed 9.00-9:40 [https://etherpad.openstack.org/p/juno-summit-heat-dev-ops Dev/Ops Session]&lt;br /&gt;
* Wed 9.50-10:30 [https://etherpad.openstack.org/p/juno-summit-heat-sw-orch Next Steps for Software Orchestration]&lt;br /&gt;
* Wed 11.00-11:40 [https://etherpad.openstack.org/p/heat-workflow-vs-convergence Scaling, Robustness and Convergence]&lt;br /&gt;
* Wed 11.50-12:30 [https://etherpad.openstack.org/p/juno-summit-heat-notifications Augmenting Polling with Notifications]&lt;br /&gt;
* Wed 13.50-14:30 [https://etherpad.openstack.org/p/juno-summit-heat-event Event notifications]&lt;br /&gt;
* Wed 14.40-15:20 [https://etherpad.openstack.org/p/juno-summit-heat-callbacks Stack and Resource lifecycle callbacks]&lt;br /&gt;
* Wed 15.30-16:10 [https://etherpad.openstack.org/p/juno-summit-heat-api-v2 API v2]&lt;br /&gt;
* Wed 16.30-17:10 [https://etherpad.openstack.org/p/juno-summit-heat-plugin-versioning Resource Plugin Versioning]&lt;br /&gt;
&lt;br /&gt;
== Horizon ==&lt;br /&gt;
* Wed 4:30 - 5:10 [https://etherpad.openstack.org/p/juno-summit-horizon-devops Horizon Dev/Ops Session]&lt;br /&gt;
&lt;br /&gt;
== Infrastructure ==&lt;br /&gt;
== Ironic ==&lt;br /&gt;
&lt;br /&gt;
* Tues 11:15 [https://etherpad.openstack.org/p/juno-summit-ironic-python-agent Ironic Python Agent]&lt;br /&gt;
* Tues 12:05 [https://etherpad.openstack.org/p/juno-summit-ironic-multitenancy Hardware Multitenancy Risk Mitigation]&lt;br /&gt;
* Tues 14:50 [https://etherpad.openstack.org/p/juno-summit-ironic-performance Performance and Scalability]&lt;br /&gt;
* Tues 15:40 [https://etherpad.openstack.org/p/juno-summit-ironic-arch Planning changes for Juno]&lt;br /&gt;
&lt;br /&gt;
== Keystone ==&lt;br /&gt;
== Marconi ==&lt;br /&gt;
== Neutron ==&lt;br /&gt;
* Wed 9:00-9:40: [https://etherpad.openstack.org/p/juno-neutron-policies New Policies for Neutron in Juno]&lt;br /&gt;
* Wed 9:50-10:30: Code Review Process Improvements&lt;br /&gt;
* Wed 11:00-11:40: IPv6 status in Neutron&lt;br /&gt;
* Wed 11:50-12:30: ML2 Juno Roadmap&lt;br /&gt;
**[https://etherpad.openstack.org/p/ML2_mechanismdriver_extensions_support Extensions Support In ML2 Mechanism Drivers]&lt;br /&gt;
* Wed 13:50-14:30: Refactoring the Neutron Server Core&lt;br /&gt;
* Wed 14:40-15:20: [https://etherpad.openstack.org/p/novanet-neutron-migration Nova-Net to Neutron migration]&lt;br /&gt;
* Wed 15:30-14:10: Integrating Tasks into Neutron&lt;br /&gt;
* Wed 16:30-17:10: Neutron Advanced Services and Flavor Framework&lt;br /&gt;
* Wed 17:20-18:00: Neutron Distributed Virtual Router Progress Update&lt;br /&gt;
* Thu 9:00-9:40: Neutron QA and Testing&lt;br /&gt;
** https://etherpad.openstack.org/p/TempestAndNeutronJuno&lt;br /&gt;
* Thu 9:50-10:30: Sharing the load of operational responsibility&lt;br /&gt;
* Thu 11:00-11:40: Neutron LBaaS Update&lt;br /&gt;
* Thur 11:50-12:30: Modular Layer2 Agents&lt;br /&gt;
** https://etherpad.openstack.org/p/JunoSummit-ovs-firewall-driver&lt;br /&gt;
* Fri 10:50-11:30: Neutron Group Based Policy&lt;br /&gt;
* Fri 11:40-12:30: Combined FWaaS and VPNaaS Session&lt;br /&gt;
* Fri 13:20-14:00: LBaaS SSL L7 and automated scenarios&lt;br /&gt;
* Fri 14:10-14:50: Hierarchical Network Topologies&lt;br /&gt;
** https://etherpad.openstack.org/p/hierarchical_network_topology&lt;br /&gt;
* Fri 15:00-15:40: [https://etherpad.openstack.org/p/L3-vendor-plugins L3 Vendor Plugins]&lt;br /&gt;
* Fri 16:00-16:40: Dynamic routing and pluggable external networks&lt;br /&gt;
* Fri 16:50-17:30: Service VM Discussion:&lt;br /&gt;
** https://etherpad.openstack.org/p/servicevm&lt;br /&gt;
&lt;br /&gt;
== Nova ==&lt;br /&gt;
== Ops ==&lt;br /&gt;
* Mon 1115 – 1155   [https://etherpad.openstack.org/p/juno-summit-ops-askthedevs Ask the devs: Meet the PTLs and TC, How to get the best out of the design summit]&lt;br /&gt;
* Mon 1205 – 1245  [https://etherpad.openstack.org/p/juno-summit-ops-reasonabledefaults Reasonable Defaults]&lt;br /&gt;
* Mon 1400 – 1440  [https://etherpad.openstack.org/p/juno-summit-ops-upgradesdeployment Upgrades and Deployment Approaches]&lt;br /&gt;
* Mon 1450 – 1620  [https://etherpad.openstack.org/p/juno-summit-ops-architecture Architecture Show and Tell, Tales and Fails]&lt;br /&gt;
* Mon 1730 – 1810   [https://etherpad.openstack.org/p/juno-summit-ops-security Security]&lt;br /&gt;
&lt;br /&gt;
* Fri 9:00 – 9:40    [https://etherpad.openstack.org/p/juno-summit-ops-enterprise Enterprise Gaps]&lt;br /&gt;
* Fri 9:50 – 10:30   [https://etherpad.openstack.org/p/juno-summit-ops-database Database]&lt;br /&gt;
* Fri 10:50 – 11:30  [https://etherpad.openstack.org/p/juno-summit-ops-issuesatscale Issues at Scale]&lt;br /&gt;
* Fri 11:40 – 12:20  [https://etherpad.openstack.org/p/juno-summit-ops-meta Meta Discussion – ops communication and governance]&lt;br /&gt;
* Fri 1:20 – 2:00  [https://etherpad.openstack.org/p/juno-summit-ops-ansible Ansible]&lt;br /&gt;
* Fri 2:10 – 2:50  [https://etherpad.openstack.org/p/juno-summit-ops-chef Chef]&lt;br /&gt;
* Fri 3:00 – 3:40  [https://etherpad.openstack.org/p/juno-summit-ops-puppet Puppet]&lt;br /&gt;
* Fri 4:00 – 4:40  [https://etherpad.openstack.org/p/juno-summit-ops-networking Networking]&lt;br /&gt;
* Fri 4:50 – 5:30  [https://etherpad.openstack.org/p/juno-summit-ops-monitoringlogging Monitoring and Logging]&lt;br /&gt;
&lt;br /&gt;
== Oslo ==&lt;br /&gt;
* Wed 9:00 - 9:40 Release Plan for Low-level Libraries&lt;br /&gt;
* Wed 9:50 - 10:30 Semantic versioning and oslo&lt;br /&gt;
* Wed 11:00 - 11:40 oslo.rootwrap: performance and other improvements&lt;br /&gt;
* Thu 9:00 - 9:40 Oslo Library Teams Breakout Session&lt;br /&gt;
* Thu 9:50 - 10:30 Testing pre-releases of Oslo libs with apps&lt;br /&gt;
* Thu 11:00 - 11:40 OpenStack cross service/project OpenStack profiler&lt;br /&gt;
* Thu 15:10 - 16:00 Upstream chat with Mike Bayer&lt;br /&gt;
* Thu 16:10 - 17:00 rpc proxy(oslo.messaging): https://etherpad.openstack.org/p/juno-summit-oslo-messaging-rpc-proxy&lt;br /&gt;
* Fri 14:10 - 15:50 oslo.messaging status and plans for Juno&lt;br /&gt;
* Fri 15:00 - 16:40 AMQP 1.0 protocol driver&lt;br /&gt;
* Fri 16:00 - 16:40 PKI for messaging&lt;br /&gt;
&lt;br /&gt;
== QA ==&lt;br /&gt;
&lt;br /&gt;
===Thursday===&lt;br /&gt;
* 1:30 – 2:10  [https://etherpad.openstack.org/p/juno-summit-api-tests-with-jsonschema API tests with JSONSchema]&lt;br /&gt;
&lt;br /&gt;
== Release Management ==&lt;br /&gt;
== Sahara (ex. Savanna) ==&lt;br /&gt;
&lt;br /&gt;
* [http://junodesignsummit.sched.org/event/b4f52627efa42f285978d5af3643e189 Thu 13:30] [https://etherpad.openstack.org/p/juno-summit-sahara-relmngmt-backward Releasing and backward compatibility]&lt;br /&gt;
* [http://junodesignsummit.sched.org/event/c8774beefd9e9188a3e0729d2bd7131e Thu 14:20] [https://etherpad.openstack.org/p/juno-summit-sahara-testing-plugins CI/gating and plugin requirements]&lt;br /&gt;
* [http://junodesignsummit.sched.org/event/10bc9a23eb43eb9df885586035fb2491 Thu 15:10] [https://etherpad.openstack.org/p/juno-summit-sahara-scale-integration Scalable Sahara and further OpenStack integration]&lt;br /&gt;
* [http://junodesignsummit.sched.org/event/be842178a085fe95b7665a653f8ab541 Thu 16:10] [https://etherpad.openstack.org/p/juno-summit-sahara-ux UX improvements]&lt;br /&gt;
* [http://junodesignsummit.sched.org/event/dfa603324c0bbf29c2f09a77efb82d1d Thu 17:00] [https://etherpad.openstack.org/p/juno-summit-sahara-edp Future of EDP: plugins, SPI, Oozie]&lt;br /&gt;
* [http://junodesignsummit.sched.org/event/a64f771cf28ed3ad637730db828668ff Fri 09:00] [https://etherpad.openstack.org/p/juno-summit-sahara-v2-api Next major REST API - v2]&lt;br /&gt;
* [http://junodesignsummit.sched.org/event/49089a1d9c8203c6a4c1f0001fa417af Fri 09:50] [https://etherpad.openstack.org/p/juno-summit-sahara-roadmap-retro Sahara in Icehouse and Juno]&lt;br /&gt;
&lt;br /&gt;
== Swift ==&lt;br /&gt;
== TripleO (Deployment) ==&lt;br /&gt;
* Fri 11:40 - 12:20 [https://etherpad.openstack.org/p/juno-summit-tripleo-tuskar-planning TripleO Tuskar Planning]&lt;br /&gt;
* Fri&lt;br /&gt;
* Fri 14:10 - 14:50   [https://etherpad.openstack.org/p/juno-summit-tripleo-and-docker TripleO and Docker]&lt;br /&gt;
* Fri 15:00 - 15:40   [https://etherpad.openstack.org/p/juno-summit-tripleo-ci TripleO CI]&lt;br /&gt;
* Fri 16:00 - 16:40   [https://etherpad.openstack.org/p/juno-summit-tripleo-neutron TripleO and Neutron]&lt;br /&gt;
* Fri 16:50 - 17:30   [https://etherpad.openstack.org/p/juno-summit-tripleo-devops TripleO Dev/Ops Session]&lt;br /&gt;
&lt;br /&gt;
== Trove ==&lt;br /&gt;
== User Committee ==&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=48868</id>
		<title>Tuskar/UsageGuide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=48868"/>
				<updated>2014-04-16T03:23:15Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Deployment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This guide details the usage of the Tuskar UI.  It assumes that you have already installed Tuskar and the Tuskar UI.  If you have not, please follow one of the [[TripleO/Tuskar#Getting_Started|Installation Guides]] first.&lt;br /&gt;
&lt;br /&gt;
A [https://www.youtube.com/watch?v=-6whFIqCqLU narrated video] is also available.&lt;br /&gt;
&lt;br /&gt;
== Register Nodes ==&lt;br /&gt;
&lt;br /&gt;
Start by logging into the Tuskar UI.  The Tuskar UI is designed as a plugin to Horizon.  The recommended installation will eliminate the standard 'Project' and 'Admin' dashboard, leaving only the Tuskar UI's 'Infrastructure' dashboard.&lt;br /&gt;
&lt;br /&gt;
First you'll need to register some nodes.  Click on the Nodes tab, then on the &amp;quot;Register Nodes&amp;quot; button in the upper-right corner.&lt;br /&gt;
&lt;br /&gt;
You'll see a form that asks you to input your nodes' details.  At a minimum you must specify the NIC mac address, the number of CPUs, the memory, and the local disk.  You can enter information for multiple nodes by clicking on the &amp;quot;Add Node&amp;quot; link.  Once done, click &amp;quot;Register Nodes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If the nodes are registered successfully, you'll be back at the Nodes index page; only now there will be a count of Free Nodes.&lt;br /&gt;
&lt;br /&gt;
== Create Flavors ==&lt;br /&gt;
&lt;br /&gt;
The next step is to create flavors.  Flavors are used so that your OpenStack Deployment knows which Nodes are appropriate for use.&lt;br /&gt;
&lt;br /&gt;
Click on the Flavors tab.  If no flavors exist, click on Flavor Suggestions.  Here, you'll see suggested flavor specifications that match the nodes created in the previous step.  To create them, simply click on the 'Create' button, and you'll be taken to a pre-filled flavor creation form.  If you are satisfied with the form values, click on 'Create Flavor'.&lt;br /&gt;
&lt;br /&gt;
Now if you select the 'Flavor' tab, you'll see that your flavor has been created.&lt;br /&gt;
&lt;br /&gt;
== Associate Flavors with Roles ==&lt;br /&gt;
&lt;br /&gt;
Now that your nodes and flavors have been created, we can get started on creating the actual OpenStack Deployment.  Click on that tab.&lt;br /&gt;
&lt;br /&gt;
You'll see a deployment creation workflow, beginning with a list of pre-defined roles.  However before specifying the node count for each role, you must specify the flavor that each role will use to match appropriate nodes.  To do this for each role, click on 'Add a flavor'.&lt;br /&gt;
&lt;br /&gt;
An 'Edit Deployment Role' form will pop up.  As these are default roles, the only value that can be modified is Flavor.  Select your desired flavor and click on 'Apply Changes'.&lt;br /&gt;
&lt;br /&gt;
== Specifiy Deployment Parameters and Options ==&lt;br /&gt;
&lt;br /&gt;
Now it's time to specify the parameters and options for your Deployment.  First, select the number of nodes you wish deployed in each role.  Note that the Controller role must be exactly 1.&lt;br /&gt;
&lt;br /&gt;
Afterwards, click on the Configuration tab.  Here you can specify various configuration options for your deployment.  You can also choose not to modify any of these values; Tuskar will use appropriate defaults.&lt;br /&gt;
&lt;br /&gt;
== Deployment ==&lt;br /&gt;
&lt;br /&gt;
Once you are satisfied with your deployment choices, click on the 'Deploy' button.  If everything goes as expected, you'll see a deployment progress bar, and here your watch begins.  &lt;br /&gt;
&lt;br /&gt;
As nodes are provisioned with the appropriate image for a role, this page will refresh with updated information.  You can also click on the 'Log' tab to see a log of events that Heat is undertaking while creating the deployment stack.&lt;br /&gt;
&lt;br /&gt;
== Post-Deployment ==&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=48867</id>
		<title>Tuskar/UsageGuide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=48867"/>
				<updated>2014-04-16T03:18:52Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Specifiy Deployment Options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This guide details the usage of the Tuskar UI.  It assumes that you have already installed Tuskar and the Tuskar UI.  If you have not, please follow one of the [[TripleO/Tuskar#Getting_Started|Installation Guides]] first.&lt;br /&gt;
&lt;br /&gt;
A [https://www.youtube.com/watch?v=-6whFIqCqLU narrated video] is also available.&lt;br /&gt;
&lt;br /&gt;
== Register Nodes ==&lt;br /&gt;
&lt;br /&gt;
Start by logging into the Tuskar UI.  The Tuskar UI is designed as a plugin to Horizon.  The recommended installation will eliminate the standard 'Project' and 'Admin' dashboard, leaving only the Tuskar UI's 'Infrastructure' dashboard.&lt;br /&gt;
&lt;br /&gt;
First you'll need to register some nodes.  Click on the Nodes tab, then on the &amp;quot;Register Nodes&amp;quot; button in the upper-right corner.&lt;br /&gt;
&lt;br /&gt;
You'll see a form that asks you to input your nodes' details.  At a minimum you must specify the NIC mac address, the number of CPUs, the memory, and the local disk.  You can enter information for multiple nodes by clicking on the &amp;quot;Add Node&amp;quot; link.  Once done, click &amp;quot;Register Nodes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If the nodes are registered successfully, you'll be back at the Nodes index page; only now there will be a count of Free Nodes.&lt;br /&gt;
&lt;br /&gt;
== Create Flavors ==&lt;br /&gt;
&lt;br /&gt;
The next step is to create flavors.  Flavors are used so that your OpenStack Deployment knows which Nodes are appropriate for use.&lt;br /&gt;
&lt;br /&gt;
Click on the Flavors tab.  If no flavors exist, click on Flavor Suggestions.  Here, you'll see suggested flavor specifications that match the nodes created in the previous step.  To create them, simply click on the 'Create' button, and you'll be taken to a pre-filled flavor creation form.  If you are satisfied with the form values, click on 'Create Flavor'.&lt;br /&gt;
&lt;br /&gt;
Now if you select the 'Flavor' tab, you'll see that your flavor has been created.&lt;br /&gt;
&lt;br /&gt;
== Associate Flavors with Roles ==&lt;br /&gt;
&lt;br /&gt;
Now that your nodes and flavors have been created, we can get started on creating the actual OpenStack Deployment.  Click on that tab.&lt;br /&gt;
&lt;br /&gt;
You'll see a deployment creation workflow, beginning with a list of pre-defined roles.  However before specifying the node count for each role, you must specify the flavor that each role will use to match appropriate nodes.  To do this for each role, click on 'Add a flavor'.&lt;br /&gt;
&lt;br /&gt;
An 'Edit Deployment Role' form will pop up.  As these are default roles, the only value that can be modified is Flavor.  Select your desired flavor and click on 'Apply Changes'.&lt;br /&gt;
&lt;br /&gt;
== Specifiy Deployment Parameters and Options ==&lt;br /&gt;
&lt;br /&gt;
Now it's time to specify the parameters and options for your Deployment.  First, select the number of nodes you wish deployed in each role.  Note that the Controller role must be exactly 1.&lt;br /&gt;
&lt;br /&gt;
Afterwards, click on the Configuration tab.  Here you can specify various configuration options for your deployment.  You can also choose not to modify any of these values; Tuskar will use appropriate defaults.&lt;br /&gt;
&lt;br /&gt;
== Deployment ==&lt;br /&gt;
&lt;br /&gt;
== Post-Deployment ==&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=48866</id>
		<title>Tuskar/UsageGuide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=48866"/>
				<updated>2014-04-16T03:11:49Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Associate Flavors with Roles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This guide details the usage of the Tuskar UI.  It assumes that you have already installed Tuskar and the Tuskar UI.  If you have not, please follow one of the [[TripleO/Tuskar#Getting_Started|Installation Guides]] first.&lt;br /&gt;
&lt;br /&gt;
A [https://www.youtube.com/watch?v=-6whFIqCqLU narrated video] is also available.&lt;br /&gt;
&lt;br /&gt;
== Register Nodes ==&lt;br /&gt;
&lt;br /&gt;
Start by logging into the Tuskar UI.  The Tuskar UI is designed as a plugin to Horizon.  The recommended installation will eliminate the standard 'Project' and 'Admin' dashboard, leaving only the Tuskar UI's 'Infrastructure' dashboard.&lt;br /&gt;
&lt;br /&gt;
First you'll need to register some nodes.  Click on the Nodes tab, then on the &amp;quot;Register Nodes&amp;quot; button in the upper-right corner.&lt;br /&gt;
&lt;br /&gt;
You'll see a form that asks you to input your nodes' details.  At a minimum you must specify the NIC mac address, the number of CPUs, the memory, and the local disk.  You can enter information for multiple nodes by clicking on the &amp;quot;Add Node&amp;quot; link.  Once done, click &amp;quot;Register Nodes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If the nodes are registered successfully, you'll be back at the Nodes index page; only now there will be a count of Free Nodes.&lt;br /&gt;
&lt;br /&gt;
== Create Flavors ==&lt;br /&gt;
&lt;br /&gt;
The next step is to create flavors.  Flavors are used so that your OpenStack Deployment knows which Nodes are appropriate for use.&lt;br /&gt;
&lt;br /&gt;
Click on the Flavors tab.  If no flavors exist, click on Flavor Suggestions.  Here, you'll see suggested flavor specifications that match the nodes created in the previous step.  To create them, simply click on the 'Create' button, and you'll be taken to a pre-filled flavor creation form.  If you are satisfied with the form values, click on 'Create Flavor'.&lt;br /&gt;
&lt;br /&gt;
Now if you select the 'Flavor' tab, you'll see that your flavor has been created.&lt;br /&gt;
&lt;br /&gt;
== Associate Flavors with Roles ==&lt;br /&gt;
&lt;br /&gt;
Now that your nodes and flavors have been created, we can get started on creating the actual OpenStack Deployment.  Click on that tab.&lt;br /&gt;
&lt;br /&gt;
You'll see a deployment creation workflow, beginning with a list of pre-defined roles.  However before specifying the node count for each role, you must specify the flavor that each role will use to match appropriate nodes.  To do this for each role, click on 'Add a flavor'.&lt;br /&gt;
&lt;br /&gt;
An 'Edit Deployment Role' form will pop up.  As these are default roles, the only value that can be modified is Flavor.  Select your desired flavor and click on 'Apply Changes'.&lt;br /&gt;
&lt;br /&gt;
== Specifiy Deployment Options ==&lt;br /&gt;
&lt;br /&gt;
== Deployment ==&lt;br /&gt;
&lt;br /&gt;
== Post-Deployment ==&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=48865</id>
		<title>Tuskar/UsageGuide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=48865"/>
				<updated>2014-04-16T03:08:42Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Create Flavors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This guide details the usage of the Tuskar UI.  It assumes that you have already installed Tuskar and the Tuskar UI.  If you have not, please follow one of the [[TripleO/Tuskar#Getting_Started|Installation Guides]] first.&lt;br /&gt;
&lt;br /&gt;
A [https://www.youtube.com/watch?v=-6whFIqCqLU narrated video] is also available.&lt;br /&gt;
&lt;br /&gt;
== Register Nodes ==&lt;br /&gt;
&lt;br /&gt;
Start by logging into the Tuskar UI.  The Tuskar UI is designed as a plugin to Horizon.  The recommended installation will eliminate the standard 'Project' and 'Admin' dashboard, leaving only the Tuskar UI's 'Infrastructure' dashboard.&lt;br /&gt;
&lt;br /&gt;
First you'll need to register some nodes.  Click on the Nodes tab, then on the &amp;quot;Register Nodes&amp;quot; button in the upper-right corner.&lt;br /&gt;
&lt;br /&gt;
You'll see a form that asks you to input your nodes' details.  At a minimum you must specify the NIC mac address, the number of CPUs, the memory, and the local disk.  You can enter information for multiple nodes by clicking on the &amp;quot;Add Node&amp;quot; link.  Once done, click &amp;quot;Register Nodes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If the nodes are registered successfully, you'll be back at the Nodes index page; only now there will be a count of Free Nodes.&lt;br /&gt;
&lt;br /&gt;
== Create Flavors ==&lt;br /&gt;
&lt;br /&gt;
The next step is to create flavors.  Flavors are used so that your OpenStack Deployment knows which Nodes are appropriate for use.&lt;br /&gt;
&lt;br /&gt;
Click on the Flavors tab.  If no flavors exist, click on Flavor Suggestions.  Here, you'll see suggested flavor specifications that match the nodes created in the previous step.  To create them, simply click on the 'Create' button, and you'll be taken to a pre-filled flavor creation form.  If you are satisfied with the form values, click on 'Create Flavor'.&lt;br /&gt;
&lt;br /&gt;
Now if you select the 'Flavor' tab, you'll see that your flavor has been created.&lt;br /&gt;
&lt;br /&gt;
== Associate Flavors with Roles ==&lt;br /&gt;
&lt;br /&gt;
== Specifiy Deployment Options ==&lt;br /&gt;
&lt;br /&gt;
== Deployment ==&lt;br /&gt;
&lt;br /&gt;
== Post-Deployment ==&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=48864</id>
		<title>Tuskar/UsageGuide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=48864"/>
				<updated>2014-04-16T03:08:16Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Create Flavors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This guide details the usage of the Tuskar UI.  It assumes that you have already installed Tuskar and the Tuskar UI.  If you have not, please follow one of the [[TripleO/Tuskar#Getting_Started|Installation Guides]] first.&lt;br /&gt;
&lt;br /&gt;
A [https://www.youtube.com/watch?v=-6whFIqCqLU narrated video] is also available.&lt;br /&gt;
&lt;br /&gt;
== Register Nodes ==&lt;br /&gt;
&lt;br /&gt;
Start by logging into the Tuskar UI.  The Tuskar UI is designed as a plugin to Horizon.  The recommended installation will eliminate the standard 'Project' and 'Admin' dashboard, leaving only the Tuskar UI's 'Infrastructure' dashboard.&lt;br /&gt;
&lt;br /&gt;
First you'll need to register some nodes.  Click on the Nodes tab, then on the &amp;quot;Register Nodes&amp;quot; button in the upper-right corner.&lt;br /&gt;
&lt;br /&gt;
You'll see a form that asks you to input your nodes' details.  At a minimum you must specify the NIC mac address, the number of CPUs, the memory, and the local disk.  You can enter information for multiple nodes by clicking on the &amp;quot;Add Node&amp;quot; link.  Once done, click &amp;quot;Register Nodes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If the nodes are registered successfully, you'll be back at the Nodes index page; only now there will be a count of Free Nodes.&lt;br /&gt;
&lt;br /&gt;
== Create Flavors ==&lt;br /&gt;
&lt;br /&gt;
The next step is to create flavors.  Flavors are used so that your OpenStack Deployment knows which Nodes are appropriate for use.&lt;br /&gt;
&lt;br /&gt;
Click on the Flavors tab.  If no flavors exist, click on Flavor Suggestions.  Here, you'll see suggested flavor specifications that match the nodes created in the previous step.  To create them, simply click on the 'Create' button, and you'll be taken to a pre-filled flavor creation form.  If you are satisfied with the form values, click on 'Create Flavor'.  Now, if you select the 'Flavor' tab, you'll see that your flavor has been created.&lt;br /&gt;
&lt;br /&gt;
== Associate Flavors with Roles ==&lt;br /&gt;
&lt;br /&gt;
== Specifiy Deployment Options ==&lt;br /&gt;
&lt;br /&gt;
== Deployment ==&lt;br /&gt;
&lt;br /&gt;
== Post-Deployment ==&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=48863</id>
		<title>Tuskar/UsageGuide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=48863"/>
				<updated>2014-04-16T03:01:34Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Register Nodes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This guide details the usage of the Tuskar UI.  It assumes that you have already installed Tuskar and the Tuskar UI.  If you have not, please follow one of the [[TripleO/Tuskar#Getting_Started|Installation Guides]] first.&lt;br /&gt;
&lt;br /&gt;
A [https://www.youtube.com/watch?v=-6whFIqCqLU narrated video] is also available.&lt;br /&gt;
&lt;br /&gt;
== Register Nodes ==&lt;br /&gt;
&lt;br /&gt;
Start by logging into the Tuskar UI.  The Tuskar UI is designed as a plugin to Horizon.  The recommended installation will eliminate the standard 'Project' and 'Admin' dashboard, leaving only the Tuskar UI's 'Infrastructure' dashboard.&lt;br /&gt;
&lt;br /&gt;
First you'll need to register some nodes.  Click on the Nodes tab, then on the &amp;quot;Register Nodes&amp;quot; button in the upper-right corner.&lt;br /&gt;
&lt;br /&gt;
You'll see a form that asks you to input your nodes' details.  At a minimum you must specify the NIC mac address, the number of CPUs, the memory, and the local disk.  You can enter information for multiple nodes by clicking on the &amp;quot;Add Node&amp;quot; link.  Once done, click &amp;quot;Register Nodes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If the nodes are registered successfully, you'll be back at the Nodes index page; only now there will be a count of Free Nodes.&lt;br /&gt;
&lt;br /&gt;
== Create Flavors ==&lt;br /&gt;
&lt;br /&gt;
== Associate Flavors with Roles ==&lt;br /&gt;
&lt;br /&gt;
== Specifiy Deployment Options ==&lt;br /&gt;
&lt;br /&gt;
== Deployment ==&lt;br /&gt;
&lt;br /&gt;
== Post-Deployment ==&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=48862</id>
		<title>Tuskar/UsageGuide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=48862"/>
				<updated>2014-04-16T02:50:29Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This guide details the usage of the Tuskar UI.  It assumes that you have already installed Tuskar and the Tuskar UI.  If you have not, please follow one of the [[TripleO/Tuskar#Getting_Started|Installation Guides]] first.&lt;br /&gt;
&lt;br /&gt;
A [https://www.youtube.com/watch?v=-6whFIqCqLU narrated video] is also available.&lt;br /&gt;
&lt;br /&gt;
== Register Nodes ==&lt;br /&gt;
&lt;br /&gt;
== Create Flavors ==&lt;br /&gt;
&lt;br /&gt;
== Associate Flavors with Roles ==&lt;br /&gt;
&lt;br /&gt;
== Specifiy Deployment Options ==&lt;br /&gt;
&lt;br /&gt;
== Deployment ==&lt;br /&gt;
&lt;br /&gt;
== Post-Deployment ==&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=48861</id>
		<title>Tuskar/UsageGuide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=48861"/>
				<updated>2014-04-16T02:46:03Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This guide details the usage of the Tuskar UI.  It assumes that you have already installed Tuskar and the Tuskar UI.  If you have not, please follow one of the [[TripleO/Tuskar#Getting_Started|Installation Guides]] first.&lt;br /&gt;
&lt;br /&gt;
== Register Nodes ==&lt;br /&gt;
&lt;br /&gt;
== Create Flavors ==&lt;br /&gt;
&lt;br /&gt;
== Associate Flavors with Roles ==&lt;br /&gt;
&lt;br /&gt;
== Specifiy Deployment Options ==&lt;br /&gt;
&lt;br /&gt;
== Deployment ==&lt;br /&gt;
&lt;br /&gt;
== Post-Deployment ==&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=48828</id>
		<title>Tuskar/UsageGuide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=48828"/>
				<updated>2014-04-15T21:01:22Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Create Flavors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
== Register Nodes ==&lt;br /&gt;
&lt;br /&gt;
== Create Flavors ==&lt;br /&gt;
&lt;br /&gt;
== Associate Flavors with Roles ==&lt;br /&gt;
&lt;br /&gt;
== Specifiy Deployment Options ==&lt;br /&gt;
&lt;br /&gt;
== Deployment ==&lt;br /&gt;
&lt;br /&gt;
== Post-Deployment ==&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=48827</id>
		<title>Tuskar/UsageGuide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Tuskar/UsageGuide&amp;diff=48827"/>
				<updated>2014-04-15T21:00:52Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: Tuskar-UI Usage Guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
== Register Nodes ==&lt;br /&gt;
&lt;br /&gt;
== Create Flavors ==&lt;br /&gt;
&lt;br /&gt;
== Associate Flavors with Roles&lt;br /&gt;
&lt;br /&gt;
== Specifiy Deployment Options ==&lt;br /&gt;
&lt;br /&gt;
== Deployment ==&lt;br /&gt;
&lt;br /&gt;
== Post-Deployment ==&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=TripleO/Tuskar&amp;diff=48771</id>
		<title>TripleO/Tuskar</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=TripleO/Tuskar&amp;diff=48771"/>
				<updated>2014-04-15T14:08:07Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Getting Started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Tuskar gives administrators the ability to control how and where OpenStack services are deployed across the datacenter. Using Tuskar,&lt;br /&gt;
administrators divide hardware into &amp;quot;resource classes&amp;quot; that allow predictable elastic scaling as cloud demands grow. This resource&lt;br /&gt;
orchestration allows Tuskar users to ensure SLAs, improve performance, and maximize utilization across the datacenter.&lt;br /&gt;
&lt;br /&gt;
Tuskar services are available via a RESTful API and management console through which administrators are able to classify their hardware and&lt;br /&gt;
define their datacenters. In addition, Tuskar components provide administrators with performance monitoring, health statistics, and usage metrics, aiding in capacity planning and hardware procurement decisions.&lt;br /&gt;
&lt;br /&gt;
For more information, take a look at the [[TripleO/TuskarGlossary|Tuskar Glossary]].&lt;br /&gt;
&lt;br /&gt;
If you're interested in seeing Tuskar in action, [https://www.youtube.com/watch?v=VEY035-Lyzo watch a demo].&lt;br /&gt;
&lt;br /&gt;
=== Sub-Projects ===&lt;br /&gt;
&lt;br /&gt;
Tuskar also consists of two sub-projects:&lt;br /&gt;
&lt;br /&gt;
* '''tuskar-ui''' - Built on top of [[Horizon|Horizon]], tuskar-ui provides dashboard access to Tuskar functionality.&lt;br /&gt;
* '''python-tuskarclient''' - A Python client for the Tuskar API, python-tuskarclient is utilized by tuskar-ui.&lt;br /&gt;
&lt;br /&gt;
== Icehouse ==&lt;br /&gt;
&lt;br /&gt;
We are currently finishing up development for the Icehouse timeframe.  For future planning, see the '''Juno''' section.&lt;br /&gt;
&lt;br /&gt;
* [[TripleO/TuskarIcehouseRequirements|Requirements]] ([http://lists.openstack.org/pipermail/openstack-dev/2013-December/021388.html discussion])&lt;br /&gt;
** [[TripleO/Tuskar/IcehouseUserStories|User Stories]] ([http://lists.openstack.org/pipermail/openstack-dev/2013-December/021483.html discussion])&lt;br /&gt;
** [https://docs.google.com/document/d/16rkiXWxxgzGT47_Wc6hzIPzO2-s2JWAPEKD0gP2mt7E/edit?pli=1# OpenStack Personas] &lt;br /&gt;
* Wireframes ([http://lists.openstack.org/pipermail/openstack-dev/2013-December/020944.html discussion])&lt;br /&gt;
** [http://ask-openstackux.rhcloud.com/question/95/tripleo-ui-resource-management/ Resource Management]&lt;br /&gt;
** [http://ask-openstackux.rhcloud.com/question/96/tripleo-ui-deployment-management/ Deployment Management]&lt;br /&gt;
* Architecture (coming soon)&lt;br /&gt;
* Blueprints (coming soon)&lt;br /&gt;
&lt;br /&gt;
== Juno ==&lt;br /&gt;
&lt;br /&gt;
* [[TripleO/TuskarJunoInitialDiscussion|Initial Discussion]]&lt;br /&gt;
* [[TripleO/TuskarJunoPlanning|Planning]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| tuskar&lt;br /&gt;
| tuskar-ui&lt;br /&gt;
| python-tuskarclient&lt;br /&gt;
|-&lt;br /&gt;
|  Source Code&lt;br /&gt;
| https://github.com/openstack/tuskar/&lt;br /&gt;
| https://github.com/openstack/tuskar-ui/&lt;br /&gt;
| https://github.com/openstack/python-tuskarclient&lt;br /&gt;
|-&lt;br /&gt;
| Blueprints&lt;br /&gt;
| https://blueprints.launchpad.net/tuskar&lt;br /&gt;
| https://blueprints.launchpad.net/tuskar-ui&lt;br /&gt;
| https://blueprints.launchpad.net/python-tuskarclient&lt;br /&gt;
|-&lt;br /&gt;
| Bugs&lt;br /&gt;
| https://bugs.launchpad.net/tuskar&lt;br /&gt;
| https://bugs.launchpad.net/tuskar-ui&lt;br /&gt;
| https://bugs.launchpad.net/python-tuskarclient&lt;br /&gt;
|-&lt;br /&gt;
|  Code Reviews&lt;br /&gt;
| https://review.openstack.org/#/q/status:open+project:openstack/tuskar,n,z&lt;br /&gt;
| https://review.openstack.org/#/q/status:open+project:openstack/tuskar-ui,n,z&lt;br /&gt;
| https://review.openstack.org/#/q/status:open+project:openstack/python-tuskarclient,n,z&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
To install both Tuskar and Tuskar UI alongside Devtest, follow the [[Tuskar/Devtest|Devtest installation instructions]]&lt;br /&gt;
&lt;br /&gt;
To install Tuskar by itself, follow these guides:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/openstack/tuskar/blob/master/doc/source/INSTALL.rst Installation Guide]&lt;br /&gt;
* [https://github.com/openstack/tuskar/blob/master/doc/source/CONTRIBUTING.rst Contribution Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To install Tuskar UI by itself, follow the [https://github.com/openstack/tuskar-ui/blob/master/docs/install.rst Tuskar UI Installation Guide]&lt;br /&gt;
&lt;br /&gt;
Once Tuskar and Tuskar UI are set up, follow this [[Tuskar/UsageGuide|Usage Guide]].&lt;br /&gt;
&lt;br /&gt;
== Contact Us ==&lt;br /&gt;
&lt;br /&gt;
Join us on IRC:&lt;br /&gt;
&lt;br /&gt;
  Network: Freenode (irc.freenode.net/tuskar)&lt;br /&gt;
  Channel: #tuskar&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=TripleO/Tuskar&amp;diff=48770</id>
		<title>TripleO/Tuskar</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=TripleO/Tuskar&amp;diff=48770"/>
				<updated>2014-04-15T14:03:39Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Tuskar gives administrators the ability to control how and where OpenStack services are deployed across the datacenter. Using Tuskar,&lt;br /&gt;
administrators divide hardware into &amp;quot;resource classes&amp;quot; that allow predictable elastic scaling as cloud demands grow. This resource&lt;br /&gt;
orchestration allows Tuskar users to ensure SLAs, improve performance, and maximize utilization across the datacenter.&lt;br /&gt;
&lt;br /&gt;
Tuskar services are available via a RESTful API and management console through which administrators are able to classify their hardware and&lt;br /&gt;
define their datacenters. In addition, Tuskar components provide administrators with performance monitoring, health statistics, and usage metrics, aiding in capacity planning and hardware procurement decisions.&lt;br /&gt;
&lt;br /&gt;
For more information, take a look at the [[TripleO/TuskarGlossary|Tuskar Glossary]].&lt;br /&gt;
&lt;br /&gt;
If you're interested in seeing Tuskar in action, [https://www.youtube.com/watch?v=VEY035-Lyzo watch a demo].&lt;br /&gt;
&lt;br /&gt;
=== Sub-Projects ===&lt;br /&gt;
&lt;br /&gt;
Tuskar also consists of two sub-projects:&lt;br /&gt;
&lt;br /&gt;
* '''tuskar-ui''' - Built on top of [[Horizon|Horizon]], tuskar-ui provides dashboard access to Tuskar functionality.&lt;br /&gt;
* '''python-tuskarclient''' - A Python client for the Tuskar API, python-tuskarclient is utilized by tuskar-ui.&lt;br /&gt;
&lt;br /&gt;
== Icehouse ==&lt;br /&gt;
&lt;br /&gt;
We are currently finishing up development for the Icehouse timeframe.  For future planning, see the '''Juno''' section.&lt;br /&gt;
&lt;br /&gt;
* [[TripleO/TuskarIcehouseRequirements|Requirements]] ([http://lists.openstack.org/pipermail/openstack-dev/2013-December/021388.html discussion])&lt;br /&gt;
** [[TripleO/Tuskar/IcehouseUserStories|User Stories]] ([http://lists.openstack.org/pipermail/openstack-dev/2013-December/021483.html discussion])&lt;br /&gt;
** [https://docs.google.com/document/d/16rkiXWxxgzGT47_Wc6hzIPzO2-s2JWAPEKD0gP2mt7E/edit?pli=1# OpenStack Personas] &lt;br /&gt;
* Wireframes ([http://lists.openstack.org/pipermail/openstack-dev/2013-December/020944.html discussion])&lt;br /&gt;
** [http://ask-openstackux.rhcloud.com/question/95/tripleo-ui-resource-management/ Resource Management]&lt;br /&gt;
** [http://ask-openstackux.rhcloud.com/question/96/tripleo-ui-deployment-management/ Deployment Management]&lt;br /&gt;
* Architecture (coming soon)&lt;br /&gt;
* Blueprints (coming soon)&lt;br /&gt;
&lt;br /&gt;
== Juno ==&lt;br /&gt;
&lt;br /&gt;
* [[TripleO/TuskarJunoInitialDiscussion|Initial Discussion]]&lt;br /&gt;
* [[TripleO/TuskarJunoPlanning|Planning]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| tuskar&lt;br /&gt;
| tuskar-ui&lt;br /&gt;
| python-tuskarclient&lt;br /&gt;
|-&lt;br /&gt;
|  Source Code&lt;br /&gt;
| https://github.com/openstack/tuskar/&lt;br /&gt;
| https://github.com/openstack/tuskar-ui/&lt;br /&gt;
| https://github.com/openstack/python-tuskarclient&lt;br /&gt;
|-&lt;br /&gt;
| Blueprints&lt;br /&gt;
| https://blueprints.launchpad.net/tuskar&lt;br /&gt;
| https://blueprints.launchpad.net/tuskar-ui&lt;br /&gt;
| https://blueprints.launchpad.net/python-tuskarclient&lt;br /&gt;
|-&lt;br /&gt;
| Bugs&lt;br /&gt;
| https://bugs.launchpad.net/tuskar&lt;br /&gt;
| https://bugs.launchpad.net/tuskar-ui&lt;br /&gt;
| https://bugs.launchpad.net/python-tuskarclient&lt;br /&gt;
|-&lt;br /&gt;
|  Code Reviews&lt;br /&gt;
| https://review.openstack.org/#/q/status:open+project:openstack/tuskar,n,z&lt;br /&gt;
| https://review.openstack.org/#/q/status:open+project:openstack/tuskar-ui,n,z&lt;br /&gt;
| https://review.openstack.org/#/q/status:open+project:openstack/python-tuskarclient,n,z&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
To install both Tuskar and Tuskar UI alongside Devtest, follow this guide:&lt;br /&gt;
&lt;br /&gt;
* [[Tuskar/Devtest|Devtest installation instructions]]&lt;br /&gt;
&lt;br /&gt;
To install Tuskar by itself, follow these guides:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/openstack/tuskar/blob/master/doc/source/INSTALL.rst Installation Guide]&lt;br /&gt;
* [https://github.com/openstack/tuskar/blob/master/doc/source/CONTRIBUTING.rst Contribution Guide]&lt;br /&gt;
&lt;br /&gt;
To install Tuskar UI by itself, follow this guide:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/openstack/tuskar-ui/blob/master/docs/install.rst Installation Guide]&lt;br /&gt;
&lt;br /&gt;
== Contact Us ==&lt;br /&gt;
&lt;br /&gt;
Join us on IRC:&lt;br /&gt;
&lt;br /&gt;
  Network: Freenode (irc.freenode.net/tuskar)&lt;br /&gt;
  Channel: #tuskar&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=TripleO/Tuskar&amp;diff=47876</id>
		<title>TripleO/Tuskar</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=TripleO/Tuskar&amp;diff=47876"/>
				<updated>2014-04-07T08:44:28Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Getting Started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Tuskar gives administrators the ability to control how and where OpenStack services are deployed across the datacenter. Using Tuskar,&lt;br /&gt;
administrators divide hardware into &amp;quot;resource classes&amp;quot; that allow predictable elastic scaling as cloud demands grow. This resource&lt;br /&gt;
orchestration allows Tuskar users to ensure SLAs, improve performance, and maximize utilization across the datacenter.&lt;br /&gt;
&lt;br /&gt;
Tuskar services are available via a RESTful API and management console through which administrators are able to classify their hardware and&lt;br /&gt;
define their datacenters. In addition, Tuskar components provide administrators with performance monitoring, health statistics, and usage metrics, aiding in capacity planning and hardware procurement decisions.&lt;br /&gt;
&lt;br /&gt;
For more information, take a look at the [[TripleO/TuskarGlossary|Tuskar Glossary]].&lt;br /&gt;
&lt;br /&gt;
If you're interested in seeing Tuskar in action, [https://www.youtube.com/watch?v=VEY035-Lyzo watch a demo].&lt;br /&gt;
&lt;br /&gt;
=== Sub-Projects ===&lt;br /&gt;
&lt;br /&gt;
Tuskar also consists of two sub-projects:&lt;br /&gt;
&lt;br /&gt;
* '''tuskar-ui''' - Built on top of [[Horizon|Horizon]], tuskar-ui provides dashboard access to Tuskar functionality.&lt;br /&gt;
* '''python-tuskarclient''' - A Python client for the Tuskar API, python-tuskarclient is utilized by tuskar-ui.&lt;br /&gt;
&lt;br /&gt;
== Icehouse ==&lt;br /&gt;
&lt;br /&gt;
We are currently finishing up development for the Icehouse timeframe.  For future planning, see the '''Juno''' section.&lt;br /&gt;
&lt;br /&gt;
* [[TripleO/TuskarIcehouseRequirements|Requirements]] ([http://lists.openstack.org/pipermail/openstack-dev/2013-December/021388.html discussion])&lt;br /&gt;
** [[TripleO/Tuskar/IcehouseUserStories|User Stories]] ([http://lists.openstack.org/pipermail/openstack-dev/2013-December/021483.html discussion])&lt;br /&gt;
** [https://docs.google.com/document/d/16rkiXWxxgzGT47_Wc6hzIPzO2-s2JWAPEKD0gP2mt7E/edit?pli=1# OpenStack Personas] &lt;br /&gt;
* Wireframes ([http://lists.openstack.org/pipermail/openstack-dev/2013-December/020944.html discussion])&lt;br /&gt;
** [http://ask-openstackux.rhcloud.com/question/95/tripleo-ui-resource-management/ Resource Management]&lt;br /&gt;
** [http://ask-openstackux.rhcloud.com/question/96/tripleo-ui-deployment-management/ Deployment Management]&lt;br /&gt;
* Architecture (coming soon)&lt;br /&gt;
* Blueprints (coming soon)&lt;br /&gt;
&lt;br /&gt;
== Juno ==&lt;br /&gt;
&lt;br /&gt;
* [[TripleO/TuskarJunoInitialDiscussion|Initial Discussion]]&lt;br /&gt;
* [[TripleO/TuskarJunoPlanning|Planning]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| tuskar&lt;br /&gt;
| tuskar-ui&lt;br /&gt;
| python-tuskarclient&lt;br /&gt;
|-&lt;br /&gt;
|  Source Code&lt;br /&gt;
| https://github.com/openstack/tuskar/&lt;br /&gt;
| https://github.com/openstack/tuskar-ui/&lt;br /&gt;
| https://github.com/openstack/python-tuskarclient&lt;br /&gt;
|-&lt;br /&gt;
| Blueprints&lt;br /&gt;
| https://blueprints.launchpad.net/tuskar&lt;br /&gt;
| https://blueprints.launchpad.net/tuskar-ui&lt;br /&gt;
| https://blueprints.launchpad.net/python-tuskarclient&lt;br /&gt;
|-&lt;br /&gt;
| Bugs&lt;br /&gt;
| https://bugs.launchpad.net/tuskar&lt;br /&gt;
| https://bugs.launchpad.net/tuskar-ui&lt;br /&gt;
| https://bugs.launchpad.net/python-tuskarclient&lt;br /&gt;
|-&lt;br /&gt;
|  Code Reviews&lt;br /&gt;
| https://review.openstack.org/#/q/status:open+project:openstack/tuskar,n,z&lt;br /&gt;
| https://review.openstack.org/#/q/status:open+project:openstack/tuskar-ui,n,z&lt;br /&gt;
| https://review.openstack.org/#/q/status:open+project:openstack/python-tuskarclient,n,z&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
To install both Tuskar and Tuskar UI alongside Devtest, follow this guide:&lt;br /&gt;
&lt;br /&gt;
* [[Tuskar/Devtest|Devtest installation instructions]]&lt;br /&gt;
&lt;br /&gt;
To install Tuskar by itself, follow these guides:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/openstack/tuskar/blob/master/doc/source/INSTALL.rst Installation Guide]&lt;br /&gt;
* [https://github.com/openstack/tuskar/blob/master/doc/source/CONTRIBUTING.rst Contribution Guide]&lt;br /&gt;
&lt;br /&gt;
To install Tuskar UI by itself, follow this guide:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/openstack/tuskar-ui/blob/master/docs/install.rst Installation Guide]&lt;br /&gt;
&lt;br /&gt;
== Additional Documentation ==&lt;br /&gt;
&lt;br /&gt;
'''API'''&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/openstack/tuskar/blob/master/docs/api/api.md API Information]&lt;br /&gt;
* [https://github.com/openstack/tuskar/blob/master/docs/api/curl.rst cURL Commands]&lt;br /&gt;
* [https://github.com/openstack/tuskar/blob/master/docs/resource-class-demo-script.rst Resource Class Demo Script] (uses cURL)&lt;br /&gt;
&lt;br /&gt;
'''Other'''&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/openstack/tuskar/blob/master/docs/debugging-with-ipython.rst Debugging with iPython]&lt;br /&gt;
* [https://github.com/openstack/tuskar/blob/master/docs/demo-data-script.rst Demo Data Script]&lt;br /&gt;
&lt;br /&gt;
== Contact Us ==&lt;br /&gt;
&lt;br /&gt;
Join us on IRC:&lt;br /&gt;
&lt;br /&gt;
  Network: Freenode (irc.freenode.net/tuskar)&lt;br /&gt;
  Channel: #tuskar&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Tuskar/Devtest&amp;diff=47875</id>
		<title>Tuskar/Devtest</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Tuskar/Devtest&amp;diff=47875"/>
				<updated>2014-04-07T08:43:04Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Add Horizon and Tuskar-UI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
Devtest is a script that creates a development environment for TripleO / Tuskar / TuskarUI development. Below you can find step-by-step instructions for setting up the environment using devtest. If you would like more information about how devtest works as well as the script itself, see the following links&lt;br /&gt;
* http://docs.openstack.org/developer/tripleo-incubator/index.html&lt;br /&gt;
* https://github.com/openstack/tripleo-incubator/blob/master/scripts/devtest.sh&lt;br /&gt;
However, following the steps below should lead to a complete functioning setup.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
=== Setup devtest ===&lt;br /&gt;
All commands (unless otherwise specified) should be run as root, in a dedicated machine you will use for TripleO development. We will call this machine &amp;quot;the lab machine&amp;quot; or &amp;quot;the lab server&amp;quot;. The setup has been tested with lab machines running Fedora 19.&lt;br /&gt;
&lt;br /&gt;
Note: You might want to move the location of the default libvirt storage pool. The default location is /var/lib/libvirt/images. Depending on your file system / partitions setup, there might not be enough space for images at this default location. To be on the safe side, you can move it to another location which has plenty of space. Below is an example how to move the default storage pool location to /home/images. If you are sure that there is enough space at the default location, you can skip this step.&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/images&lt;br /&gt;
 yum install -y libvirt&lt;br /&gt;
 service libvirtd start&lt;br /&gt;
 virsh pool-destroy default&lt;br /&gt;
 virsh pool-undefine default&lt;br /&gt;
 virsh pool-define-as default dir --target /home/images&lt;br /&gt;
 virsh pool-start default&lt;br /&gt;
 virsh pool-autostart default&lt;br /&gt;
 service libvirtd restart&lt;br /&gt;
&lt;br /&gt;
Install git and kvm. Installing kvm at this point sets the ownership of the /dev/kvm correctly (it should be owned by the root user and kvm group). If you don't do this, devtest will fail due to incorrectly set ownership of /dev/kvm.&lt;br /&gt;
 yum -y install git kvm&lt;br /&gt;
&lt;br /&gt;
Check access rights on /dev/kvm afterwards. If group is not kvm or group doesn't have rw on this file, execute the following commands and reboot:&lt;br /&gt;
 chgrp kvm /dev/kvm&lt;br /&gt;
 chmod g+rw /dev/kvm&lt;br /&gt;
&lt;br /&gt;
Create devtest configuration file:&lt;br /&gt;
 cat &amp;lt;&amp;lt;'EOF' &amp;gt; ~/.devtestrc&lt;br /&gt;
 export NODE_CPU=1 NODE_MEM=4096 NODE_DISK=60 NODE_ARCH=amd64&lt;br /&gt;
 export NODE_DIST=&amp;quot;fedora selinux-permissive&amp;quot;&lt;br /&gt;
 export DIB_RELEASE=20&lt;br /&gt;
 export UNDERCLOUD_DIB_EXTRA_ARGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export OVERCLOUD_DIB_EXTRA_ARGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export OVERCLOUD_COMPUTESCALE=1&lt;br /&gt;
 export TRIPLEO_CLEANUP=1&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
Clone the tripleo-incubator repo and run the devtest script:&lt;br /&gt;
 export TRIPLEO_ROOT=~/tripleo&lt;br /&gt;
 mkdir -p $TRIPLEO_ROOT&lt;br /&gt;
 cd $TRIPLEO_ROOT&lt;br /&gt;
 git clone https://git.openstack.org/openstack/tripleo-incubator&lt;br /&gt;
 $TRIPLEO_ROOT/tripleo-incubator/scripts/devtest.sh --trash-my-machine&lt;br /&gt;
 # wait around 2+ hours&lt;br /&gt;
 # mawagner: if openvswitch fails to start, see https://bugzilla.redhat.com/show_bug.cgi?id=1006412 (or just mkdir /var/lock/subsys)&lt;br /&gt;
&lt;br /&gt;
Create more baremetals, you can use their MAC addresses to register them from the UI later, so save the MACS somewhere &lt;br /&gt;
 source $TRIPLEO_ROOT/tripleorc&lt;br /&gt;
 source tripleo-incubator/scripts/devtest_variables.sh&lt;br /&gt;
 source ./tripleo-undercloud-passwords&lt;br /&gt;
 source ./tripleo-incubator/undercloudrc&lt;br /&gt;
 source ~/.devtestrc&lt;br /&gt;
 export SSH_USER=$(whoami)&lt;br /&gt;
 export HOSTIP=${HOSTIP:-192.168.122.1}&lt;br /&gt;
 &lt;br /&gt;
 export MORE_MACS=$(create-nodes $NODE_CPU $NODE_MEM $NODE_DISK $NODE_ARCH 4 $SSH_USER $HOSTIP $TE_DATAFILE | tr '\r\n' ' ')&lt;br /&gt;
&lt;br /&gt;
To be able to deploy block-storage role, you will need image for it in glance, here is pre-built image&lt;br /&gt;
 curl -L -O &amp;quot;https://s3-eu-west-1.amazonaws.com/somerandomname/overcloud-cinder-volume.qcow2&amp;quot;&lt;br /&gt;
 load-image overcloud-cinder-volume.qcow2&lt;br /&gt;
&lt;br /&gt;
To be able to deploy object storage node, you need this&lt;br /&gt;
 $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST \&lt;br /&gt;
        -a $NODE_ARCH -o $TRIPLEO_ROOT/overcloud-swift-storage hosts \&lt;br /&gt;
        baremetal swift-storage neutron-openvswitch-agent os-collect-config \&lt;br /&gt;
        dhcp-all-interfaces $DIB_COMMON_ELEMENTS $OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS 2&amp;gt;&amp;amp;1 | \&lt;br /&gt;
        tee $TRIPLEO_ROOT/dib-overcloud-swift-storage.log&lt;br /&gt;
&lt;br /&gt;
  load-image overcloud-swift-storage.qcow2&lt;br /&gt;
&lt;br /&gt;
To list MAC's for virsh listed machines run&lt;br /&gt;
 virsh list --all&lt;br /&gt;
 virsh dumpxml baremetal_0 | grep 'mac address' | cut -d\' -f2&lt;br /&gt;
&lt;br /&gt;
At this point, your devtest environment is configured. To proceed, you need to install Tuskar, Horizon and Tuskar-UI, since they are not installed by devtest.&lt;br /&gt;
&lt;br /&gt;
=== Install Tuskar ===&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /opt/stack &amp;amp;&amp;amp; cd /opt/stack&lt;br /&gt;
 git clone https://git.openstack.org/openstack/tuskar&lt;br /&gt;
&lt;br /&gt;
Follow the instructions here to complete the install: https://github.com/openstack/tuskar/blob/master/doc/source/INSTALL.rst. Make sure that you create the initial data.&lt;br /&gt;
&lt;br /&gt;
=== Add Horizon and Tuskar-UI ===&lt;br /&gt;
Install and configure Horizon and Tuskar-UI using the instructions at: https://github.com/openstack/tuskar-ui/blob/master/docs/install.rst.  Make sure to clone the horizon and tuskar-ui repositories in /opt/stack.&lt;br /&gt;
&lt;br /&gt;
.Afterwards, copy /root/stackrc from the undercloud to the lab machine, change the OS_AUTH_URL to point to the undercloud, and source it:&lt;br /&gt;
 ssh heat-admin@192.0.2.3 &amp;quot;sudo -i cat /root/stackrc&amp;quot; &amp;gt; /root/stackrc&lt;br /&gt;
 sed -i 's/localhost:5000/192.0.2.3:5000/' /root/stackrc&lt;br /&gt;
 source /root/stackrc&lt;br /&gt;
&lt;br /&gt;
Configure OPENSTACK_HOST in horizon settings to point to the undercloud machine:&lt;br /&gt;
 sed -i 's/OPENSTACK_HOST = &amp;quot;127.0.0.1&amp;quot;/OPENSTACK_HOST = &amp;quot;192.0.2.3&amp;quot;/' /opt/stack/horizon/openstack_dashboard/local/local_settings.py&lt;br /&gt;
&lt;br /&gt;
Start the server:&lt;br /&gt;
 tools/with_venv.sh ./manage.py runserver 0.0.0.0:8111&lt;br /&gt;
&lt;br /&gt;
Now you can see the UI from your browser (you can find credentials for dashboard in undercloud machine in /root/stackrc):&lt;br /&gt;
 lab-machine:8111&lt;br /&gt;
&lt;br /&gt;
If you want to develop locally, you need only to mount the remote folder containing the code, in your local file system:&lt;br /&gt;
 yum install -y sshfs &amp;amp;&amp;amp; mkdir -p ~/devtest&lt;br /&gt;
 sshfs root@lab-machine:/opt/stack/ ~/devtest&lt;br /&gt;
&lt;br /&gt;
=== Script for installing Tuskar and Tuskar UI ===&lt;br /&gt;
There is a script to automatically do previous two steps: https://gist.github.com/Divius/9525147. It clones to the current directory, uses sudo to do privileged operations, so it can be used by non-root. The only requirement is that stackrc file is in the current directory. Also note that the script is mostly unsupported and can become outdated.&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Tuskar/Devtest&amp;diff=47874</id>
		<title>Tuskar/Devtest</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Tuskar/Devtest&amp;diff=47874"/>
				<updated>2014-04-07T08:42:45Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
Devtest is a script that creates a development environment for TripleO / Tuskar / TuskarUI development. Below you can find step-by-step instructions for setting up the environment using devtest. If you would like more information about how devtest works as well as the script itself, see the following links&lt;br /&gt;
* http://docs.openstack.org/developer/tripleo-incubator/index.html&lt;br /&gt;
* https://github.com/openstack/tripleo-incubator/blob/master/scripts/devtest.sh&lt;br /&gt;
However, following the steps below should lead to a complete functioning setup.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
=== Setup devtest ===&lt;br /&gt;
All commands (unless otherwise specified) should be run as root, in a dedicated machine you will use for TripleO development. We will call this machine &amp;quot;the lab machine&amp;quot; or &amp;quot;the lab server&amp;quot;. The setup has been tested with lab machines running Fedora 19.&lt;br /&gt;
&lt;br /&gt;
Note: You might want to move the location of the default libvirt storage pool. The default location is /var/lib/libvirt/images. Depending on your file system / partitions setup, there might not be enough space for images at this default location. To be on the safe side, you can move it to another location which has plenty of space. Below is an example how to move the default storage pool location to /home/images. If you are sure that there is enough space at the default location, you can skip this step.&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/images&lt;br /&gt;
 yum install -y libvirt&lt;br /&gt;
 service libvirtd start&lt;br /&gt;
 virsh pool-destroy default&lt;br /&gt;
 virsh pool-undefine default&lt;br /&gt;
 virsh pool-define-as default dir --target /home/images&lt;br /&gt;
 virsh pool-start default&lt;br /&gt;
 virsh pool-autostart default&lt;br /&gt;
 service libvirtd restart&lt;br /&gt;
&lt;br /&gt;
Install git and kvm. Installing kvm at this point sets the ownership of the /dev/kvm correctly (it should be owned by the root user and kvm group). If you don't do this, devtest will fail due to incorrectly set ownership of /dev/kvm.&lt;br /&gt;
 yum -y install git kvm&lt;br /&gt;
&lt;br /&gt;
Check access rights on /dev/kvm afterwards. If group is not kvm or group doesn't have rw on this file, execute the following commands and reboot:&lt;br /&gt;
 chgrp kvm /dev/kvm&lt;br /&gt;
 chmod g+rw /dev/kvm&lt;br /&gt;
&lt;br /&gt;
Create devtest configuration file:&lt;br /&gt;
 cat &amp;lt;&amp;lt;'EOF' &amp;gt; ~/.devtestrc&lt;br /&gt;
 export NODE_CPU=1 NODE_MEM=4096 NODE_DISK=60 NODE_ARCH=amd64&lt;br /&gt;
 export NODE_DIST=&amp;quot;fedora selinux-permissive&amp;quot;&lt;br /&gt;
 export DIB_RELEASE=20&lt;br /&gt;
 export UNDERCLOUD_DIB_EXTRA_ARGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export OVERCLOUD_DIB_EXTRA_ARGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export OVERCLOUD_COMPUTESCALE=1&lt;br /&gt;
 export TRIPLEO_CLEANUP=1&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
Clone the tripleo-incubator repo and run the devtest script:&lt;br /&gt;
 export TRIPLEO_ROOT=~/tripleo&lt;br /&gt;
 mkdir -p $TRIPLEO_ROOT&lt;br /&gt;
 cd $TRIPLEO_ROOT&lt;br /&gt;
 git clone https://git.openstack.org/openstack/tripleo-incubator&lt;br /&gt;
 $TRIPLEO_ROOT/tripleo-incubator/scripts/devtest.sh --trash-my-machine&lt;br /&gt;
 # wait around 2+ hours&lt;br /&gt;
 # mawagner: if openvswitch fails to start, see https://bugzilla.redhat.com/show_bug.cgi?id=1006412 (or just mkdir /var/lock/subsys)&lt;br /&gt;
&lt;br /&gt;
Create more baremetals, you can use their MAC addresses to register them from the UI later, so save the MACS somewhere &lt;br /&gt;
 source $TRIPLEO_ROOT/tripleorc&lt;br /&gt;
 source tripleo-incubator/scripts/devtest_variables.sh&lt;br /&gt;
 source ./tripleo-undercloud-passwords&lt;br /&gt;
 source ./tripleo-incubator/undercloudrc&lt;br /&gt;
 source ~/.devtestrc&lt;br /&gt;
 export SSH_USER=$(whoami)&lt;br /&gt;
 export HOSTIP=${HOSTIP:-192.168.122.1}&lt;br /&gt;
 &lt;br /&gt;
 export MORE_MACS=$(create-nodes $NODE_CPU $NODE_MEM $NODE_DISK $NODE_ARCH 4 $SSH_USER $HOSTIP $TE_DATAFILE | tr '\r\n' ' ')&lt;br /&gt;
&lt;br /&gt;
To be able to deploy block-storage role, you will need image for it in glance, here is pre-built image&lt;br /&gt;
 curl -L -O &amp;quot;https://s3-eu-west-1.amazonaws.com/somerandomname/overcloud-cinder-volume.qcow2&amp;quot;&lt;br /&gt;
 load-image overcloud-cinder-volume.qcow2&lt;br /&gt;
&lt;br /&gt;
To be able to deploy object storage node, you need this&lt;br /&gt;
 $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST \&lt;br /&gt;
        -a $NODE_ARCH -o $TRIPLEO_ROOT/overcloud-swift-storage hosts \&lt;br /&gt;
        baremetal swift-storage neutron-openvswitch-agent os-collect-config \&lt;br /&gt;
        dhcp-all-interfaces $DIB_COMMON_ELEMENTS $OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS 2&amp;gt;&amp;amp;1 | \&lt;br /&gt;
        tee $TRIPLEO_ROOT/dib-overcloud-swift-storage.log&lt;br /&gt;
&lt;br /&gt;
  load-image overcloud-swift-storage.qcow2&lt;br /&gt;
&lt;br /&gt;
To list MAC's for virsh listed machines run&lt;br /&gt;
 virsh list --all&lt;br /&gt;
 virsh dumpxml baremetal_0 | grep 'mac address' | cut -d\' -f2&lt;br /&gt;
&lt;br /&gt;
At this point, your devtest environment is configured. To proceed, you need to install Tuskar, Horizon and Tuskar-UI, since they are not installed by devtest.&lt;br /&gt;
&lt;br /&gt;
=== Install Tuskar ===&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /opt/stack &amp;amp;&amp;amp; cd /opt/stack&lt;br /&gt;
 git clone https://git.openstack.org/openstack/tuskar&lt;br /&gt;
&lt;br /&gt;
Follow the instructions here to complete the install: https://github.com/openstack/tuskar/blob/master/doc/source/INSTALL.rst. Make sure that you create the initial data.&lt;br /&gt;
&lt;br /&gt;
=== Add Horizon and Tuskar-UI ===&lt;br /&gt;
Install and configure Horizon and Tuskar-UI using the instructions at: Follow the instructions here to complete the install: https://github.com/openstack/tuskar-ui/blob/master/docs/install.rst.  Make sure to clone the horizon and tuskar-ui repositories in /opt/stack.&lt;br /&gt;
&lt;br /&gt;
.Afterwards, copy /root/stackrc from the undercloud to the lab machine, change the OS_AUTH_URL to point to the undercloud, and source it:&lt;br /&gt;
 ssh heat-admin@192.0.2.3 &amp;quot;sudo -i cat /root/stackrc&amp;quot; &amp;gt; /root/stackrc&lt;br /&gt;
 sed -i 's/localhost:5000/192.0.2.3:5000/' /root/stackrc&lt;br /&gt;
 source /root/stackrc&lt;br /&gt;
&lt;br /&gt;
Configure OPENSTACK_HOST in horizon settings to point to the undercloud machine:&lt;br /&gt;
 sed -i 's/OPENSTACK_HOST = &amp;quot;127.0.0.1&amp;quot;/OPENSTACK_HOST = &amp;quot;192.0.2.3&amp;quot;/' /opt/stack/horizon/openstack_dashboard/local/local_settings.py&lt;br /&gt;
&lt;br /&gt;
Start the server:&lt;br /&gt;
 tools/with_venv.sh ./manage.py runserver 0.0.0.0:8111&lt;br /&gt;
&lt;br /&gt;
Now you can see the UI from your browser (you can find credentials for dashboard in undercloud machine in /root/stackrc):&lt;br /&gt;
 lab-machine:8111&lt;br /&gt;
&lt;br /&gt;
If you want to develop locally, you need only to mount the remote folder containing the code, in your local file system:&lt;br /&gt;
 yum install -y sshfs &amp;amp;&amp;amp; mkdir -p ~/devtest&lt;br /&gt;
 sshfs root@lab-machine:/opt/stack/ ~/devtest&lt;br /&gt;
&lt;br /&gt;
=== Script for installing Tuskar and Tuskar UI ===&lt;br /&gt;
There is a script to automatically do previous two steps: https://gist.github.com/Divius/9525147. It clones to the current directory, uses sudo to do privileged operations, so it can be used by non-root. The only requirement is that stackrc file is in the current directory. Also note that the script is mostly unsupported and can become outdated.&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=TripleO/Tuskar&amp;diff=47873</id>
		<title>TripleO/Tuskar</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=TripleO/Tuskar&amp;diff=47873"/>
				<updated>2014-04-07T08:39:19Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Getting Started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Tuskar gives administrators the ability to control how and where OpenStack services are deployed across the datacenter. Using Tuskar,&lt;br /&gt;
administrators divide hardware into &amp;quot;resource classes&amp;quot; that allow predictable elastic scaling as cloud demands grow. This resource&lt;br /&gt;
orchestration allows Tuskar users to ensure SLAs, improve performance, and maximize utilization across the datacenter.&lt;br /&gt;
&lt;br /&gt;
Tuskar services are available via a RESTful API and management console through which administrators are able to classify their hardware and&lt;br /&gt;
define their datacenters. In addition, Tuskar components provide administrators with performance monitoring, health statistics, and usage metrics, aiding in capacity planning and hardware procurement decisions.&lt;br /&gt;
&lt;br /&gt;
For more information, take a look at the [[TripleO/TuskarGlossary|Tuskar Glossary]].&lt;br /&gt;
&lt;br /&gt;
If you're interested in seeing Tuskar in action, [https://www.youtube.com/watch?v=VEY035-Lyzo watch a demo].&lt;br /&gt;
&lt;br /&gt;
=== Sub-Projects ===&lt;br /&gt;
&lt;br /&gt;
Tuskar also consists of two sub-projects:&lt;br /&gt;
&lt;br /&gt;
* '''tuskar-ui''' - Built on top of [[Horizon|Horizon]], tuskar-ui provides dashboard access to Tuskar functionality.&lt;br /&gt;
* '''python-tuskarclient''' - A Python client for the Tuskar API, python-tuskarclient is utilized by tuskar-ui.&lt;br /&gt;
&lt;br /&gt;
== Icehouse ==&lt;br /&gt;
&lt;br /&gt;
We are currently finishing up development for the Icehouse timeframe.  For future planning, see the '''Juno''' section.&lt;br /&gt;
&lt;br /&gt;
* [[TripleO/TuskarIcehouseRequirements|Requirements]] ([http://lists.openstack.org/pipermail/openstack-dev/2013-December/021388.html discussion])&lt;br /&gt;
** [[TripleO/Tuskar/IcehouseUserStories|User Stories]] ([http://lists.openstack.org/pipermail/openstack-dev/2013-December/021483.html discussion])&lt;br /&gt;
** [https://docs.google.com/document/d/16rkiXWxxgzGT47_Wc6hzIPzO2-s2JWAPEKD0gP2mt7E/edit?pli=1# OpenStack Personas] &lt;br /&gt;
* Wireframes ([http://lists.openstack.org/pipermail/openstack-dev/2013-December/020944.html discussion])&lt;br /&gt;
** [http://ask-openstackux.rhcloud.com/question/95/tripleo-ui-resource-management/ Resource Management]&lt;br /&gt;
** [http://ask-openstackux.rhcloud.com/question/96/tripleo-ui-deployment-management/ Deployment Management]&lt;br /&gt;
* Architecture (coming soon)&lt;br /&gt;
* Blueprints (coming soon)&lt;br /&gt;
&lt;br /&gt;
== Juno ==&lt;br /&gt;
&lt;br /&gt;
* [[TripleO/TuskarJunoInitialDiscussion|Initial Discussion]]&lt;br /&gt;
* [[TripleO/TuskarJunoPlanning|Planning]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| tuskar&lt;br /&gt;
| tuskar-ui&lt;br /&gt;
| python-tuskarclient&lt;br /&gt;
|-&lt;br /&gt;
|  Source Code&lt;br /&gt;
| https://github.com/openstack/tuskar/&lt;br /&gt;
| https://github.com/openstack/tuskar-ui/&lt;br /&gt;
| https://github.com/openstack/python-tuskarclient&lt;br /&gt;
|-&lt;br /&gt;
| Blueprints&lt;br /&gt;
| https://blueprints.launchpad.net/tuskar&lt;br /&gt;
| https://blueprints.launchpad.net/tuskar-ui&lt;br /&gt;
| https://blueprints.launchpad.net/python-tuskarclient&lt;br /&gt;
|-&lt;br /&gt;
| Bugs&lt;br /&gt;
| https://bugs.launchpad.net/tuskar&lt;br /&gt;
| https://bugs.launchpad.net/tuskar-ui&lt;br /&gt;
| https://bugs.launchpad.net/python-tuskarclient&lt;br /&gt;
|-&lt;br /&gt;
|  Code Reviews&lt;br /&gt;
| https://review.openstack.org/#/q/status:open+project:openstack/tuskar,n,z&lt;br /&gt;
| https://review.openstack.org/#/q/status:open+project:openstack/tuskar-ui,n,z&lt;br /&gt;
| https://review.openstack.org/#/q/status:open+project:openstack/python-tuskarclient,n,z&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
To install Tuskar, follow these guides:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/openstack/tuskar/blob/master/doc/source/INSTALL.rst Installation Guide]&lt;br /&gt;
* [https://github.com/openstack/tuskar/blob/master/doc/source/CONTRIBUTING.rst Contribution Guide]&lt;br /&gt;
&lt;br /&gt;
To install Tuskar UI, follow this guide:&lt;br /&gt;
&lt;br /&gt;
* [[Tuskar/Devtest|Devtest installation instructions]]&lt;br /&gt;
* [https://github.com/openstack/tuskar-ui/blob/master/docs/install.rst Installation Guide]&lt;br /&gt;
&lt;br /&gt;
== Additional Documentation ==&lt;br /&gt;
&lt;br /&gt;
'''API'''&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/openstack/tuskar/blob/master/docs/api/api.md API Information]&lt;br /&gt;
* [https://github.com/openstack/tuskar/blob/master/docs/api/curl.rst cURL Commands]&lt;br /&gt;
* [https://github.com/openstack/tuskar/blob/master/docs/resource-class-demo-script.rst Resource Class Demo Script] (uses cURL)&lt;br /&gt;
&lt;br /&gt;
'''Other'''&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/openstack/tuskar/blob/master/docs/debugging-with-ipython.rst Debugging with iPython]&lt;br /&gt;
* [https://github.com/openstack/tuskar/blob/master/docs/demo-data-script.rst Demo Data Script]&lt;br /&gt;
&lt;br /&gt;
== Contact Us ==&lt;br /&gt;
&lt;br /&gt;
Join us on IRC:&lt;br /&gt;
&lt;br /&gt;
  Network: Freenode (irc.freenode.net/tuskar)&lt;br /&gt;
  Channel: #tuskar&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47781</id>
		<title>TripleO/TuskarJunoPlanning</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47781"/>
				<updated>2014-04-04T20:34:13Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This planning document is born from discussions from the TripleO mid-cycle Icehouse meetup in Sunnyvale ([[TripleO/TuskarJunoInitialDiscussion]], [https://etherpad.openstack.org/p/openstack-management-features OpenStack Management Features]).  The ideas iterated there were then individually fleshed out and detailed, with much input coming from conversations with other OpenStack projects.&lt;br /&gt;
&lt;br /&gt;
Our principal concerns duing the Juno cycle are:&lt;br /&gt;
&lt;br /&gt;
* integrating further with other OpenStack services, using their capabilities to enhance our TripleO management experience&lt;br /&gt;
* ensuring that Tuskar does not try to implement functionality that is better located in other projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document details our high-level goals for Juno.  It does so at multiple levels; for each we provide:&lt;br /&gt;
&lt;br /&gt;
* a description of the goal&lt;br /&gt;
* a list of project requirements and/or blueprints needed&lt;br /&gt;
&lt;br /&gt;
== Cloud Service Representation ==&lt;br /&gt;
&lt;br /&gt;
A cloud service represents a cloud function - provisioning service, storage service, message broker, database server, etc. A cloud service is fulfilled by a cloud service element; for example, a user can fulfill the message broker cloud service by either choosing the qpid-server element or the rabbitmq-server element.&lt;br /&gt;
&lt;br /&gt;
With the cloud service concept in play, overcloud roles are updated as follows: instead of being associated with images, they are associated with a list of cloud service elements.  This provides greater flexibility for the Tuskar user when designing the scalable components of a cloud. For example, instead of being limited to a Controller role, the user can separate out the network components of that role into a Network role and scale it individually.&lt;br /&gt;
&lt;br /&gt;
[[File:Tuskar-service-model.png|Tuskar Service Model]]&lt;br /&gt;
&lt;br /&gt;
For Juno, Tuskar will provide role defaults or suggestions corresponding to current default roles in Icehouse, as well as an &amp;quot;All-in-One&amp;quot; role.   Each default role will be automatically associated with a list of cloud service elements and a pre-created image.  Later iterations of Tuskar will allow for more user customization in this area.&lt;br /&gt;
&lt;br /&gt;
If possible, we would also like to support customized roles that specify their own elements.  This would require the development of additional TripleO features as described in a later section ('''Custom Roles''').&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* ensure existence of default images&lt;br /&gt;
* create default roles, each associated with a list of elements, an image, and a Heat template&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to accomodate cloud services&lt;br /&gt;
&lt;br /&gt;
== Overcloud Planning and Deployment ==&lt;br /&gt;
&lt;br /&gt;
In Icehouse, the planning stage of overcloud deployment is represented by data stored in Tuskar database tables.  For Juno, we would like to remove the database from Tuskar.  Instead, the planning stage of a deployment will be represented by the full Heat template that would be used to deploy it.  Since Heat does not intend to be a template store, this template will be stored in Swift instead.  When the overcloud is ready to be deployed, the Tuskar service will pull the template out of Swift.&lt;br /&gt;
&lt;br /&gt;
[[File:tuskar-arch-juno.png|Tuskar Architecture]]&lt;br /&gt;
&lt;br /&gt;
Once an overcloud is deployed, all Tuskar interactions with that overcloud should be done through Heat.  This includes queries about running Nova instances and relevant Ironic nodes.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Allow stacks to be updated without forcing the user to re-provide all parameters (https://bugs.launchpad.net/heat/+bug/1224828)&lt;br /&gt;
* Stack update, allow retry from failed states (https://blueprints.launchpad.net/heat/+spec/update-failure-recovery)&lt;br /&gt;
* Stack update, rolling updates (canary deployments etc) (https://blueprints.launchpad.net/heat/+spec/rolling-updates)&lt;br /&gt;
* Stack update, enable cancelling in-progress update (e.g to pause or rollback) (https://blueprints.launchpad.net/heat/+spec/cancel-update-stack)&lt;br /&gt;
* Possibly allow inline specification of provider resources, e.g have a resource which generates a heat template, then refer to it, e.g like type: {get_attr: [SomeResource, template]} (''may not be required by Tuskar'')&lt;br /&gt;
* nested resource templates&lt;br /&gt;
* Stack preview (preview what would happen via stack-create) (https://blueprints.launchpad.net/heat/+spec/preview-stack) (''may not be required for Juno'')&lt;br /&gt;
* Stack check (sync state of stack with the real state of underlying resources, e.g persist out-of-band failures in stack resource states) (https://blueprints.launchpad.net/heat/+spec/stack-check) (''may not be required for Juno'')&lt;br /&gt;
* Stack converge - &amp;quot;fixes&amp;quot; stack and returns to known state (https://blueprints.launchpad.net/heat/+spec/stack-convergence) (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update Heat templates in TripleO for: HOT, provider resources, software config&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* provide default templates for default roles (these will be wrapped in ProviderResources)&lt;br /&gt;
* construct an overcloud template that references the default roles through ProviderResources&lt;br /&gt;
* ensure constructed templates define the appropriate ResourceAttributes to be queried through the UI/CLI&lt;br /&gt;
* given a Heat template constructed in this way, parse it in such a way as to retrieve the role specification and Heat parameters&lt;br /&gt;
* rebuild Tuskar to save and retrieve Heat templates from Swift&lt;br /&gt;
* update CLI as necessary&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update stack queries to take advantage of Heat ResourceAttributes (make sure information is gotten through Heat); for example, Role&lt;br /&gt;
* update deployment workflow&lt;br /&gt;
&lt;br /&gt;
== Custom Roles ==&lt;br /&gt;
&lt;br /&gt;
Although default, predefined roles are the immediate goal, it would be nice to also allow users to define their own roles.  To do so, they would specify their own list of elements.  Tuskar would then use that information to call out to diskimage-builder to create a custom image matching the role; and it would create a custom Heat template for that role that the master overcloud template could then use.&lt;br /&gt;
&lt;br /&gt;
If the above cannot be achieved within Juno, a simpler alternative would be to allow users to specify a custom role, and then associate it with manually created templates and images.&lt;br /&gt;
&lt;br /&gt;
The remainder of the workflow is the same as with default roles.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Diskimage builder resource (question raised wrt ability to spawn VM to host it in seed/undercloud), also OS::GlanceImageUploader resource&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* given an image element, return the list of Heat parameters that it needs&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* given a role specification, use diskimage-builder to construct a matching image (derived from the role's image elements)&lt;br /&gt;
* given a role specification, return the list of Heat parameters that it needs (derived from the role's image elements)&lt;br /&gt;
* given a role specification and its Heat parameters, construct a Heat template for that role that meets those specifications&lt;br /&gt;
* allow user to specify a custom role and associate it with a manually created template and image&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* create custom role workflow&lt;br /&gt;
&lt;br /&gt;
== High Availability ==&lt;br /&gt;
&lt;br /&gt;
One of TripleO's top priorities for Juno is to allow the deployment of a High-Availability (HA) overcloud.  We would like to extend Tuskar to ensure that it can be used to deploy a HA overcloud as well.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* Deploy HA Overcloud&lt;br /&gt;
:* glusterfs &lt;br /&gt;
:* pacemaker, corosync&lt;br /&gt;
:* neutron (?)&lt;br /&gt;
:* heat-engine A/A&lt;br /&gt;
:* qpid proton (assuming amqp 1.0 have merged into oslo.messaging and oslo.messaging have merged in each core project. If not, will use rabbitmq)&lt;br /&gt;
:* etc etc&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support HA&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* deployment workflow support for HA architecture&lt;br /&gt;
&lt;br /&gt;
== Auto-Scaling ==&lt;br /&gt;
&lt;br /&gt;
Having the option for an auto-scaling cloud deployment would be greatly appealing to many users.  Heat is actively working on auto-scaling support, as are other projects.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Inhibit autoscaling during stack abandon/adopt (quiesce and revitalize)&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* hooks to do cleanup on scale-down (e.g host evacuation etc) (https://blueprints.launchpad.net/heat/+spec/update-hooks)&lt;br /&gt;
* choose victim on scale-down, or specify strategy for choosing (e.g oldest first or newest first) (https://blueprints.launchpad.net/heat/+spec/autoscaling-parameters)&lt;br /&gt;
* support complex conditionals when choosing victim on scale-down (e.g get notification or poll metric via ceilometer related to occupancy or other application metrics); possibly handled by above, if we can get ceilometer to pass us appropriate data when signalling the scaling policy, TBC (''may not be required for Juno'')&lt;br /&gt;
* Method to inhibit autoscaling/alarms during abandon/adopt (and suspend/resume?)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to include options that allow an auto-scaled overcloud deployment&lt;br /&gt;
&lt;br /&gt;
== Node Management (Ironic) ==&lt;br /&gt;
&lt;br /&gt;
We would like to switch over to using Ironic in the near future, as there are a host of features that would depend upon it.&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Ironic graduation&lt;br /&gt;
:* CI jobs&lt;br /&gt;
:* Nova driver&lt;br /&gt;
:* Serial console&lt;br /&gt;
:* Migration path&lt;br /&gt;
:* User documentation&lt;br /&gt;
&lt;br /&gt;
* Autodiscovery of nodes&lt;br /&gt;
* Ceilometer&lt;br /&gt;
* Tagging&lt;br /&gt;
* scalability&lt;br /&gt;
&lt;br /&gt;
==== Nova ====&lt;br /&gt;
&lt;br /&gt;
* create a nova filter for exact matches to Ironic nodes (including all node metadata) (https://review.openstack.org/#/c/83728/)&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* Allow settings for Nova Scheduler (https://review.openstack.org/#/c/84131/)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* use exact match filter when deploying overcloud&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* added node tag values to flavor extra_specs&lt;br /&gt;
&lt;br /&gt;
== Metric Graphs ==&lt;br /&gt;
&lt;br /&gt;
Data visualization is a key part of maintaining a cloud.  We would like to start integrating Ceilometer usage into Tuskar.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Combine samples for different meters in a transformer to produce a single derived meter&lt;br /&gt;
* Rollup of course-grained statistics for UI queries&lt;br /&gt;
* Configurable data retention based on rollups&lt;br /&gt;
* Overarching &amp;quot;health&amp;quot; metric for nodes&lt;br /&gt;
* Ceilometer native auth for alarm notifications (and possibly metrics in future) (https://blueprints.launchpad.net/ceilometer/+spec/trust-alarm-notifier)&lt;br /&gt;
* Eliminate central agent SPoF&lt;br /&gt;
* SNMP batch mode, one bulk command per node per polling cycle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For additional data:&lt;br /&gt;
&lt;br /&gt;
* Acquire hardware-oriented metrics via IPMI (e.g., voltage, fan speeds, etc.)&lt;br /&gt;
* Keystone v3 usage would avoid IPMI credentials; allowing pollster-style interaction&lt;br /&gt;
* Look into consistent hashing; see if it can be reused in ceilometer -- though it requires stateful DB&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Add a periodic task to send hardware sensor data to ceilometer  (https://blueprints.launchpad.net/ironic/+spec/send-data-to-ceilometer)&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update undercloud images to allow for the monitoring of hardware (setup Central Agent for polling all hardware)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* add SNMP agents to overcloud images&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* Add Ceilometer-based graphs and metric data&lt;br /&gt;
&lt;br /&gt;
== User Interfaces ==&lt;br /&gt;
&lt;br /&gt;
This is a general category intended to encapsulate work needed in the UI and CLI.&lt;br /&gt;
&lt;br /&gt;
==== Horizon ====&lt;br /&gt;
&lt;br /&gt;
* separate horizon from openstack-dashboard&lt;br /&gt;
* test the replacement of lesscpy with pyScss&lt;br /&gt;
* improve error handling so that messages are less generic&lt;br /&gt;
* additional work on the plugin architecture to support dynamic hardware-specific views&lt;br /&gt;
&lt;br /&gt;
==== Tuskar-CLI ====&lt;br /&gt;
&lt;br /&gt;
* create a tuskar-cli plugin for OpenStackClient&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* increase the modularity of views&lt;br /&gt;
* investigate usage of Heat UI components in Horizon (for example, parameter form building)&lt;br /&gt;
* create a mechanism for asynchronous communication&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47437</id>
		<title>TripleO/TuskarJunoPlanning</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47437"/>
				<updated>2014-04-02T13:23:14Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Cloud Service Representation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This planning document is born from discussions from the TripleO mid-cycle Icehouse meetup in Sunnyvale ([[TripleO/TuskarJunoInitialDiscussion]], [https://etherpad.openstack.org/p/openstack-management-features OpenStack Management Features]).  The ideas iterated there were then individually fleshed out and detailed, with much input coming from conversations with other OpenStack projects.&lt;br /&gt;
&lt;br /&gt;
Our principal concerns duing the Juno cycle are:&lt;br /&gt;
&lt;br /&gt;
* integrating further with other OpenStack services, using their capabilities to enhance our TripleO management experience&lt;br /&gt;
* ensuring that Tuskar does not try to implement functionality that is better located in other projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document details our high-level goals for Juno.  It does so at multiple levels; for each we provide:&lt;br /&gt;
&lt;br /&gt;
* a description of the goal&lt;br /&gt;
* a list of project requirements and/or blueprints needed&lt;br /&gt;
&lt;br /&gt;
== Cloud Service Representation ==&lt;br /&gt;
&lt;br /&gt;
A cloud service represents a cloud function - provisioning service, storage service, message broker, database server, etc. A cloud service is fulfilled by a cloud service element; for example, a user can fulfill the message broker cloud service by either choosing the qpid-server element or the rabbitmq-server element.&lt;br /&gt;
&lt;br /&gt;
With the cloud service concept in play, overcloud roles are updated as follows: instead of being associated with images, they are associated with a list of cloud service elements.  This provides greater flexibility for the Tuskar user when designing the scalable components of a cloud. For example, instead of being limited to a Controller role, the user can separate out the network components of that role into a Network role and scale it individually.&lt;br /&gt;
&lt;br /&gt;
[[File:Tuskar-service-model.png|Tuskar Service Model]]&lt;br /&gt;
&lt;br /&gt;
For Juno, Tuskar will provide role defaults or suggestions corresponding to current default roles in Icehouse, as well as an &amp;quot;All-in-One&amp;quot; role.   Each default role will be automatically associated with a list of cloud service elements and a pre-created image.  Later iterations of Tuskar will allow for more user customization in this area.&lt;br /&gt;
&lt;br /&gt;
If possible, we would also like to support customized roles that specify their own elements.  This would require the development of additional TripleO features as described in the next section.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Diskimage builder resource (question raised wrt ability to spawn VM to host it in seed/undercloud), also OS::GlanceImageUploader resource (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* ensure existence of default images&lt;br /&gt;
* create default roles, each associated with a list of elements, an image, and a Heat template&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to accomodate cloud services&lt;br /&gt;
&lt;br /&gt;
== Overcloud Planning and Deployment ==&lt;br /&gt;
&lt;br /&gt;
In Icehouse, the planning stage of overcloud deployment is represented by data stored in Tuskar database tables.  For Juno, we would like to remove the database from Tuskar.  Instead, the planning stage of a deployment will be represented by the full Heat template that would be used to deploy it.  Since Heat does not intend to be a template store, this template will be stored in Swift instead.  When the overcloud is ready to be deployed, the Tuskar service will pull the template out of Swift.&lt;br /&gt;
&lt;br /&gt;
[[File:tuskar-arch-juno.png|Tuskar Architecture]]&lt;br /&gt;
&lt;br /&gt;
Once an overcloud is deployed, all Tuskar interactions with that overcloud should be done through Heat.  This includes queries about running Nova instances and relevant Ironic nodes.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Allow stacks to be updated without forcing the user to re-provide all parameters (https://bugs.launchpad.net/heat/+bug/1224828)&lt;br /&gt;
* Stack update, allow retry from failed states (https://blueprints.launchpad.net/heat/+spec/update-failure-recovery)&lt;br /&gt;
* Stack update, rolling updates (canary deployments etc) (https://blueprints.launchpad.net/heat/+spec/rolling-updates)&lt;br /&gt;
* Stack update, enable cancelling in-progress update (e.g to pause or rollback) (https://blueprints.launchpad.net/heat/+spec/cancel-update-stack)&lt;br /&gt;
* Possibly allow inline specification of provider resources, e.g have a resource which generates a heat template, then refer to it, e.g like type: {get_attr: [SomeResource, template]} (''may not be required by Tuskar'')&lt;br /&gt;
* nested resource templates&lt;br /&gt;
* Stack preview (preview what would happen via stack-create) (https://blueprints.launchpad.net/heat/+spec/preview-stack) (''may not be required for Juno'')&lt;br /&gt;
* Stack check (sync state of stack with the real state of underlying resources, e.g persist out-of-band failures in stack resource states) (https://blueprints.launchpad.net/heat/+spec/stack-check) (''may not be required for Juno'')&lt;br /&gt;
* Stack converge - &amp;quot;fixes&amp;quot; stack and returns to known state (https://blueprints.launchpad.net/heat/+spec/stack-convergence) (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update Heat templates in TripleO for: HOT, provider resources, software config&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* provide default templates for default roles (these will be wrapped in ProviderResources)&lt;br /&gt;
* construct an overcloud template that references the default roles through ProviderResources&lt;br /&gt;
* ensure constructed templates define the appropriate ResourceAttributes to be queried through the UI/CLI&lt;br /&gt;
* given a Heat template constructed in this way, parse it in such a way as to retrieve the role specification and Heat parameters&lt;br /&gt;
* rebuild Tuskar to save and retrieve Heat templates from Swift&lt;br /&gt;
* update CLI as necessary&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update stack queries to take advantage of Heat ResourceAttributes (make sure information is gotten through Heat); for example, Role&lt;br /&gt;
* update deployment workflow&lt;br /&gt;
&lt;br /&gt;
== Custom Roles ==&lt;br /&gt;
&lt;br /&gt;
Although default, predefined roles are the immediate goal, it would be nice to also allow users to define their own roles.  To do so, they would specify their own list of elements.  Tuskar would then use that information to call out to diskimage-builder to create a custom image matching the role; and it would create a custom Heat template for that role that the master overcloud template could then use.&lt;br /&gt;
&lt;br /&gt;
If the above cannot be achieved within Juno, a simpler alternative would be to allow users to specify a custom role, and then associate it with manually created templates and images.&lt;br /&gt;
&lt;br /&gt;
The remainder of the workflow is the same as with default roles.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* given an image element, return the list of Heat parameters that it needs&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* given a role specification, use diskimage-builder to construct a matching image (derived from the role's image elements)&lt;br /&gt;
* given a role specification, return the list of Heat parameters that it needs (derived from the role's image elements)&lt;br /&gt;
* given a role specification and its Heat parameters, construct a Heat template for that role that meets those specifications&lt;br /&gt;
* allow user to specify a custom role and associate it with a manually created template and image&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* create custom role workflow&lt;br /&gt;
&lt;br /&gt;
== High Availability ==&lt;br /&gt;
&lt;br /&gt;
One of TripleO's top priorities for Juno is to allow the deployment of a High-Availability (HA) overcloud.  We would like to extend Tuskar to ensure that it can be used to deploy a HA overcloud as well.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* Deploy HA Overcloud&lt;br /&gt;
:* glusterfs &lt;br /&gt;
:* pacemaker, corosync&lt;br /&gt;
:* neutron (?)&lt;br /&gt;
:* heat-engine A/A&lt;br /&gt;
:* qpid proton (assuming amqp 1.0 have merged into oslo.messaging and oslo.messaging have merged in each core project. If not, will use rabbitmq)&lt;br /&gt;
:* etc etc&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support HA&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* deployment workflow support for HA architecture&lt;br /&gt;
&lt;br /&gt;
== Auto-Scaling ==&lt;br /&gt;
&lt;br /&gt;
Having the option for an auto-scaling cloud deployment would be greatly appealing to many users.  Heat is actively working on auto-scaling support, as are other projects.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Inhibit autoscaling during stack abandon/adopt (quiesce and revitalize)&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* hooks to do cleanup on scale-down (e.g host evacuation etc) (https://blueprints.launchpad.net/heat/+spec/update-hooks)&lt;br /&gt;
* choose victim on scale-down, or specify strategy for choosing (e.g oldest first or newest first) (https://blueprints.launchpad.net/heat/+spec/autoscaling-parameters)&lt;br /&gt;
* support complex conditionals when choosing victim on scale-down (e.g get notification or poll metric via ceilometer related to occupancy or other application metrics); possibly handled by above, if we can get ceilometer to pass us appropriate data when signalling the scaling policy, TBC (''may not be required for Juno'')&lt;br /&gt;
* Method to inhibit autoscaling/alarms during abandon/adopt (and suspend/resume?)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to include options that allow an auto-scaled overcloud deployment&lt;br /&gt;
&lt;br /&gt;
== Node Management (Ironic) ==&lt;br /&gt;
&lt;br /&gt;
We would like to switch over to using Ironic in the near future, as there are a host of features that would depend upon it.&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Ironic graduation&lt;br /&gt;
:* CI jobs&lt;br /&gt;
:* Nova driver&lt;br /&gt;
:* Serial console&lt;br /&gt;
:* Migration path&lt;br /&gt;
:* User documentation&lt;br /&gt;
&lt;br /&gt;
* Autodiscovery of nodes&lt;br /&gt;
* Ceilometer&lt;br /&gt;
* Tagging&lt;br /&gt;
* scalability&lt;br /&gt;
&lt;br /&gt;
==== Nova ====&lt;br /&gt;
&lt;br /&gt;
* create a nova filter for exact matches to Ironic nodes (including all node metadata) (https://review.openstack.org/#/c/83728/)&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* Allow settings for Nova Scheduler (https://review.openstack.org/#/c/84131/)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* use exact match filter when deploying overcloud&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* added node tag values to flavor extra_specs&lt;br /&gt;
&lt;br /&gt;
== Metric Graphs ==&lt;br /&gt;
&lt;br /&gt;
Data visualization is a key part of maintaining a cloud.  We would like to start integrating Ceilometer usage into Tuskar.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Combine samples for different meters in a transformer to produce a single derived meter&lt;br /&gt;
* Rollup of course-grained statistics for UI queries&lt;br /&gt;
* Configurable data retention based on rollups&lt;br /&gt;
* Overarching &amp;quot;health&amp;quot; metric for nodes&lt;br /&gt;
* Ceilometer native auth for alarm notifications (and possibly metrics in future) (https://blueprints.launchpad.net/ceilometer/+spec/trust-alarm-notifier)&lt;br /&gt;
* Eliminate central agent SPoF&lt;br /&gt;
* SNMP batch mode, one bulk command per node per polling cycle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For additional data:&lt;br /&gt;
&lt;br /&gt;
* Acquire hardware-oriented metrics via IPMI (e.g., voltage, fan speeds, etc.)&lt;br /&gt;
* Keystone v3 usage would avoid IPMI credentials; allowing pollster-style interaction&lt;br /&gt;
* Look into consistent hashing; see if it can be reused in ceilometer -- though it requires stateful DB&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Add a periodic task to send hardware sensor data to ceilometer  (https://blueprints.launchpad.net/ironic/+spec/send-data-to-ceilometer)&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update undercloud images to allow for the monitoring of hardware (setup Central Agent for polling all hardware)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* add SNMP agents to overcloud images&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* Add Ceilometer-based graphs and metric data&lt;br /&gt;
&lt;br /&gt;
== User Interfaces ==&lt;br /&gt;
&lt;br /&gt;
This is a general category intended to encapsulate work needed in the UI and CLI.&lt;br /&gt;
&lt;br /&gt;
==== Horizon ====&lt;br /&gt;
&lt;br /&gt;
* separate horizon from openstack-dashboard&lt;br /&gt;
* test the replacement of lesscpy with pyScss&lt;br /&gt;
* improve error handling so that messages are less generic&lt;br /&gt;
* additional work on the plugin architecture to support dynamic hardware-specific views&lt;br /&gt;
&lt;br /&gt;
==== Tuskar-CLI ====&lt;br /&gt;
&lt;br /&gt;
* create a tuskar-cli plugin for OpenStackClient&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* increase the modularity of views&lt;br /&gt;
* investigate usage of Heat UI components in Horizon (for example, parameter form building)&lt;br /&gt;
* create a mechanism for asynchronous communication&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47300</id>
		<title>TripleO/TuskarJunoPlanning</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47300"/>
				<updated>2014-04-01T14:31:24Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* TripleO-UI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This planning document is born from discussions from the TripleO mid-cycle Icehouse meetup in Sunnyvale ([[TripleO/TuskarJunoInitialDiscussion]], [https://etherpad.openstack.org/p/openstack-management-features OpenStack Management Features]).  The ideas iterated there were then individually fleshed out and detailed, with much input coming from conversations with other OpenStack projects.&lt;br /&gt;
&lt;br /&gt;
Our principal concerns duing the Juno cycle are:&lt;br /&gt;
&lt;br /&gt;
* integrating further with other OpenStack services, using their capabilities to enhance our TripleO management experience&lt;br /&gt;
* ensuring that Tuskar does not try to implement functionality that is better located in other projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document details our high-level goals for Juno.  It does so at multiple levels; for each we provide:&lt;br /&gt;
&lt;br /&gt;
* a description of the goal&lt;br /&gt;
* a list of project requirements and/or blueprints needed&lt;br /&gt;
&lt;br /&gt;
== Cloud Service Representation ==&lt;br /&gt;
&lt;br /&gt;
A cloud service represents a cloud function - provisioning service, storage service, message broker, database server, etc. A cloud service is fulfilled by a cloud service element; for example, a user can fulfill the message broker cloud service by either choosing the qpid-server element or the rabbitmq-server element.&lt;br /&gt;
&lt;br /&gt;
With the cloud service concept in play, overcloud roles are updated as follows: instead of being associated with images, they are associated with a list of cloud service elements.  This provides greater flexibility for the Tuskar user when designing the scalable components of a cloud. For example, instead of being limited to a Controller role, the user can separate out the network components of that role into a Network role and scale it individually.&lt;br /&gt;
&lt;br /&gt;
[[File:Tuskar-service-model.png|Tuskar Service Model]]&lt;br /&gt;
&lt;br /&gt;
For Juno, Tuskar will provide role defaults or suggestions corresponding to current default roles, as well as an &amp;quot;All-in-One&amp;quot; role.   Each default role will be automatically associated with a list of cloud service elements and a pre-created image.  Later iterations of Tuskar will allow for more user customization in this area.&lt;br /&gt;
&lt;br /&gt;
If possible, we would also like to support customized roles that specify their own elements.  This would require the development of additional TripleO features as described in the next section.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Diskimage builder resource (question raised wrt ability to spawn VM to host it in seed/undercloud), also OS::GlanceImageUploader resource (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* ensure existence of default images&lt;br /&gt;
* create default roles, each associated with a list of elements, an image, and a Heat template&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to accomodate cloud services&lt;br /&gt;
&lt;br /&gt;
== Overcloud Planning and Deployment ==&lt;br /&gt;
&lt;br /&gt;
In Icehouse, the planning stage of overcloud deployment is represented by data stored in Tuskar database tables.  For Juno, we would like to remove the database from Tuskar.  Instead, the planning stage of a deployment will be represented by the full Heat template that would be used to deploy it.  Since Heat does not intend to be a template store, this template will be stored in Swift instead.  When the overcloud is ready to be deployed, the Tuskar service will pull the template out of Swift.&lt;br /&gt;
&lt;br /&gt;
[[File:tuskar-arch-juno.png|Tuskar Architecture]]&lt;br /&gt;
&lt;br /&gt;
Once an overcloud is deployed, all Tuskar interactions with that overcloud should be done through Heat.  This includes queries about running Nova instances and relevant Ironic nodes.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Allow stacks to be updated without forcing the user to re-provide all parameters (https://bugs.launchpad.net/heat/+bug/1224828)&lt;br /&gt;
* Stack update, allow retry from failed states (https://blueprints.launchpad.net/heat/+spec/update-failure-recovery)&lt;br /&gt;
* Stack update, rolling updates (canary deployments etc) (https://blueprints.launchpad.net/heat/+spec/rolling-updates)&lt;br /&gt;
* Stack update, enable cancelling in-progress update (e.g to pause or rollback) (https://blueprints.launchpad.net/heat/+spec/cancel-update-stack)&lt;br /&gt;
* Possibly allow inline specification of provider resources, e.g have a resource which generates a heat template, then refer to it, e.g like type: {get_attr: [SomeResource, template]} (''may not be required by Tuskar'')&lt;br /&gt;
* nested resource templates&lt;br /&gt;
* Stack preview (preview what would happen via stack-create) (https://blueprints.launchpad.net/heat/+spec/preview-stack) (''may not be required for Juno'')&lt;br /&gt;
* Stack check (sync state of stack with the real state of underlying resources, e.g persist out-of-band failures in stack resource states) (https://blueprints.launchpad.net/heat/+spec/stack-check) (''may not be required for Juno'')&lt;br /&gt;
* Stack converge - &amp;quot;fixes&amp;quot; stack and returns to known state (https://blueprints.launchpad.net/heat/+spec/stack-convergence) (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update Heat templates in TripleO for: HOT, provider resources, software config&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* provide default templates for default roles (these will be wrapped in ProviderResources)&lt;br /&gt;
* construct an overcloud template that references the default roles through ProviderResources&lt;br /&gt;
* ensure constructed templates define the appropriate ResourceAttributes to be queried through the UI/CLI&lt;br /&gt;
* given a Heat template constructed in this way, parse it in such a way as to retrieve the role specification and Heat parameters&lt;br /&gt;
* rebuild Tuskar to save and retrieve Heat templates from Swift&lt;br /&gt;
* update CLI as necessary&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update stack queries to take advantage of Heat ResourceAttributes (make sure information is gotten through Heat); for example, Role&lt;br /&gt;
* update deployment workflow&lt;br /&gt;
&lt;br /&gt;
== Custom Roles ==&lt;br /&gt;
&lt;br /&gt;
Although default, predefined roles are the immediate goal, it would be nice to also allow users to define their own roles.  To do so, they would specify their own list of elements.  Tuskar would then use that information to call out to diskimage-builder to create a custom image matching the role; and it would create a custom Heat template for that role that the master overcloud template could then use.&lt;br /&gt;
&lt;br /&gt;
If the above cannot be achieved within Juno, a simpler alternative would be to allow users to specify a custom role, and then associate it with manually created templates and images.&lt;br /&gt;
&lt;br /&gt;
The remainder of the workflow is the same as with default roles.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* given an image element, return the list of Heat parameters that it needs&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* given a role specification, use diskimage-builder to construct a matching image (derived from the role's image elements)&lt;br /&gt;
* given a role specification, return the list of Heat parameters that it needs (derived from the role's image elements)&lt;br /&gt;
* given a role specification and its Heat parameters, construct a Heat template for that role that meets those specifications&lt;br /&gt;
* allow user to specify a custom role and associate it with a manually created template and image&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* create custom role workflow&lt;br /&gt;
&lt;br /&gt;
== High Availability ==&lt;br /&gt;
&lt;br /&gt;
One of TripleO's top priorities for Juno is to allow the deployment of a High-Availability (HA) overcloud.  We would like to extend Tuskar to ensure that it can be used to deploy a HA overcloud as well.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* Deploy HA Overcloud&lt;br /&gt;
:* glusterfs &lt;br /&gt;
:* pacemaker, corosync&lt;br /&gt;
:* neutron (?)&lt;br /&gt;
:* heat-engine A/A&lt;br /&gt;
:* qpid proton (assuming amqp 1.0 have merged into oslo.messaging and oslo.messaging have merged in each core project. If not, will use rabbitmq)&lt;br /&gt;
:* etc etc&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support HA&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* deployment workflow support for HA architecture&lt;br /&gt;
&lt;br /&gt;
== Auto-Scaling ==&lt;br /&gt;
&lt;br /&gt;
Having the option for an auto-scaling cloud deployment would be greatly appealing to many users.  Heat is actively working on auto-scaling support, as are other projects.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Inhibit autoscaling during stack abandon/adopt (quiesce and revitalize)&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* hooks to do cleanup on scale-down (e.g host evacuation etc) (https://blueprints.launchpad.net/heat/+spec/update-hooks)&lt;br /&gt;
* choose victim on scale-down, or specify strategy for choosing (e.g oldest first or newest first) (https://blueprints.launchpad.net/heat/+spec/autoscaling-parameters)&lt;br /&gt;
* support complex conditionals when choosing victim on scale-down (e.g get notification or poll metric via ceilometer related to occupancy or other application metrics); possibly handled by above, if we can get ceilometer to pass us appropriate data when signalling the scaling policy, TBC (''may not be required for Juno'')&lt;br /&gt;
* Method to inhibit autoscaling/alarms during abandon/adopt (and suspend/resume?)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to include options that allow an auto-scaled overcloud deployment&lt;br /&gt;
&lt;br /&gt;
== Node Management (Ironic) ==&lt;br /&gt;
&lt;br /&gt;
We would like to switch over to using Ironic in the near future, as there are a host of features that would depend upon it.&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Ironic graduation&lt;br /&gt;
:* CI jobs&lt;br /&gt;
:* Nova driver&lt;br /&gt;
:* Serial console&lt;br /&gt;
:* Migration path&lt;br /&gt;
:* User documentation&lt;br /&gt;
&lt;br /&gt;
* Autodiscovery of nodes&lt;br /&gt;
* Ceilometer&lt;br /&gt;
* Tagging&lt;br /&gt;
* scalability&lt;br /&gt;
&lt;br /&gt;
==== Nova ====&lt;br /&gt;
&lt;br /&gt;
* create a nova filter for exact matches to Ironic nodes (including all node metadata) (https://review.openstack.org/#/c/83728/)&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* Allow settings for Nova Scheduler (https://review.openstack.org/#/c/84131/)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* use exact match filter when deploying overcloud&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* added node tag values to flavor extra_specs&lt;br /&gt;
&lt;br /&gt;
== Metric Graphs ==&lt;br /&gt;
&lt;br /&gt;
Data visualization is a key part of maintaining a cloud.  We would like to start integrating Ceilometer usage into Tuskar.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Combine samples for different meters in a transformer to produce a single derived meter&lt;br /&gt;
* Rollup of course-grained statistics for UI queries&lt;br /&gt;
* Configurable data retention based on rollups&lt;br /&gt;
* Overarching &amp;quot;health&amp;quot; metric for nodes&lt;br /&gt;
* Ceilometer native auth for alarm notifications (and possibly metrics in future) (https://blueprints.launchpad.net/ceilometer/+spec/trust-alarm-notifier)&lt;br /&gt;
* Eliminate central agent SPoF&lt;br /&gt;
* SNMP batch mode, one bulk command per node per polling cycle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For additional data:&lt;br /&gt;
&lt;br /&gt;
* Acquire hardware-oriented metrics via IPMI (e.g., voltage, fan speeds, etc.)&lt;br /&gt;
* Keystone v3 usage would avoid IPMI credentials; allowing pollster-style interaction&lt;br /&gt;
* Look into consistent hashing; see if it can be reused in ceilometer -- though it requires stateful DB&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Add a periodic task to send hardware sensor data to ceilometer  (https://blueprints.launchpad.net/ironic/+spec/send-data-to-ceilometer)&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update undercloud images to allow for the monitoring of hardware (setup Central Agent for polling all hardware)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* add SNMP agents to overcloud images&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* Add Ceilometer-based graphs and metric data&lt;br /&gt;
&lt;br /&gt;
== User Interfaces ==&lt;br /&gt;
&lt;br /&gt;
This is a general category intended to encapsulate work needed in the UI and CLI.&lt;br /&gt;
&lt;br /&gt;
==== Horizon ====&lt;br /&gt;
&lt;br /&gt;
* separate horizon from openstack-dashboard&lt;br /&gt;
* test the replacement of lesscpy with pyScss&lt;br /&gt;
* improve error handling so that messages are less generic&lt;br /&gt;
* additional work on the plugin architecture to support dynamic hardware-specific views&lt;br /&gt;
&lt;br /&gt;
==== Tuskar-CLI ====&lt;br /&gt;
&lt;br /&gt;
* create a tuskar-cli plugin for OpenStackClient&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* increase the modularity of views&lt;br /&gt;
* investigate usage of Heat UI components in Horizon (for example, parameter form building)&lt;br /&gt;
* create a mechanism for asynchronous communication&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47298</id>
		<title>TripleO/TuskarJunoPlanning</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47298"/>
				<updated>2014-04-01T14:29:37Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Node Management (Ironic) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This planning document is born from discussions from the TripleO mid-cycle Icehouse meetup in Sunnyvale ([[TripleO/TuskarJunoInitialDiscussion]], [https://etherpad.openstack.org/p/openstack-management-features OpenStack Management Features]).  The ideas iterated there were then individually fleshed out and detailed, with much input coming from conversations with other OpenStack projects.&lt;br /&gt;
&lt;br /&gt;
Our principal concerns duing the Juno cycle are:&lt;br /&gt;
&lt;br /&gt;
* integrating further with other OpenStack services, using their capabilities to enhance our TripleO management experience&lt;br /&gt;
* ensuring that Tuskar does not try to implement functionality that is better located in other projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document details our high-level goals for Juno.  It does so at multiple levels; for each we provide:&lt;br /&gt;
&lt;br /&gt;
* a description of the goal&lt;br /&gt;
* a list of project requirements and/or blueprints needed&lt;br /&gt;
&lt;br /&gt;
== Cloud Service Representation ==&lt;br /&gt;
&lt;br /&gt;
A cloud service represents a cloud function - provisioning service, storage service, message broker, database server, etc. A cloud service is fulfilled by a cloud service element; for example, a user can fulfill the message broker cloud service by either choosing the qpid-server element or the rabbitmq-server element.&lt;br /&gt;
&lt;br /&gt;
With the cloud service concept in play, overcloud roles are updated as follows: instead of being associated with images, they are associated with a list of cloud service elements.  This provides greater flexibility for the Tuskar user when designing the scalable components of a cloud. For example, instead of being limited to a Controller role, the user can separate out the network components of that role into a Network role and scale it individually.&lt;br /&gt;
&lt;br /&gt;
[[File:Tuskar-service-model.png|Tuskar Service Model]]&lt;br /&gt;
&lt;br /&gt;
For Juno, Tuskar will provide role defaults or suggestions corresponding to current default roles, as well as an &amp;quot;All-in-One&amp;quot; role.   Each default role will be automatically associated with a list of cloud service elements and a pre-created image.  Later iterations of Tuskar will allow for more user customization in this area.&lt;br /&gt;
&lt;br /&gt;
If possible, we would also like to support customized roles that specify their own elements.  This would require the development of additional TripleO features as described in the next section.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Diskimage builder resource (question raised wrt ability to spawn VM to host it in seed/undercloud), also OS::GlanceImageUploader resource (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* ensure existence of default images&lt;br /&gt;
* create default roles, each associated with a list of elements, an image, and a Heat template&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to accomodate cloud services&lt;br /&gt;
&lt;br /&gt;
== Overcloud Planning and Deployment ==&lt;br /&gt;
&lt;br /&gt;
In Icehouse, the planning stage of overcloud deployment is represented by data stored in Tuskar database tables.  For Juno, we would like to remove the database from Tuskar.  Instead, the planning stage of a deployment will be represented by the full Heat template that would be used to deploy it.  Since Heat does not intend to be a template store, this template will be stored in Swift instead.  When the overcloud is ready to be deployed, the Tuskar service will pull the template out of Swift.&lt;br /&gt;
&lt;br /&gt;
[[File:tuskar-arch-juno.png|Tuskar Architecture]]&lt;br /&gt;
&lt;br /&gt;
Once an overcloud is deployed, all Tuskar interactions with that overcloud should be done through Heat.  This includes queries about running Nova instances and relevant Ironic nodes.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Allow stacks to be updated without forcing the user to re-provide all parameters (https://bugs.launchpad.net/heat/+bug/1224828)&lt;br /&gt;
* Stack update, allow retry from failed states (https://blueprints.launchpad.net/heat/+spec/update-failure-recovery)&lt;br /&gt;
* Stack update, rolling updates (canary deployments etc) (https://blueprints.launchpad.net/heat/+spec/rolling-updates)&lt;br /&gt;
* Stack update, enable cancelling in-progress update (e.g to pause or rollback) (https://blueprints.launchpad.net/heat/+spec/cancel-update-stack)&lt;br /&gt;
* Possibly allow inline specification of provider resources, e.g have a resource which generates a heat template, then refer to it, e.g like type: {get_attr: [SomeResource, template]} (''may not be required by Tuskar'')&lt;br /&gt;
* nested resource templates&lt;br /&gt;
* Stack preview (preview what would happen via stack-create) (https://blueprints.launchpad.net/heat/+spec/preview-stack) (''may not be required for Juno'')&lt;br /&gt;
* Stack check (sync state of stack with the real state of underlying resources, e.g persist out-of-band failures in stack resource states) (https://blueprints.launchpad.net/heat/+spec/stack-check) (''may not be required for Juno'')&lt;br /&gt;
* Stack converge - &amp;quot;fixes&amp;quot; stack and returns to known state (https://blueprints.launchpad.net/heat/+spec/stack-convergence) (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update Heat templates in TripleO for: HOT, provider resources, software config&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* provide default templates for default roles (these will be wrapped in ProviderResources)&lt;br /&gt;
* construct an overcloud template that references the default roles through ProviderResources&lt;br /&gt;
* ensure constructed templates define the appropriate ResourceAttributes to be queried through the UI/CLI&lt;br /&gt;
* given a Heat template constructed in this way, parse it in such a way as to retrieve the role specification and Heat parameters&lt;br /&gt;
* rebuild Tuskar to save and retrieve Heat templates from Swift&lt;br /&gt;
* update CLI as necessary&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update stack queries to take advantage Heat ResourceAttributes (make sure information is gotten through Heat)&lt;br /&gt;
* update deployment workflow&lt;br /&gt;
&lt;br /&gt;
== Custom Roles ==&lt;br /&gt;
&lt;br /&gt;
Although default, predefined roles are the immediate goal, it would be nice to also allow users to define their own roles.  To do so, they would specify their own list of elements.  Tuskar would then use that information to call out to diskimage-builder to create a custom image matching the role; and it would create a custom Heat template for that role that the master overcloud template could then use.&lt;br /&gt;
&lt;br /&gt;
If the above cannot be achieved within Juno, a simpler alternative would be to allow users to specify a custom role, and then associate it with manually created templates and images.&lt;br /&gt;
&lt;br /&gt;
The remainder of the workflow is the same as with default roles.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* given an image element, return the list of Heat parameters that it needs&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* given a role specification, use diskimage-builder to construct a matching image (derived from the role's image elements)&lt;br /&gt;
* given a role specification, return the list of Heat parameters that it needs (derived from the role's image elements)&lt;br /&gt;
* given a role specification and its Heat parameters, construct a Heat template for that role that meets those specifications&lt;br /&gt;
* allow user to specify a custom role and associate it with a manually created template and image&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* create custom role workflow&lt;br /&gt;
&lt;br /&gt;
== High Availability ==&lt;br /&gt;
&lt;br /&gt;
One of TripleO's top priorities for Juno is to allow the deployment of a High-Availability (HA) overcloud.  We would like to extend Tuskar to ensure that it can be used to deploy a HA overcloud as well.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* Deploy HA Overcloud&lt;br /&gt;
:* glusterfs &lt;br /&gt;
:* pacemaker, corosync&lt;br /&gt;
:* neutron (?)&lt;br /&gt;
:* heat-engine A/A&lt;br /&gt;
:* qpid proton (assuming amqp 1.0 have merged into oslo.messaging and oslo.messaging have merged in each core project. If not, will use rabbitmq)&lt;br /&gt;
:* etc etc&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support HA&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* deployment workflow support for HA architecture&lt;br /&gt;
&lt;br /&gt;
== Auto-Scaling ==&lt;br /&gt;
&lt;br /&gt;
Having the option for an auto-scaling cloud deployment would be greatly appealing to many users.  Heat is actively working on auto-scaling support, as are other projects.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Inhibit autoscaling during stack abandon/adopt (quiesce and revitalize)&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* hooks to do cleanup on scale-down (e.g host evacuation etc) (https://blueprints.launchpad.net/heat/+spec/update-hooks)&lt;br /&gt;
* choose victim on scale-down, or specify strategy for choosing (e.g oldest first or newest first) (https://blueprints.launchpad.net/heat/+spec/autoscaling-parameters)&lt;br /&gt;
* support complex conditionals when choosing victim on scale-down (e.g get notification or poll metric via ceilometer related to occupancy or other application metrics); possibly handled by above, if we can get ceilometer to pass us appropriate data when signalling the scaling policy, TBC (''may not be required for Juno'')&lt;br /&gt;
* Method to inhibit autoscaling/alarms during abandon/adopt (and suspend/resume?)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to include options that allow an auto-scaled overcloud deployment&lt;br /&gt;
&lt;br /&gt;
== Node Management (Ironic) ==&lt;br /&gt;
&lt;br /&gt;
We would like to switch over to using Ironic in the near future, as there are a host of features that would depend upon it.&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Ironic graduation&lt;br /&gt;
:* CI jobs&lt;br /&gt;
:* Nova driver&lt;br /&gt;
:* Serial console&lt;br /&gt;
:* Migration path&lt;br /&gt;
:* User documentation&lt;br /&gt;
&lt;br /&gt;
* Autodiscovery of nodes&lt;br /&gt;
* Ceilometer&lt;br /&gt;
* Tagging&lt;br /&gt;
* scalability&lt;br /&gt;
&lt;br /&gt;
==== Nova ====&lt;br /&gt;
&lt;br /&gt;
* create a nova filter for exact matches to Ironic nodes (including all node metadata) (https://review.openstack.org/#/c/83728/)&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* Allow settings for Nova Scheduler (https://review.openstack.org/#/c/84131/)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* use exact match filter when deploying overcloud&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* added node tag values to flavor extra_specs&lt;br /&gt;
&lt;br /&gt;
== Metric Graphs ==&lt;br /&gt;
&lt;br /&gt;
Data visualization is a key part of maintaining a cloud.  We would like to start integrating Ceilometer usage into Tuskar.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Combine samples for different meters in a transformer to produce a single derived meter&lt;br /&gt;
* Rollup of course-grained statistics for UI queries&lt;br /&gt;
* Configurable data retention based on rollups&lt;br /&gt;
* Overarching &amp;quot;health&amp;quot; metric for nodes&lt;br /&gt;
* Ceilometer native auth for alarm notifications (and possibly metrics in future) (https://blueprints.launchpad.net/ceilometer/+spec/trust-alarm-notifier)&lt;br /&gt;
* Eliminate central agent SPoF&lt;br /&gt;
* SNMP batch mode, one bulk command per node per polling cycle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For additional data:&lt;br /&gt;
&lt;br /&gt;
* Acquire hardware-oriented metrics via IPMI (e.g., voltage, fan speeds, etc.)&lt;br /&gt;
* Keystone v3 usage would avoid IPMI credentials; allowing pollster-style interaction&lt;br /&gt;
* Look into consistent hashing; see if it can be reused in ceilometer -- though it requires stateful DB&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Add a periodic task to send hardware sensor data to ceilometer  (https://blueprints.launchpad.net/ironic/+spec/send-data-to-ceilometer)&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update undercloud images to allow for the monitoring of hardware (setup Central Agent for polling all hardware)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* add SNMP agents to overcloud images&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* Add Ceilometer-based graphs and metric data&lt;br /&gt;
&lt;br /&gt;
== User Interfaces ==&lt;br /&gt;
&lt;br /&gt;
This is a general category intended to encapsulate work needed in the UI and CLI.&lt;br /&gt;
&lt;br /&gt;
==== Horizon ====&lt;br /&gt;
&lt;br /&gt;
* separate horizon from openstack-dashboard&lt;br /&gt;
* test the replacement of lesscpy with pyScss&lt;br /&gt;
* improve error handling so that messages are less generic&lt;br /&gt;
* additional work on the plugin architecture to support dynamic hardware-specific views&lt;br /&gt;
&lt;br /&gt;
==== Tuskar-CLI ====&lt;br /&gt;
&lt;br /&gt;
* create a tuskar-cli plugin for OpenStackClient&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* increase the modularity of views&lt;br /&gt;
* investigate usage of Heat UI components in Horizon (for example, parameter form building)&lt;br /&gt;
* create a mechanism for asynchronous communication&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47297</id>
		<title>TripleO/TuskarJunoPlanning</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47297"/>
				<updated>2014-04-01T14:28:10Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Custom Roles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This planning document is born from discussions from the TripleO mid-cycle Icehouse meetup in Sunnyvale ([[TripleO/TuskarJunoInitialDiscussion]], [https://etherpad.openstack.org/p/openstack-management-features OpenStack Management Features]).  The ideas iterated there were then individually fleshed out and detailed, with much input coming from conversations with other OpenStack projects.&lt;br /&gt;
&lt;br /&gt;
Our principal concerns duing the Juno cycle are:&lt;br /&gt;
&lt;br /&gt;
* integrating further with other OpenStack services, using their capabilities to enhance our TripleO management experience&lt;br /&gt;
* ensuring that Tuskar does not try to implement functionality that is better located in other projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document details our high-level goals for Juno.  It does so at multiple levels; for each we provide:&lt;br /&gt;
&lt;br /&gt;
* a description of the goal&lt;br /&gt;
* a list of project requirements and/or blueprints needed&lt;br /&gt;
&lt;br /&gt;
== Cloud Service Representation ==&lt;br /&gt;
&lt;br /&gt;
A cloud service represents a cloud function - provisioning service, storage service, message broker, database server, etc. A cloud service is fulfilled by a cloud service element; for example, a user can fulfill the message broker cloud service by either choosing the qpid-server element or the rabbitmq-server element.&lt;br /&gt;
&lt;br /&gt;
With the cloud service concept in play, overcloud roles are updated as follows: instead of being associated with images, they are associated with a list of cloud service elements.  This provides greater flexibility for the Tuskar user when designing the scalable components of a cloud. For example, instead of being limited to a Controller role, the user can separate out the network components of that role into a Network role and scale it individually.&lt;br /&gt;
&lt;br /&gt;
[[File:Tuskar-service-model.png|Tuskar Service Model]]&lt;br /&gt;
&lt;br /&gt;
For Juno, Tuskar will provide role defaults or suggestions corresponding to current default roles, as well as an &amp;quot;All-in-One&amp;quot; role.   Each default role will be automatically associated with a list of cloud service elements and a pre-created image.  Later iterations of Tuskar will allow for more user customization in this area.&lt;br /&gt;
&lt;br /&gt;
If possible, we would also like to support customized roles that specify their own elements.  This would require the development of additional TripleO features as described in the next section.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Diskimage builder resource (question raised wrt ability to spawn VM to host it in seed/undercloud), also OS::GlanceImageUploader resource (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* ensure existence of default images&lt;br /&gt;
* create default roles, each associated with a list of elements, an image, and a Heat template&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to accomodate cloud services&lt;br /&gt;
&lt;br /&gt;
== Overcloud Planning and Deployment ==&lt;br /&gt;
&lt;br /&gt;
In Icehouse, the planning stage of overcloud deployment is represented by data stored in Tuskar database tables.  For Juno, we would like to remove the database from Tuskar.  Instead, the planning stage of a deployment will be represented by the full Heat template that would be used to deploy it.  Since Heat does not intend to be a template store, this template will be stored in Swift instead.  When the overcloud is ready to be deployed, the Tuskar service will pull the template out of Swift.&lt;br /&gt;
&lt;br /&gt;
[[File:tuskar-arch-juno.png|Tuskar Architecture]]&lt;br /&gt;
&lt;br /&gt;
Once an overcloud is deployed, all Tuskar interactions with that overcloud should be done through Heat.  This includes queries about running Nova instances and relevant Ironic nodes.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Allow stacks to be updated without forcing the user to re-provide all parameters (https://bugs.launchpad.net/heat/+bug/1224828)&lt;br /&gt;
* Stack update, allow retry from failed states (https://blueprints.launchpad.net/heat/+spec/update-failure-recovery)&lt;br /&gt;
* Stack update, rolling updates (canary deployments etc) (https://blueprints.launchpad.net/heat/+spec/rolling-updates)&lt;br /&gt;
* Stack update, enable cancelling in-progress update (e.g to pause or rollback) (https://blueprints.launchpad.net/heat/+spec/cancel-update-stack)&lt;br /&gt;
* Possibly allow inline specification of provider resources, e.g have a resource which generates a heat template, then refer to it, e.g like type: {get_attr: [SomeResource, template]} (''may not be required by Tuskar'')&lt;br /&gt;
* nested resource templates&lt;br /&gt;
* Stack preview (preview what would happen via stack-create) (https://blueprints.launchpad.net/heat/+spec/preview-stack) (''may not be required for Juno'')&lt;br /&gt;
* Stack check (sync state of stack with the real state of underlying resources, e.g persist out-of-band failures in stack resource states) (https://blueprints.launchpad.net/heat/+spec/stack-check) (''may not be required for Juno'')&lt;br /&gt;
* Stack converge - &amp;quot;fixes&amp;quot; stack and returns to known state (https://blueprints.launchpad.net/heat/+spec/stack-convergence) (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update Heat templates in TripleO for: HOT, provider resources, software config&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* provide default templates for default roles (these will be wrapped in ProviderResources)&lt;br /&gt;
* construct an overcloud template that references the default roles through ProviderResources&lt;br /&gt;
* ensure constructed templates define the appropriate ResourceAttributes to be queried through the UI/CLI&lt;br /&gt;
* given a Heat template constructed in this way, parse it in such a way as to retrieve the role specification and Heat parameters&lt;br /&gt;
* rebuild Tuskar to save and retrieve Heat templates from Swift&lt;br /&gt;
* update CLI as necessary&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update stack queries to take advantage Heat ResourceAttributes (make sure information is gotten through Heat)&lt;br /&gt;
* update deployment workflow&lt;br /&gt;
&lt;br /&gt;
== Custom Roles ==&lt;br /&gt;
&lt;br /&gt;
Although default, predefined roles are the immediate goal, it would be nice to also allow users to define their own roles.  To do so, they would specify their own list of elements.  Tuskar would then use that information to call out to diskimage-builder to create a custom image matching the role; and it would create a custom Heat template for that role that the master overcloud template could then use.&lt;br /&gt;
&lt;br /&gt;
If the above cannot be achieved within Juno, a simpler alternative would be to allow users to specify a custom role, and then associate it with manually created templates and images.&lt;br /&gt;
&lt;br /&gt;
The remainder of the workflow is the same as with default roles.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* given an image element, return the list of Heat parameters that it needs&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* given a role specification, use diskimage-builder to construct a matching image (derived from the role's image elements)&lt;br /&gt;
* given a role specification, return the list of Heat parameters that it needs (derived from the role's image elements)&lt;br /&gt;
* given a role specification and its Heat parameters, construct a Heat template for that role that meets those specifications&lt;br /&gt;
* allow user to specify a custom role and associate it with a manually created template and image&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* create custom role workflow&lt;br /&gt;
&lt;br /&gt;
== High Availability ==&lt;br /&gt;
&lt;br /&gt;
One of TripleO's top priorities for Juno is to allow the deployment of a High-Availability (HA) overcloud.  We would like to extend Tuskar to ensure that it can be used to deploy a HA overcloud as well.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* Deploy HA Overcloud&lt;br /&gt;
:* glusterfs &lt;br /&gt;
:* pacemaker, corosync&lt;br /&gt;
:* neutron (?)&lt;br /&gt;
:* heat-engine A/A&lt;br /&gt;
:* qpid proton (assuming amqp 1.0 have merged into oslo.messaging and oslo.messaging have merged in each core project. If not, will use rabbitmq)&lt;br /&gt;
:* etc etc&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support HA&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* deployment workflow support for HA architecture&lt;br /&gt;
&lt;br /&gt;
== Auto-Scaling ==&lt;br /&gt;
&lt;br /&gt;
Having the option for an auto-scaling cloud deployment would be greatly appealing to many users.  Heat is actively working on auto-scaling support, as are other projects.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Inhibit autoscaling during stack abandon/adopt (quiesce and revitalize)&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* hooks to do cleanup on scale-down (e.g host evacuation etc) (https://blueprints.launchpad.net/heat/+spec/update-hooks)&lt;br /&gt;
* choose victim on scale-down, or specify strategy for choosing (e.g oldest first or newest first) (https://blueprints.launchpad.net/heat/+spec/autoscaling-parameters)&lt;br /&gt;
* support complex conditionals when choosing victim on scale-down (e.g get notification or poll metric via ceilometer related to occupancy or other application metrics); possibly handled by above, if we can get ceilometer to pass us appropriate data when signalling the scaling policy, TBC (''may not be required for Juno'')&lt;br /&gt;
* Method to inhibit autoscaling/alarms during abandon/adopt (and suspend/resume?)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to include options that allow an auto-scaled overcloud deployment&lt;br /&gt;
&lt;br /&gt;
== Node Management (Ironic) ==&lt;br /&gt;
&lt;br /&gt;
We would like to switch over to using Ironic in the near future, as there are a host of features that would depend upon it.&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Ironic graduation&lt;br /&gt;
:* CI jobs&lt;br /&gt;
:* Nova driver&lt;br /&gt;
:* Serial console&lt;br /&gt;
:* Migration path&lt;br /&gt;
:* User documentation&lt;br /&gt;
&lt;br /&gt;
* Autodiscovery of nodes&lt;br /&gt;
* Ceilometer&lt;br /&gt;
* Tagging&lt;br /&gt;
* scalability&lt;br /&gt;
&lt;br /&gt;
==== Nova ====&lt;br /&gt;
&lt;br /&gt;
* create a nova filter for exact matches to Ironic nodes (including all node metadata) (https://review.openstack.org/#/c/83728/)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* use exact match filter when deploying overcloud&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* added node tag values to flavor extra_specs&lt;br /&gt;
&lt;br /&gt;
== Metric Graphs ==&lt;br /&gt;
&lt;br /&gt;
Data visualization is a key part of maintaining a cloud.  We would like to start integrating Ceilometer usage into Tuskar.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Combine samples for different meters in a transformer to produce a single derived meter&lt;br /&gt;
* Rollup of course-grained statistics for UI queries&lt;br /&gt;
* Configurable data retention based on rollups&lt;br /&gt;
* Overarching &amp;quot;health&amp;quot; metric for nodes&lt;br /&gt;
* Ceilometer native auth for alarm notifications (and possibly metrics in future) (https://blueprints.launchpad.net/ceilometer/+spec/trust-alarm-notifier)&lt;br /&gt;
* Eliminate central agent SPoF&lt;br /&gt;
* SNMP batch mode, one bulk command per node per polling cycle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For additional data:&lt;br /&gt;
&lt;br /&gt;
* Acquire hardware-oriented metrics via IPMI (e.g., voltage, fan speeds, etc.)&lt;br /&gt;
* Keystone v3 usage would avoid IPMI credentials; allowing pollster-style interaction&lt;br /&gt;
* Look into consistent hashing; see if it can be reused in ceilometer -- though it requires stateful DB&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Add a periodic task to send hardware sensor data to ceilometer  (https://blueprints.launchpad.net/ironic/+spec/send-data-to-ceilometer)&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update undercloud images to allow for the monitoring of hardware (setup Central Agent for polling all hardware)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* add SNMP agents to overcloud images&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* Add Ceilometer-based graphs and metric data&lt;br /&gt;
&lt;br /&gt;
== User Interfaces ==&lt;br /&gt;
&lt;br /&gt;
This is a general category intended to encapsulate work needed in the UI and CLI.&lt;br /&gt;
&lt;br /&gt;
==== Horizon ====&lt;br /&gt;
&lt;br /&gt;
* separate horizon from openstack-dashboard&lt;br /&gt;
* test the replacement of lesscpy with pyScss&lt;br /&gt;
* improve error handling so that messages are less generic&lt;br /&gt;
* additional work on the plugin architecture to support dynamic hardware-specific views&lt;br /&gt;
&lt;br /&gt;
==== Tuskar-CLI ====&lt;br /&gt;
&lt;br /&gt;
* create a tuskar-cli plugin for OpenStackClient&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* increase the modularity of views&lt;br /&gt;
* investigate usage of Heat UI components in Horizon (for example, parameter form building)&lt;br /&gt;
* create a mechanism for asynchronous communication&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47294</id>
		<title>TripleO/TuskarJunoPlanning</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47294"/>
				<updated>2014-04-01T14:15:08Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* TripleO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This planning document is born from discussions from the TripleO mid-cycle Icehouse meetup in Sunnyvale ([[TripleO/TuskarJunoInitialDiscussion]], [https://etherpad.openstack.org/p/openstack-management-features OpenStack Management Features]).  The ideas iterated there were then individually fleshed out and detailed, with much input coming from conversations with other OpenStack projects.&lt;br /&gt;
&lt;br /&gt;
Our principal concerns duing the Juno cycle are:&lt;br /&gt;
&lt;br /&gt;
* integrating further with other OpenStack services, using their capabilities to enhance our TripleO management experience&lt;br /&gt;
* ensuring that Tuskar does not try to implement functionality that is better located in other projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document details our high-level goals for Juno.  It does so at multiple levels; for each we provide:&lt;br /&gt;
&lt;br /&gt;
* a description of the goal&lt;br /&gt;
* a list of project requirements and/or blueprints needed&lt;br /&gt;
&lt;br /&gt;
== Cloud Service Representation ==&lt;br /&gt;
&lt;br /&gt;
A cloud service represents a cloud function - provisioning service, storage service, message broker, database server, etc. A cloud service is fulfilled by a cloud service element; for example, a user can fulfill the message broker cloud service by either choosing the qpid-server element or the rabbitmq-server element.&lt;br /&gt;
&lt;br /&gt;
With the cloud service concept in play, overcloud roles are updated as follows: instead of being associated with images, they are associated with a list of cloud service elements.  This provides greater flexibility for the Tuskar user when designing the scalable components of a cloud. For example, instead of being limited to a Controller role, the user can separate out the network components of that role into a Network role and scale it individually.&lt;br /&gt;
&lt;br /&gt;
[[File:Tuskar-service-model.png|Tuskar Service Model]]&lt;br /&gt;
&lt;br /&gt;
For Juno, Tuskar will provide role defaults or suggestions corresponding to current default roles, as well as an &amp;quot;All-in-One&amp;quot; role.   Each default role will be automatically associated with a list of cloud service elements and a pre-created image.  Later iterations of Tuskar will allow for more user customization in this area.&lt;br /&gt;
&lt;br /&gt;
If possible, we would also like to support customized roles that specify their own elements.  This would require the development of additional TripleO features as described in the next section.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Diskimage builder resource (question raised wrt ability to spawn VM to host it in seed/undercloud), also OS::GlanceImageUploader resource (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* ensure existence of default images&lt;br /&gt;
* create default roles, each associated with a list of elements, an image, and a Heat template&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to accomodate cloud services&lt;br /&gt;
&lt;br /&gt;
== Overcloud Planning and Deployment ==&lt;br /&gt;
&lt;br /&gt;
In Icehouse, the planning stage of overcloud deployment is represented by data stored in Tuskar database tables.  For Juno, we would like to remove the database from Tuskar.  Instead, the planning stage of a deployment will be represented by the full Heat template that would be used to deploy it.  Since Heat does not intend to be a template store, this template will be stored in Swift instead.  When the overcloud is ready to be deployed, the Tuskar service will pull the template out of Swift.&lt;br /&gt;
&lt;br /&gt;
[[File:tuskar-arch-juno.png|Tuskar Architecture]]&lt;br /&gt;
&lt;br /&gt;
Once an overcloud is deployed, all Tuskar interactions with that overcloud should be done through Heat.  This includes queries about running Nova instances and relevant Ironic nodes.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Allow stacks to be updated without forcing the user to re-provide all parameters (https://bugs.launchpad.net/heat/+bug/1224828)&lt;br /&gt;
* Stack update, allow retry from failed states (https://blueprints.launchpad.net/heat/+spec/update-failure-recovery)&lt;br /&gt;
* Stack update, rolling updates (canary deployments etc) (https://blueprints.launchpad.net/heat/+spec/rolling-updates)&lt;br /&gt;
* Stack update, enable cancelling in-progress update (e.g to pause or rollback) (https://blueprints.launchpad.net/heat/+spec/cancel-update-stack)&lt;br /&gt;
* Possibly allow inline specification of provider resources, e.g have a resource which generates a heat template, then refer to it, e.g like type: {get_attr: [SomeResource, template]} (''may not be required by Tuskar'')&lt;br /&gt;
* nested resource templates&lt;br /&gt;
* Stack preview (preview what would happen via stack-create) (https://blueprints.launchpad.net/heat/+spec/preview-stack) (''may not be required for Juno'')&lt;br /&gt;
* Stack check (sync state of stack with the real state of underlying resources, e.g persist out-of-band failures in stack resource states) (https://blueprints.launchpad.net/heat/+spec/stack-check) (''may not be required for Juno'')&lt;br /&gt;
* Stack converge - &amp;quot;fixes&amp;quot; stack and returns to known state (https://blueprints.launchpad.net/heat/+spec/stack-convergence) (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update Heat templates in TripleO for: HOT, provider resources, software config&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* provide default templates for default roles (these will be wrapped in ProviderResources)&lt;br /&gt;
* construct an overcloud template that references the default roles through ProviderResources&lt;br /&gt;
* ensure constructed templates define the appropriate ResourceAttributes to be queried through the UI/CLI&lt;br /&gt;
* given a Heat template constructed in this way, parse it in such a way as to retrieve the role specification and Heat parameters&lt;br /&gt;
* rebuild Tuskar to save and retrieve Heat templates from Swift&lt;br /&gt;
* update CLI as necessary&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update stack queries to take advantage Heat ResourceAttributes (make sure information is gotten through Heat)&lt;br /&gt;
* update deployment workflow&lt;br /&gt;
&lt;br /&gt;
== Custom Roles ==&lt;br /&gt;
&lt;br /&gt;
Although default, predefined roles are the immediate goal, it would be nice to also allow users to define their own roles.  To do so, they would specify their own list of elements.  Tuskar would then use that information to call out to diskimage-builder to create a custom image matching the role; and it would create a custom Heat template for that role that the master overcloud template could then use.&lt;br /&gt;
&lt;br /&gt;
The remainder of the workflow is the same as with default roles.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* given an image element, return the list of Heat parameters that it needs&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* given a role specification, use diskimage-builder to construct a matching image (derived from the role's image elements)&lt;br /&gt;
* given a role specification, return the list of Heat parameters that it needs (derived from the role's image elements)&lt;br /&gt;
* given a role specification and its Heat parameters, construct a Heat template for that role that meets those specifications&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* create custom role workflow&lt;br /&gt;
&lt;br /&gt;
== High Availability ==&lt;br /&gt;
&lt;br /&gt;
One of TripleO's top priorities for Juno is to allow the deployment of a High-Availability (HA) overcloud.  We would like to extend Tuskar to ensure that it can be used to deploy a HA overcloud as well.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* Deploy HA Overcloud&lt;br /&gt;
:* glusterfs &lt;br /&gt;
:* pacemaker, corosync&lt;br /&gt;
:* neutron (?)&lt;br /&gt;
:* heat-engine A/A&lt;br /&gt;
:* qpid proton (assuming amqp 1.0 have merged into oslo.messaging and oslo.messaging have merged in each core project. If not, will use rabbitmq)&lt;br /&gt;
:* etc etc&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support HA&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* deployment workflow support for HA architecture&lt;br /&gt;
&lt;br /&gt;
== Auto-Scaling ==&lt;br /&gt;
&lt;br /&gt;
Having the option for an auto-scaling cloud deployment would be greatly appealing to many users.  Heat is actively working on auto-scaling support, as are other projects.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Inhibit autoscaling during stack abandon/adopt (quiesce and revitalize)&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* hooks to do cleanup on scale-down (e.g host evacuation etc) (https://blueprints.launchpad.net/heat/+spec/update-hooks)&lt;br /&gt;
* choose victim on scale-down, or specify strategy for choosing (e.g oldest first or newest first) (https://blueprints.launchpad.net/heat/+spec/autoscaling-parameters)&lt;br /&gt;
* support complex conditionals when choosing victim on scale-down (e.g get notification or poll metric via ceilometer related to occupancy or other application metrics); possibly handled by above, if we can get ceilometer to pass us appropriate data when signalling the scaling policy, TBC (''may not be required for Juno'')&lt;br /&gt;
* Method to inhibit autoscaling/alarms during abandon/adopt (and suspend/resume?)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to include options that allow an auto-scaled overcloud deployment&lt;br /&gt;
&lt;br /&gt;
== Node Management (Ironic) ==&lt;br /&gt;
&lt;br /&gt;
We would like to switch over to using Ironic in the near future, as there are a host of features that would depend upon it.&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Ironic graduation&lt;br /&gt;
:* CI jobs&lt;br /&gt;
:* Nova driver&lt;br /&gt;
:* Serial console&lt;br /&gt;
:* Migration path&lt;br /&gt;
:* User documentation&lt;br /&gt;
&lt;br /&gt;
* Autodiscovery of nodes&lt;br /&gt;
* Ceilometer&lt;br /&gt;
* Tagging&lt;br /&gt;
* scalability&lt;br /&gt;
&lt;br /&gt;
==== Nova ====&lt;br /&gt;
&lt;br /&gt;
* create a nova filter for exact matches to Ironic nodes (including all node metadata) (https://review.openstack.org/#/c/83728/)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* use exact match filter when deploying overcloud&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* added node tag values to flavor extra_specs&lt;br /&gt;
&lt;br /&gt;
== Metric Graphs ==&lt;br /&gt;
&lt;br /&gt;
Data visualization is a key part of maintaining a cloud.  We would like to start integrating Ceilometer usage into Tuskar.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Combine samples for different meters in a transformer to produce a single derived meter&lt;br /&gt;
* Rollup of course-grained statistics for UI queries&lt;br /&gt;
* Configurable data retention based on rollups&lt;br /&gt;
* Overarching &amp;quot;health&amp;quot; metric for nodes&lt;br /&gt;
* Ceilometer native auth for alarm notifications (and possibly metrics in future) (https://blueprints.launchpad.net/ceilometer/+spec/trust-alarm-notifier)&lt;br /&gt;
* Eliminate central agent SPoF&lt;br /&gt;
* SNMP batch mode, one bulk command per node per polling cycle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For additional data:&lt;br /&gt;
&lt;br /&gt;
* Acquire hardware-oriented metrics via IPMI (e.g., voltage, fan speeds, etc.)&lt;br /&gt;
* Keystone v3 usage would avoid IPMI credentials; allowing pollster-style interaction&lt;br /&gt;
* Look into consistent hashing; see if it can be reused in ceilometer -- though it requires stateful DB&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Add a periodic task to send hardware sensor data to ceilometer  (https://blueprints.launchpad.net/ironic/+spec/send-data-to-ceilometer)&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update undercloud images to allow for the monitoring of hardware (setup Central Agent for polling all hardware)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* add SNMP agents to overcloud images&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* Add Ceilometer-based graphs and metric data&lt;br /&gt;
&lt;br /&gt;
== User Interfaces ==&lt;br /&gt;
&lt;br /&gt;
This is a general category intended to encapsulate work needed in the UI and CLI.&lt;br /&gt;
&lt;br /&gt;
==== Horizon ====&lt;br /&gt;
&lt;br /&gt;
* separate horizon from openstack-dashboard&lt;br /&gt;
* test the replacement of lesscpy with pyScss&lt;br /&gt;
* improve error handling so that messages are less generic&lt;br /&gt;
* additional work on the plugin architecture to support dynamic hardware-specific views&lt;br /&gt;
&lt;br /&gt;
==== Tuskar-CLI ====&lt;br /&gt;
&lt;br /&gt;
* create a tuskar-cli plugin for OpenStackClient&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* increase the modularity of views&lt;br /&gt;
* investigate usage of Heat UI components in Horizon (for example, parameter form building)&lt;br /&gt;
* create a mechanism for asynchronous communication&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47293</id>
		<title>TripleO/TuskarJunoPlanning</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47293"/>
				<updated>2014-04-01T14:05:10Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Heat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This planning document is born from discussions from the TripleO mid-cycle Icehouse meetup in Sunnyvale ([[TripleO/TuskarJunoInitialDiscussion]], [https://etherpad.openstack.org/p/openstack-management-features OpenStack Management Features]).  The ideas iterated there were then individually fleshed out and detailed, with much input coming from conversations with other OpenStack projects.&lt;br /&gt;
&lt;br /&gt;
Our principal concerns duing the Juno cycle are:&lt;br /&gt;
&lt;br /&gt;
* integrating further with other OpenStack services, using their capabilities to enhance our TripleO management experience&lt;br /&gt;
* ensuring that Tuskar does not try to implement functionality that is better located in other projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document details our high-level goals for Juno.  It does so at multiple levels; for each we provide:&lt;br /&gt;
&lt;br /&gt;
* a description of the goal&lt;br /&gt;
* a list of project requirements and/or blueprints needed&lt;br /&gt;
&lt;br /&gt;
== Cloud Service Representation ==&lt;br /&gt;
&lt;br /&gt;
A cloud service represents a cloud function - provisioning service, storage service, message broker, database server, etc. A cloud service is fulfilled by a cloud service element; for example, a user can fulfill the message broker cloud service by either choosing the qpid-server element or the rabbitmq-server element.&lt;br /&gt;
&lt;br /&gt;
With the cloud service concept in play, overcloud roles are updated as follows: instead of being associated with images, they are associated with a list of cloud service elements.  This provides greater flexibility for the Tuskar user when designing the scalable components of a cloud. For example, instead of being limited to a Controller role, the user can separate out the network components of that role into a Network role and scale it individually.&lt;br /&gt;
&lt;br /&gt;
[[File:Tuskar-service-model.png|Tuskar Service Model]]&lt;br /&gt;
&lt;br /&gt;
For Juno, Tuskar will provide role defaults or suggestions corresponding to current default roles, as well as an &amp;quot;All-in-One&amp;quot; role.   Each default role will be automatically associated with a list of cloud service elements and a pre-created image.  Later iterations of Tuskar will allow for more user customization in this area.&lt;br /&gt;
&lt;br /&gt;
If possible, we would also like to support customized roles that specify their own elements.  This would require the development of additional TripleO features as described in the next section.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Diskimage builder resource (question raised wrt ability to spawn VM to host it in seed/undercloud), also OS::GlanceImageUploader resource (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* ensure existence of default images&lt;br /&gt;
* create default roles, each associated with a list of elements, an image, and a Heat template&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to accomodate cloud services&lt;br /&gt;
&lt;br /&gt;
== Overcloud Planning and Deployment ==&lt;br /&gt;
&lt;br /&gt;
In Icehouse, the planning stage of overcloud deployment is represented by data stored in Tuskar database tables.  For Juno, we would like to remove the database from Tuskar.  Instead, the planning stage of a deployment will be represented by the full Heat template that would be used to deploy it.  Since Heat does not intend to be a template store, this template will be stored in Swift instead.  When the overcloud is ready to be deployed, the Tuskar service will pull the template out of Swift.&lt;br /&gt;
&lt;br /&gt;
[[File:tuskar-arch-juno.png|Tuskar Architecture]]&lt;br /&gt;
&lt;br /&gt;
Once an overcloud is deployed, all Tuskar interactions with that overcloud should be done through Heat.  This includes queries about running Nova instances and relevant Ironic nodes.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Allow stacks to be updated without forcing the user to re-provide all parameters (https://bugs.launchpad.net/heat/+bug/1224828)&lt;br /&gt;
* Stack update, allow retry from failed states (https://blueprints.launchpad.net/heat/+spec/update-failure-recovery)&lt;br /&gt;
* Stack update, rolling updates (canary deployments etc) (https://blueprints.launchpad.net/heat/+spec/rolling-updates)&lt;br /&gt;
* Stack update, enable cancelling in-progress update (e.g to pause or rollback) (https://blueprints.launchpad.net/heat/+spec/cancel-update-stack)&lt;br /&gt;
* Possibly allow inline specification of provider resources, e.g have a resource which generates a heat template, then refer to it, e.g like type: {get_attr: [SomeResource, template]} (''may not be required by Tuskar'')&lt;br /&gt;
* nested resource templates&lt;br /&gt;
* Stack preview (preview what would happen via stack-create) (https://blueprints.launchpad.net/heat/+spec/preview-stack) (''may not be required for Juno'')&lt;br /&gt;
* Stack check (sync state of stack with the real state of underlying resources, e.g persist out-of-band failures in stack resource states) (https://blueprints.launchpad.net/heat/+spec/stack-check) (''may not be required for Juno'')&lt;br /&gt;
* Stack converge - &amp;quot;fixes&amp;quot; stack and returns to known state (https://blueprints.launchpad.net/heat/+spec/stack-convergence) (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update Heat templates in TripleO for: HOT, provider resources, software config&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* provide default templates for default roles (these will be wrapped in ProviderResources)&lt;br /&gt;
* construct an overcloud template that references the default roles through ProviderResources&lt;br /&gt;
* ensure constructed templates define the appropriate ResourceAttributes to be queried through the UI/CLI&lt;br /&gt;
* given a Heat template constructed in this way, parse it in such a way as to retrieve the role specification and Heat parameters&lt;br /&gt;
* rebuild Tuskar to save and retrieve Heat templates from Swift&lt;br /&gt;
* update CLI as necessary&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update stack queries to take advantage Heat ResourceAttributes (make sure information is gotten through Heat)&lt;br /&gt;
* update deployment workflow&lt;br /&gt;
&lt;br /&gt;
== Custom Roles ==&lt;br /&gt;
&lt;br /&gt;
Although default, predefined roles are the immediate goal, it would be nice to also allow users to define their own roles.  To do so, they would specify their own list of elements.  Tuskar would then use that information to call out to diskimage-builder to create a custom image matching the role; and it would create a custom Heat template for that role that the master overcloud template could then use.&lt;br /&gt;
&lt;br /&gt;
The remainder of the workflow is the same as with default roles.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* given an image element, return the list of Heat parameters that it needs&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* given a role specification, use diskimage-builder to construct a matching image (derived from the role's image elements)&lt;br /&gt;
* given a role specification, return the list of Heat parameters that it needs (derived from the role's image elements)&lt;br /&gt;
* given a role specification and its Heat parameters, construct a Heat template for that role that meets those specifications&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* create custom role workflow&lt;br /&gt;
&lt;br /&gt;
== High Availability ==&lt;br /&gt;
&lt;br /&gt;
One of TripleO's top priorities for Juno is to allow the deployment of a High-Availability (HA) overcloud.  We would like to extend Tuskar to ensure that it can be used to deploy a HA overcloud as well.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* Deploy HA Overcloud&lt;br /&gt;
:* glusterfs &lt;br /&gt;
:* pacemaker, corosync&lt;br /&gt;
:* neutron (?)&lt;br /&gt;
:* heat-engine A/A&lt;br /&gt;
:* qpid proton (assuming amqp 1.0 have merged into oslo.messaging and oslo.messaging have merged in each core project. If not, will use rabbitmq)&lt;br /&gt;
:* etc etc&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support HA&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* deployment workflow support for HA architecture&lt;br /&gt;
&lt;br /&gt;
== Auto-Scaling ==&lt;br /&gt;
&lt;br /&gt;
Having the option for an auto-scaling cloud deployment would be greatly appealing to many users.  Heat is actively working on auto-scaling support, as are other projects.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Inhibit autoscaling during stack abandon/adopt (quiesce and revitalize)&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* hooks to do cleanup on scale-down (e.g host evacuation etc) (https://blueprints.launchpad.net/heat/+spec/update-hooks)&lt;br /&gt;
* choose victim on scale-down, or specify strategy for choosing (e.g oldest first or newest first) (https://blueprints.launchpad.net/heat/+spec/autoscaling-parameters)&lt;br /&gt;
* support complex conditionals when choosing victim on scale-down (e.g get notification or poll metric via ceilometer related to occupancy or other application metrics); possibly handled by above, if we can get ceilometer to pass us appropriate data when signalling the scaling policy, TBC (''may not be required for Juno'')&lt;br /&gt;
* Method to inhibit autoscaling/alarms during abandon/adopt (and suspend/resume?)&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update image elements to support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to include options that allow an auto-scaled overcloud deployment&lt;br /&gt;
&lt;br /&gt;
== Node Management (Ironic) ==&lt;br /&gt;
&lt;br /&gt;
We would like to switch over to using Ironic in the near future, as there are a host of features that would depend upon it.&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Ironic graduation&lt;br /&gt;
:* CI jobs&lt;br /&gt;
:* Nova driver&lt;br /&gt;
:* Serial console&lt;br /&gt;
:* Migration path&lt;br /&gt;
:* User documentation&lt;br /&gt;
&lt;br /&gt;
* Autodiscovery of nodes&lt;br /&gt;
* Ceilometer&lt;br /&gt;
* Tagging&lt;br /&gt;
* scalability&lt;br /&gt;
&lt;br /&gt;
==== Nova ====&lt;br /&gt;
&lt;br /&gt;
* create a nova filter for exact matches to Ironic nodes (including all node metadata) (https://review.openstack.org/#/c/83728/)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* use exact match filter when deploying overcloud&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* added node tag values to flavor extra_specs&lt;br /&gt;
&lt;br /&gt;
== Metric Graphs ==&lt;br /&gt;
&lt;br /&gt;
Data visualization is a key part of maintaining a cloud.  We would like to start integrating Ceilometer usage into Tuskar.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Combine samples for different meters in a transformer to produce a single derived meter&lt;br /&gt;
* Rollup of course-grained statistics for UI queries&lt;br /&gt;
* Configurable data retention based on rollups&lt;br /&gt;
* Overarching &amp;quot;health&amp;quot; metric for nodes&lt;br /&gt;
* Ceilometer native auth for alarm notifications (and possibly metrics in future) (https://blueprints.launchpad.net/ceilometer/+spec/trust-alarm-notifier)&lt;br /&gt;
* Eliminate central agent SPoF&lt;br /&gt;
* SNMP batch mode, one bulk command per node per polling cycle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For additional data:&lt;br /&gt;
&lt;br /&gt;
* Acquire hardware-oriented metrics via IPMI (e.g., voltage, fan speeds, etc.)&lt;br /&gt;
* Keystone v3 usage would avoid IPMI credentials; allowing pollster-style interaction&lt;br /&gt;
* Look into consistent hashing; see if it can be reused in ceilometer -- though it requires stateful DB&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Add a periodic task to send hardware sensor data to ceilometer  (https://blueprints.launchpad.net/ironic/+spec/send-data-to-ceilometer)&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update undercloud images to allow for the monitoring of hardware (setup Central Agent for polling all hardware)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* add SNMP agents to overcloud images&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* Add Ceilometer-based graphs and metric data&lt;br /&gt;
&lt;br /&gt;
== User Interfaces ==&lt;br /&gt;
&lt;br /&gt;
This is a general category intended to encapsulate work needed in the UI and CLI.&lt;br /&gt;
&lt;br /&gt;
==== Horizon ====&lt;br /&gt;
&lt;br /&gt;
* separate horizon from openstack-dashboard&lt;br /&gt;
* test the replacement of lesscpy with pyScss&lt;br /&gt;
* improve error handling so that messages are less generic&lt;br /&gt;
* additional work on the plugin architecture to support dynamic hardware-specific views&lt;br /&gt;
&lt;br /&gt;
==== Tuskar-CLI ====&lt;br /&gt;
&lt;br /&gt;
* create a tuskar-cli plugin for OpenStackClient&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* increase the modularity of views&lt;br /&gt;
* investigate usage of Heat UI components in Horizon (for example, parameter form building)&lt;br /&gt;
* create a mechanism for asynchronous communication&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47103</id>
		<title>TripleO/TuskarJunoPlanning</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47103"/>
				<updated>2014-03-31T16:30:27Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Metric Graphs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This planning document is born from discussions from the TripleO mid-cycle Icehouse meetup in Sunnyvale ([[TripleO/TuskarJunoInitialDiscussion]], [https://etherpad.openstack.org/p/openstack-management-features OpenStack Management Features]).  The ideas iterated there were then individually fleshed out and detailed, with much input coming from conversations with other OpenStack projects.&lt;br /&gt;
&lt;br /&gt;
Our principal concerns duing the Juno cycle are:&lt;br /&gt;
&lt;br /&gt;
* integrating further with other OpenStack services, using their capabilities to enhance our TripleO management experience&lt;br /&gt;
* ensuring that Tuskar does not try to implement functionality that is better located in other projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document details our high-level goals for Juno.  It does so at multiple levels; for each we provide:&lt;br /&gt;
&lt;br /&gt;
* a description of the goal&lt;br /&gt;
* a list of project requirements and/or blueprints needed&lt;br /&gt;
&lt;br /&gt;
== Cloud Service Representation ==&lt;br /&gt;
&lt;br /&gt;
A cloud service represents a cloud function - provisioning service, storage service, message broker, database server, etc. A cloud service is fulfilled by a cloud service element; for example, a user can fulfill the message broker cloud service by either choosing the qpid-server element or the rabbitmq-server element.&lt;br /&gt;
&lt;br /&gt;
With the cloud service concept in play, overcloud roles are updated as follows: instead of being associated with images, they are associated with a list of cloud service elements.  This provides greater flexibility for the Tuskar user when designing the scalable components of a cloud. For example, instead of being limited to a Controller role, the user can separate out the network components of that role into a Network role and scale it individually.&lt;br /&gt;
&lt;br /&gt;
[[File:Tuskar-service-model.png|Tuskar Service Model]]&lt;br /&gt;
&lt;br /&gt;
For Juno, Tuskar will provide role defaults or suggestions corresponding to current default roles, as well as an &amp;quot;All-in-One&amp;quot; role.   Each default role will be automatically associated with a list of cloud service elements and a pre-created image.  Later iterations of Tuskar will allow for more user customization in this area.&lt;br /&gt;
&lt;br /&gt;
If possible, we would also like to support customized roles that specify their own elements.  This would require the development of additional TripleO features as described in the next section.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Diskimage builder resource (question raised wrt ability to spawn VM to host it in seed/undercloud), also OS::GlanceImageUploader resource (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* ensure existence of default images&lt;br /&gt;
* create default roles, each associated with a list of elements, an image, and a Heat template&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to accomodate cloud services&lt;br /&gt;
&lt;br /&gt;
== Overcloud Planning and Deployment ==&lt;br /&gt;
&lt;br /&gt;
In Icehouse, the planning stage of overcloud deployment is represented by data stored in Tuskar database tables.  For Juno, we would like to remove the database from Tuskar.  Instead, the planning stage of a deployment will be represented by the full Heat template that would be used to deploy it.  Since Heat does not intend to be a template store, this template will be stored in Swift instead.  When the overcloud is ready to be deployed, the Tuskar service will pull the template out of Swift.&lt;br /&gt;
&lt;br /&gt;
[[File:tuskar-arch-juno.png|Tuskar Architecture]]&lt;br /&gt;
&lt;br /&gt;
Once an overcloud is deployed, all Tuskar interactions with that overcloud should be done through Heat.  This includes queries about running Nova instances and relevant Ironic nodes.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Allow stacks to be updated without forcing the user to re-provide all parameters (https://bugs.launchpad.net/heat/+bug/1224828)&lt;br /&gt;
* Stack update, allow retry from failed states (https://blueprints.launchpad.net/heat/+spec/update-failure-recovery)&lt;br /&gt;
* Stack update, rolling updates (canary deployments etc) (https://blueprints.launchpad.net/heat/+spec/rolling-updates) (''may not be required by Tuskar'')&lt;br /&gt;
* Stack update, enable cancelling in-progress update (e.g to pause or rollback) (https://blueprints.launchpad.net/heat/+spec/cancel-update-stack)&lt;br /&gt;
* Possibly allow inline specification of provider resources, e.g have a resource which generates a heat template, then refer to it, e.g like type: {get_attr: [SomeResource, template]} (''may not be required by Tuskar'')&lt;br /&gt;
* nested resource templates (''may not be required for Juno'')&lt;br /&gt;
* Stack preview (preview what would happen via stack-create) (https://blueprints.launchpad.net/heat/+spec/preview-stack) (''may not be required for Juno'')&lt;br /&gt;
* Stack check (sync state of stack with the real state of underlying resources, e.g persist out-of-band failures in stack resource states) (https://blueprints.launchpad.net/heat/+spec/stack-check) (''may not be required for Juno'')&lt;br /&gt;
* Stack converge - &amp;quot;fixes&amp;quot; stack and returns to known state (https://blueprints.launchpad.net/heat/+spec/stack-convergence) (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update Heat templates in TripleO for: HOT, provider resources, software config&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* provide default templates for default roles (these will be wrapped in ProviderResources)&lt;br /&gt;
* construct an overcloud template that references the default roles through ProviderResources&lt;br /&gt;
* ensure constructed templates define the appropriate ResourceAttributes to be queried through the UI/CLI&lt;br /&gt;
* given a Heat template constructed in this way, parse it in such a way as to retrieve the role specification and Heat parameters&lt;br /&gt;
* rebuild Tuskar to save and retrieve Heat templates from Swift&lt;br /&gt;
* update CLI as necessary&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update stack queries to take advantage Heat ResourceAttributes (make sure information is gotten through Heat)&lt;br /&gt;
* update deployment workflow&lt;br /&gt;
&lt;br /&gt;
== Custom Roles ==&lt;br /&gt;
&lt;br /&gt;
Although default, predefined roles are the immediate goal, it would be nice to also allow users to define their own roles.  To do so, they would specify their own list of elements.  Tuskar would then use that information to call out to diskimage-builder to create a custom image matching the role; and it would create a custom Heat template for that role that the master overcloud template could then use.&lt;br /&gt;
&lt;br /&gt;
The remainder of the workflow is the same as with default roles.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* given an image element, return the list of Heat parameters that it needs&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* given a role specification, use diskimage-builder to construct a matching image (derived from the role's image elements)&lt;br /&gt;
* given a role specification, return the list of Heat parameters that it needs (derived from the role's image elements)&lt;br /&gt;
* given a role specification and its Heat parameters, construct a Heat template for that role that meets those specifications&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* create custom role workflow&lt;br /&gt;
&lt;br /&gt;
== High Availability ==&lt;br /&gt;
&lt;br /&gt;
One of TripleO's top priorities for Juno is to allow the deployment of a High-Availability (HA) overcloud.  We would like to extend Tuskar to ensure that it can be used to deploy a HA overcloud as well.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* Deploy HA Overcloud&lt;br /&gt;
:* glusterfs &lt;br /&gt;
:* pacemaker, corosync&lt;br /&gt;
:* neutron (?)&lt;br /&gt;
:* heat-engine A/A&lt;br /&gt;
:* qpid proton (assuming amqp 1.0 have merged into oslo.messaging and oslo.messaging have merged in each core project. If not, will use rabbitmq)&lt;br /&gt;
:* etc etc&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support HA&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* deployment workflow support for HA architecture&lt;br /&gt;
&lt;br /&gt;
== Auto-Scaling ==&lt;br /&gt;
&lt;br /&gt;
Having the option for an auto-scaling cloud deployment would be greatly appealing to many users.  Heat is actively working on auto-scaling support, as are other projects.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Inhibit autoscaling during stack abandon/adopt (quiesce and revitalize)&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* hooks to do cleanup on scale-down (e.g host evacuation etc) (https://blueprints.launchpad.net/heat/+spec/update-hooks)&lt;br /&gt;
* choose victim on scale-down, or specify strategy for choosing (e.g oldest first or newest first) (https://blueprints.launchpad.net/heat/+spec/autoscaling-parameters)&lt;br /&gt;
* support complex conditionals when choosing victim on scale-down (e.g get notification or poll metric via ceilometer related to occupancy or other application metrics); possibly handled by above, if we can get ceilometer to pass us appropriate data when signalling the scaling policy, TBC (''may not be required for Juno'')&lt;br /&gt;
* Method to inhibit autoscaling/alarms during abandon/adopt (and suspend/resume?)&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update image elements to support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to include options that allow an auto-scaled overcloud deployment&lt;br /&gt;
&lt;br /&gt;
== Node Management (Ironic) ==&lt;br /&gt;
&lt;br /&gt;
We would like to switch over to using Ironic in the near future, as there are a host of features that would depend upon it.&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Ironic graduation&lt;br /&gt;
:* CI jobs&lt;br /&gt;
:* Nova driver&lt;br /&gt;
:* Serial console&lt;br /&gt;
:* Migration path&lt;br /&gt;
:* User documentation&lt;br /&gt;
&lt;br /&gt;
* Autodiscovery of nodes&lt;br /&gt;
* Ceilometer&lt;br /&gt;
* Tagging&lt;br /&gt;
* scalability&lt;br /&gt;
&lt;br /&gt;
==== Nova ====&lt;br /&gt;
&lt;br /&gt;
* create a nova filter for exact matches to Ironic nodes (including all node metadata) (https://review.openstack.org/#/c/83728/)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* use exact match filter when deploying overcloud&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* added node tag values to flavor extra_specs&lt;br /&gt;
&lt;br /&gt;
== Metric Graphs ==&lt;br /&gt;
&lt;br /&gt;
Data visualization is a key part of maintaining a cloud.  We would like to start integrating Ceilometer usage into Tuskar.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Combine samples for different meters in a transformer to produce a single derived meter&lt;br /&gt;
* Rollup of course-grained statistics for UI queries&lt;br /&gt;
* Configurable data retention based on rollups&lt;br /&gt;
* Overarching &amp;quot;health&amp;quot; metric for nodes&lt;br /&gt;
* Ceilometer native auth for alarm notifications (and possibly metrics in future) (https://blueprints.launchpad.net/ceilometer/+spec/trust-alarm-notifier)&lt;br /&gt;
* Eliminate central agent SPoF&lt;br /&gt;
* SNMP batch mode, one bulk command per node per polling cycle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For additional data:&lt;br /&gt;
&lt;br /&gt;
* Acquire hardware-oriented metrics via IPMI (e.g., voltage, fan speeds, etc.)&lt;br /&gt;
* Keystone v3 usage would avoid IPMI credentials; allowing pollster-style interaction&lt;br /&gt;
* Look into consistent hashing; see if it can be reused in ceilometer -- though it requires stateful DB&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Add a periodic task to send hardware sensor data to ceilometer  (https://blueprints.launchpad.net/ironic/+spec/send-data-to-ceilometer)&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update undercloud images to allow for the monitoring of hardware (setup Central Agent for polling all hardware)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* add SNMP agents to overcloud images&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* Add Ceilometer-based graphs and metric data&lt;br /&gt;
&lt;br /&gt;
== User Interfaces ==&lt;br /&gt;
&lt;br /&gt;
This is a general category intended to encapsulate work needed in the UI and CLI.&lt;br /&gt;
&lt;br /&gt;
==== Horizon ====&lt;br /&gt;
&lt;br /&gt;
* separate horizon from openstack-dashboard&lt;br /&gt;
* test the replacement of lesscpy with pyScss&lt;br /&gt;
* improve error handling so that messages are less generic&lt;br /&gt;
* additional work on the plugin architecture to support dynamic hardware-specific views&lt;br /&gt;
&lt;br /&gt;
==== Tuskar-CLI ====&lt;br /&gt;
&lt;br /&gt;
* create a tuskar-cli plugin for OpenStackClient&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* increase the modularity of views&lt;br /&gt;
* investigate usage of Heat UI components in Horizon (for example, parameter form building)&lt;br /&gt;
* create a mechanism for asynchronous communication&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47102</id>
		<title>TripleO/TuskarJunoPlanning</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47102"/>
				<updated>2014-03-31T16:26:55Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Tuskar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This planning document is born from discussions from the TripleO mid-cycle Icehouse meetup in Sunnyvale ([[TripleO/TuskarJunoInitialDiscussion]], [https://etherpad.openstack.org/p/openstack-management-features OpenStack Management Features]).  The ideas iterated there were then individually fleshed out and detailed, with much input coming from conversations with other OpenStack projects.&lt;br /&gt;
&lt;br /&gt;
Our principal concerns duing the Juno cycle are:&lt;br /&gt;
&lt;br /&gt;
* integrating further with other OpenStack services, using their capabilities to enhance our TripleO management experience&lt;br /&gt;
* ensuring that Tuskar does not try to implement functionality that is better located in other projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document details our high-level goals for Juno.  It does so at multiple levels; for each we provide:&lt;br /&gt;
&lt;br /&gt;
* a description of the goal&lt;br /&gt;
* a list of project requirements and/or blueprints needed&lt;br /&gt;
&lt;br /&gt;
== Cloud Service Representation ==&lt;br /&gt;
&lt;br /&gt;
A cloud service represents a cloud function - provisioning service, storage service, message broker, database server, etc. A cloud service is fulfilled by a cloud service element; for example, a user can fulfill the message broker cloud service by either choosing the qpid-server element or the rabbitmq-server element.&lt;br /&gt;
&lt;br /&gt;
With the cloud service concept in play, overcloud roles are updated as follows: instead of being associated with images, they are associated with a list of cloud service elements.  This provides greater flexibility for the Tuskar user when designing the scalable components of a cloud. For example, instead of being limited to a Controller role, the user can separate out the network components of that role into a Network role and scale it individually.&lt;br /&gt;
&lt;br /&gt;
[[File:Tuskar-service-model.png|Tuskar Service Model]]&lt;br /&gt;
&lt;br /&gt;
For Juno, Tuskar will provide role defaults or suggestions corresponding to current default roles, as well as an &amp;quot;All-in-One&amp;quot; role.   Each default role will be automatically associated with a list of cloud service elements and a pre-created image.  Later iterations of Tuskar will allow for more user customization in this area.&lt;br /&gt;
&lt;br /&gt;
If possible, we would also like to support customized roles that specify their own elements.  This would require the development of additional TripleO features as described in the next section.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Diskimage builder resource (question raised wrt ability to spawn VM to host it in seed/undercloud), also OS::GlanceImageUploader resource (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* ensure existence of default images&lt;br /&gt;
* create default roles, each associated with a list of elements, an image, and a Heat template&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to accomodate cloud services&lt;br /&gt;
&lt;br /&gt;
== Overcloud Planning and Deployment ==&lt;br /&gt;
&lt;br /&gt;
In Icehouse, the planning stage of overcloud deployment is represented by data stored in Tuskar database tables.  For Juno, we would like to remove the database from Tuskar.  Instead, the planning stage of a deployment will be represented by the full Heat template that would be used to deploy it.  Since Heat does not intend to be a template store, this template will be stored in Swift instead.  When the overcloud is ready to be deployed, the Tuskar service will pull the template out of Swift.&lt;br /&gt;
&lt;br /&gt;
[[File:tuskar-arch-juno.png|Tuskar Architecture]]&lt;br /&gt;
&lt;br /&gt;
Once an overcloud is deployed, all Tuskar interactions with that overcloud should be done through Heat.  This includes queries about running Nova instances and relevant Ironic nodes.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Allow stacks to be updated without forcing the user to re-provide all parameters (https://bugs.launchpad.net/heat/+bug/1224828)&lt;br /&gt;
* Stack update, allow retry from failed states (https://blueprints.launchpad.net/heat/+spec/update-failure-recovery)&lt;br /&gt;
* Stack update, rolling updates (canary deployments etc) (https://blueprints.launchpad.net/heat/+spec/rolling-updates) (''may not be required by Tuskar'')&lt;br /&gt;
* Stack update, enable cancelling in-progress update (e.g to pause or rollback) (https://blueprints.launchpad.net/heat/+spec/cancel-update-stack)&lt;br /&gt;
* Possibly allow inline specification of provider resources, e.g have a resource which generates a heat template, then refer to it, e.g like type: {get_attr: [SomeResource, template]} (''may not be required by Tuskar'')&lt;br /&gt;
* nested resource templates (''may not be required for Juno'')&lt;br /&gt;
* Stack preview (preview what would happen via stack-create) (https://blueprints.launchpad.net/heat/+spec/preview-stack) (''may not be required for Juno'')&lt;br /&gt;
* Stack check (sync state of stack with the real state of underlying resources, e.g persist out-of-band failures in stack resource states) (https://blueprints.launchpad.net/heat/+spec/stack-check) (''may not be required for Juno'')&lt;br /&gt;
* Stack converge - &amp;quot;fixes&amp;quot; stack and returns to known state (https://blueprints.launchpad.net/heat/+spec/stack-convergence) (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update Heat templates in TripleO for: HOT, provider resources, software config&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* provide default templates for default roles (these will be wrapped in ProviderResources)&lt;br /&gt;
* construct an overcloud template that references the default roles through ProviderResources&lt;br /&gt;
* ensure constructed templates define the appropriate ResourceAttributes to be queried through the UI/CLI&lt;br /&gt;
* given a Heat template constructed in this way, parse it in such a way as to retrieve the role specification and Heat parameters&lt;br /&gt;
* rebuild Tuskar to save and retrieve Heat templates from Swift&lt;br /&gt;
* update CLI as necessary&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update stack queries to take advantage Heat ResourceAttributes (make sure information is gotten through Heat)&lt;br /&gt;
* update deployment workflow&lt;br /&gt;
&lt;br /&gt;
== Custom Roles ==&lt;br /&gt;
&lt;br /&gt;
Although default, predefined roles are the immediate goal, it would be nice to also allow users to define their own roles.  To do so, they would specify their own list of elements.  Tuskar would then use that information to call out to diskimage-builder to create a custom image matching the role; and it would create a custom Heat template for that role that the master overcloud template could then use.&lt;br /&gt;
&lt;br /&gt;
The remainder of the workflow is the same as with default roles.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* given an image element, return the list of Heat parameters that it needs&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* given a role specification, use diskimage-builder to construct a matching image (derived from the role's image elements)&lt;br /&gt;
* given a role specification, return the list of Heat parameters that it needs (derived from the role's image elements)&lt;br /&gt;
* given a role specification and its Heat parameters, construct a Heat template for that role that meets those specifications&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* create custom role workflow&lt;br /&gt;
&lt;br /&gt;
== High Availability ==&lt;br /&gt;
&lt;br /&gt;
One of TripleO's top priorities for Juno is to allow the deployment of a High-Availability (HA) overcloud.  We would like to extend Tuskar to ensure that it can be used to deploy a HA overcloud as well.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* Deploy HA Overcloud&lt;br /&gt;
:* glusterfs &lt;br /&gt;
:* pacemaker, corosync&lt;br /&gt;
:* neutron (?)&lt;br /&gt;
:* heat-engine A/A&lt;br /&gt;
:* qpid proton (assuming amqp 1.0 have merged into oslo.messaging and oslo.messaging have merged in each core project. If not, will use rabbitmq)&lt;br /&gt;
:* etc etc&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support HA&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* deployment workflow support for HA architecture&lt;br /&gt;
&lt;br /&gt;
== Auto-Scaling ==&lt;br /&gt;
&lt;br /&gt;
Having the option for an auto-scaling cloud deployment would be greatly appealing to many users.  Heat is actively working on auto-scaling support, as are other projects.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Inhibit autoscaling during stack abandon/adopt (quiesce and revitalize)&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* hooks to do cleanup on scale-down (e.g host evacuation etc) (https://blueprints.launchpad.net/heat/+spec/update-hooks)&lt;br /&gt;
* choose victim on scale-down, or specify strategy for choosing (e.g oldest first or newest first) (https://blueprints.launchpad.net/heat/+spec/autoscaling-parameters)&lt;br /&gt;
* support complex conditionals when choosing victim on scale-down (e.g get notification or poll metric via ceilometer related to occupancy or other application metrics); possibly handled by above, if we can get ceilometer to pass us appropriate data when signalling the scaling policy, TBC (''may not be required for Juno'')&lt;br /&gt;
* Method to inhibit autoscaling/alarms during abandon/adopt (and suspend/resume?)&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update image elements to support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to include options that allow an auto-scaled overcloud deployment&lt;br /&gt;
&lt;br /&gt;
== Node Management (Ironic) ==&lt;br /&gt;
&lt;br /&gt;
We would like to switch over to using Ironic in the near future, as there are a host of features that would depend upon it.&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Ironic graduation&lt;br /&gt;
:* CI jobs&lt;br /&gt;
:* Nova driver&lt;br /&gt;
:* Serial console&lt;br /&gt;
:* Migration path&lt;br /&gt;
:* User documentation&lt;br /&gt;
&lt;br /&gt;
* Autodiscovery of nodes&lt;br /&gt;
* Ceilometer&lt;br /&gt;
* Tagging&lt;br /&gt;
* scalability&lt;br /&gt;
&lt;br /&gt;
==== Nova ====&lt;br /&gt;
&lt;br /&gt;
* create a nova filter for exact matches to Ironic nodes (including all node metadata) (https://review.openstack.org/#/c/83728/)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* use exact match filter when deploying overcloud&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* added node tag values to flavor extra_specs&lt;br /&gt;
&lt;br /&gt;
== Metric Graphs ==&lt;br /&gt;
&lt;br /&gt;
Data visualization is a key part of maintaining a cloud.  We would like to start integrating Ceilometer usage into Tuskar.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Combine samples for different meters in a transformer to produce a single derived meter&lt;br /&gt;
* Rollup of course-grained statistics for UI queries&lt;br /&gt;
* Configurable data retention based on rollups&lt;br /&gt;
* Overarching &amp;quot;health&amp;quot; metric for nodes&lt;br /&gt;
* Ceilometer native auth for alarm notifications (and possibly metrics in future) (https://blueprints.launchpad.net/ceilometer/+spec/trust-alarm-notifier)&lt;br /&gt;
* Eliminate central agent SPoF&lt;br /&gt;
* SNMP batch mode, one bulk command per node per polling cycle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For additional data:&lt;br /&gt;
&lt;br /&gt;
* Acquire hardware-oriented metrics via IPMI (e.g., voltage, fan speeds, etc.)&lt;br /&gt;
* Keystone v3 usage would avoid IPMI credentials; allowing pollster-style interaction&lt;br /&gt;
* Look into consistent hashing; see if it can be reused in ceilometer -- though it requires stateful DB&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Add a periodic task to send hardware sensor data to ceilometer  (https://blueprints.launchpad.net/ironic/+spec/send-data-to-ceilometer)&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update undercloud images to allow for the monitoring of hardware&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* add appropriate Ceilometer agents to generated Heat templates&lt;br /&gt;
* add SNMP agents to overcloud images&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* Add Ceilometer-based graphs and metric data&lt;br /&gt;
&lt;br /&gt;
== User Interfaces ==&lt;br /&gt;
&lt;br /&gt;
This is a general category intended to encapsulate work needed in the UI and CLI.&lt;br /&gt;
&lt;br /&gt;
==== Horizon ====&lt;br /&gt;
&lt;br /&gt;
* separate horizon from openstack-dashboard&lt;br /&gt;
* test the replacement of lesscpy with pyScss&lt;br /&gt;
* improve error handling so that messages are less generic&lt;br /&gt;
* additional work on the plugin architecture to support dynamic hardware-specific views&lt;br /&gt;
&lt;br /&gt;
==== Tuskar-CLI ====&lt;br /&gt;
&lt;br /&gt;
* create a tuskar-cli plugin for OpenStackClient&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* increase the modularity of views&lt;br /&gt;
* investigate usage of Heat UI components in Horizon (for example, parameter form building)&lt;br /&gt;
* create a mechanism for asynchronous communication&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47101</id>
		<title>TripleO/TuskarJunoPlanning</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47101"/>
				<updated>2014-03-31T16:25:14Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Metric Graphs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This planning document is born from discussions from the TripleO mid-cycle Icehouse meetup in Sunnyvale ([[TripleO/TuskarJunoInitialDiscussion]], [https://etherpad.openstack.org/p/openstack-management-features OpenStack Management Features]).  The ideas iterated there were then individually fleshed out and detailed, with much input coming from conversations with other OpenStack projects.&lt;br /&gt;
&lt;br /&gt;
Our principal concerns duing the Juno cycle are:&lt;br /&gt;
&lt;br /&gt;
* integrating further with other OpenStack services, using their capabilities to enhance our TripleO management experience&lt;br /&gt;
* ensuring that Tuskar does not try to implement functionality that is better located in other projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document details our high-level goals for Juno.  It does so at multiple levels; for each we provide:&lt;br /&gt;
&lt;br /&gt;
* a description of the goal&lt;br /&gt;
* a list of project requirements and/or blueprints needed&lt;br /&gt;
&lt;br /&gt;
== Cloud Service Representation ==&lt;br /&gt;
&lt;br /&gt;
A cloud service represents a cloud function - provisioning service, storage service, message broker, database server, etc. A cloud service is fulfilled by a cloud service element; for example, a user can fulfill the message broker cloud service by either choosing the qpid-server element or the rabbitmq-server element.&lt;br /&gt;
&lt;br /&gt;
With the cloud service concept in play, overcloud roles are updated as follows: instead of being associated with images, they are associated with a list of cloud service elements.  This provides greater flexibility for the Tuskar user when designing the scalable components of a cloud. For example, instead of being limited to a Controller role, the user can separate out the network components of that role into a Network role and scale it individually.&lt;br /&gt;
&lt;br /&gt;
[[File:Tuskar-service-model.png|Tuskar Service Model]]&lt;br /&gt;
&lt;br /&gt;
For Juno, Tuskar will provide role defaults or suggestions corresponding to current default roles, as well as an &amp;quot;All-in-One&amp;quot; role.   Each default role will be automatically associated with a list of cloud service elements and a pre-created image.  Later iterations of Tuskar will allow for more user customization in this area.&lt;br /&gt;
&lt;br /&gt;
If possible, we would also like to support customized roles that specify their own elements.  This would require the development of additional TripleO features as described in the next section.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Diskimage builder resource (question raised wrt ability to spawn VM to host it in seed/undercloud), also OS::GlanceImageUploader resource (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* ensure existence of default images&lt;br /&gt;
* create default roles, each associated with a list of elements, an image, and a Heat template&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to accomodate cloud services&lt;br /&gt;
&lt;br /&gt;
== Overcloud Planning and Deployment ==&lt;br /&gt;
&lt;br /&gt;
In Icehouse, the planning stage of overcloud deployment is represented by data stored in Tuskar database tables.  For Juno, we would like to remove the database from Tuskar.  Instead, the planning stage of a deployment will be represented by the full Heat template that would be used to deploy it.  Since Heat does not intend to be a template store, this template will be stored in Swift instead.  When the overcloud is ready to be deployed, the Tuskar service will pull the template out of Swift.&lt;br /&gt;
&lt;br /&gt;
[[File:tuskar-arch-juno.png|Tuskar Architecture]]&lt;br /&gt;
&lt;br /&gt;
Once an overcloud is deployed, all Tuskar interactions with that overcloud should be done through Heat.  This includes queries about running Nova instances and relevant Ironic nodes.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Allow stacks to be updated without forcing the user to re-provide all parameters (https://bugs.launchpad.net/heat/+bug/1224828)&lt;br /&gt;
* Stack update, allow retry from failed states (https://blueprints.launchpad.net/heat/+spec/update-failure-recovery)&lt;br /&gt;
* Stack update, rolling updates (canary deployments etc) (https://blueprints.launchpad.net/heat/+spec/rolling-updates) (''may not be required by Tuskar'')&lt;br /&gt;
* Stack update, enable cancelling in-progress update (e.g to pause or rollback) (https://blueprints.launchpad.net/heat/+spec/cancel-update-stack)&lt;br /&gt;
* Possibly allow inline specification of provider resources, e.g have a resource which generates a heat template, then refer to it, e.g like type: {get_attr: [SomeResource, template]} (''may not be required by Tuskar'')&lt;br /&gt;
* nested resource templates (''may not be required for Juno'')&lt;br /&gt;
* Stack preview (preview what would happen via stack-create) (https://blueprints.launchpad.net/heat/+spec/preview-stack) (''may not be required for Juno'')&lt;br /&gt;
* Stack check (sync state of stack with the real state of underlying resources, e.g persist out-of-band failures in stack resource states) (https://blueprints.launchpad.net/heat/+spec/stack-check) (''may not be required for Juno'')&lt;br /&gt;
* Stack converge - &amp;quot;fixes&amp;quot; stack and returns to known state (https://blueprints.launchpad.net/heat/+spec/stack-convergence) (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update Heat templates in TripleO for: HOT, provider resources, software config&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* provide default templates for default roles (these will be wrapped in ProviderResources)&lt;br /&gt;
* construct an overcloud template that references the default roles through ProviderResources&lt;br /&gt;
* ensure constructed templates define the appropriate ResourceAttributes to be queried through the UI/CLI&lt;br /&gt;
* given a Heat template constructed in this way, parse it in such a way as to retrieve the role specification and Heat parameters&lt;br /&gt;
* rebuild Tuskar to save and retrieve Heat templates from Swift&lt;br /&gt;
* update CLI as necessary&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update stack queries to take advantage Heat ResourceAttributes (make sure information is gotten through Heat)&lt;br /&gt;
* update deployment workflow&lt;br /&gt;
&lt;br /&gt;
== Custom Roles ==&lt;br /&gt;
&lt;br /&gt;
Although default, predefined roles are the immediate goal, it would be nice to also allow users to define their own roles.  To do so, they would specify their own list of elements.  Tuskar would then use that information to call out to diskimage-builder to create a custom image matching the role; and it would create a custom Heat template for that role that the master overcloud template could then use.&lt;br /&gt;
&lt;br /&gt;
The remainder of the workflow is the same as with default roles.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* given an image element, return the list of Heat parameters that it needs&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* given a role specification, use diskimage-builder to construct a matching image (derived from the role's image elements)&lt;br /&gt;
* given a role specification, return the list of Heat parameters that it needs (derived from the role's image elements)&lt;br /&gt;
* given a role specification and its Heat parameters, construct a Heat template for that role that meets those specifications&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* create custom role workflow&lt;br /&gt;
&lt;br /&gt;
== High Availability ==&lt;br /&gt;
&lt;br /&gt;
One of TripleO's top priorities for Juno is to allow the deployment of a High-Availability (HA) overcloud.  We would like to extend Tuskar to ensure that it can be used to deploy a HA overcloud as well.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* Deploy HA Overcloud&lt;br /&gt;
:* glusterfs &lt;br /&gt;
:* pacemaker, corosync&lt;br /&gt;
:* neutron (?)&lt;br /&gt;
:* heat-engine A/A&lt;br /&gt;
:* qpid proton (assuming amqp 1.0 have merged into oslo.messaging and oslo.messaging have merged in each core project. If not, will use rabbitmq)&lt;br /&gt;
:* etc etc&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support HA&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* deployment workflow support for HA architecture&lt;br /&gt;
&lt;br /&gt;
== Auto-Scaling ==&lt;br /&gt;
&lt;br /&gt;
Having the option for an auto-scaling cloud deployment would be greatly appealing to many users.  Heat is actively working on auto-scaling support, as are other projects.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Inhibit autoscaling during stack abandon/adopt (quiesce and revitalize)&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* hooks to do cleanup on scale-down (e.g host evacuation etc) (https://blueprints.launchpad.net/heat/+spec/update-hooks)&lt;br /&gt;
* choose victim on scale-down, or specify strategy for choosing (e.g oldest first or newest first) (https://blueprints.launchpad.net/heat/+spec/autoscaling-parameters)&lt;br /&gt;
* support complex conditionals when choosing victim on scale-down (e.g get notification or poll metric via ceilometer related to occupancy or other application metrics); possibly handled by above, if we can get ceilometer to pass us appropriate data when signalling the scaling policy, TBC (''may not be required for Juno'')&lt;br /&gt;
* Method to inhibit autoscaling/alarms during abandon/adopt (and suspend/resume?)&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update image elements to support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to include options that allow an auto-scaled overcloud deployment&lt;br /&gt;
&lt;br /&gt;
== Node Management (Ironic) ==&lt;br /&gt;
&lt;br /&gt;
We would like to switch over to using Ironic in the near future, as there are a host of features that would depend upon it.&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Ironic graduation&lt;br /&gt;
:* CI jobs&lt;br /&gt;
:* Nova driver&lt;br /&gt;
:* Serial console&lt;br /&gt;
:* Migration path&lt;br /&gt;
:* User documentation&lt;br /&gt;
&lt;br /&gt;
* Autodiscovery of nodes&lt;br /&gt;
* Ceilometer&lt;br /&gt;
* Tagging&lt;br /&gt;
* scalability&lt;br /&gt;
&lt;br /&gt;
==== Nova ====&lt;br /&gt;
&lt;br /&gt;
* create a nova filter for exact matches to Ironic nodes (including all node metadata) (https://review.openstack.org/#/c/83728/)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* use exact match filter when deploying overcloud&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* added node tag values to flavor extra_specs&lt;br /&gt;
&lt;br /&gt;
== Metric Graphs ==&lt;br /&gt;
&lt;br /&gt;
Data visualization is a key part of maintaining a cloud.  We would like to start integrating Ceilometer usage into Tuskar.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Combine samples for different meters in a transformer to produce a single derived meter&lt;br /&gt;
* Rollup of course-grained statistics for UI queries&lt;br /&gt;
* Configurable data retention based on rollups&lt;br /&gt;
* Overarching &amp;quot;health&amp;quot; metric for nodes&lt;br /&gt;
* Ceilometer native auth for alarm notifications (and possibly metrics in future) (https://blueprints.launchpad.net/ceilometer/+spec/trust-alarm-notifier)&lt;br /&gt;
* Eliminate central agent SPoF&lt;br /&gt;
* SNMP batch mode, one bulk command per node per polling cycle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For additional data:&lt;br /&gt;
&lt;br /&gt;
* Acquire hardware-oriented metrics via IPMI (e.g., voltage, fan speeds, etc.)&lt;br /&gt;
* Keystone v3 usage would avoid IPMI credentials; allowing pollster-style interaction&lt;br /&gt;
* Look into consistent hashing; see if it can be reused in ceilometer -- though it requires stateful DB&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Add a periodic task to send hardware sensor data to ceilometer  (https://blueprints.launchpad.net/ironic/+spec/send-data-to-ceilometer)&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update undercloud images to allow for the monitoring of hardware&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* add appropriate Ceilometer agents to generated Heat templates&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* Add Ceilometer-based graphs and metric data&lt;br /&gt;
&lt;br /&gt;
== User Interfaces ==&lt;br /&gt;
&lt;br /&gt;
This is a general category intended to encapsulate work needed in the UI and CLI.&lt;br /&gt;
&lt;br /&gt;
==== Horizon ====&lt;br /&gt;
&lt;br /&gt;
* separate horizon from openstack-dashboard&lt;br /&gt;
* test the replacement of lesscpy with pyScss&lt;br /&gt;
* improve error handling so that messages are less generic&lt;br /&gt;
* additional work on the plugin architecture to support dynamic hardware-specific views&lt;br /&gt;
&lt;br /&gt;
==== Tuskar-CLI ====&lt;br /&gt;
&lt;br /&gt;
* create a tuskar-cli plugin for OpenStackClient&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* increase the modularity of views&lt;br /&gt;
* investigate usage of Heat UI components in Horizon (for example, parameter form building)&lt;br /&gt;
* create a mechanism for asynchronous communication&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47099</id>
		<title>TripleO/TuskarJunoPlanning</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47099"/>
				<updated>2014-03-31T16:18:50Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* TripleO UI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This planning document is born from discussions from the TripleO mid-cycle Icehouse meetup in Sunnyvale ([[TripleO/TuskarJunoInitialDiscussion]], [https://etherpad.openstack.org/p/openstack-management-features OpenStack Management Features]).  The ideas iterated there were then individually fleshed out and detailed, with much input coming from conversations with other OpenStack projects.&lt;br /&gt;
&lt;br /&gt;
Our principal concerns duing the Juno cycle are:&lt;br /&gt;
&lt;br /&gt;
* integrating further with other OpenStack services, using their capabilities to enhance our TripleO management experience&lt;br /&gt;
* ensuring that Tuskar does not try to implement functionality that is better located in other projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document details our high-level goals for Juno.  It does so at multiple levels; for each we provide:&lt;br /&gt;
&lt;br /&gt;
* a description of the goal&lt;br /&gt;
* a list of project requirements and/or blueprints needed&lt;br /&gt;
&lt;br /&gt;
== Cloud Service Representation ==&lt;br /&gt;
&lt;br /&gt;
A cloud service represents a cloud function - provisioning service, storage service, message broker, database server, etc. A cloud service is fulfilled by a cloud service element; for example, a user can fulfill the message broker cloud service by either choosing the qpid-server element or the rabbitmq-server element.&lt;br /&gt;
&lt;br /&gt;
With the cloud service concept in play, overcloud roles are updated as follows: instead of being associated with images, they are associated with a list of cloud service elements.  This provides greater flexibility for the Tuskar user when designing the scalable components of a cloud. For example, instead of being limited to a Controller role, the user can separate out the network components of that role into a Network role and scale it individually.&lt;br /&gt;
&lt;br /&gt;
[[File:Tuskar-service-model.png|Tuskar Service Model]]&lt;br /&gt;
&lt;br /&gt;
For Juno, Tuskar will provide role defaults or suggestions corresponding to current default roles, as well as an &amp;quot;All-in-One&amp;quot; role.   Each default role will be automatically associated with a list of cloud service elements and a pre-created image.  Later iterations of Tuskar will allow for more user customization in this area.&lt;br /&gt;
&lt;br /&gt;
If possible, we would also like to support customized roles that specify their own elements.  This would require the development of additional TripleO features as described in the next section.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Diskimage builder resource (question raised wrt ability to spawn VM to host it in seed/undercloud), also OS::GlanceImageUploader resource (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* ensure existence of default images&lt;br /&gt;
* create default roles, each associated with a list of elements, an image, and a Heat template&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to accomodate cloud services&lt;br /&gt;
&lt;br /&gt;
== Overcloud Planning and Deployment ==&lt;br /&gt;
&lt;br /&gt;
In Icehouse, the planning stage of overcloud deployment is represented by data stored in Tuskar database tables.  For Juno, we would like to remove the database from Tuskar.  Instead, the planning stage of a deployment will be represented by the full Heat template that would be used to deploy it.  Since Heat does not intend to be a template store, this template will be stored in Swift instead.  When the overcloud is ready to be deployed, the Tuskar service will pull the template out of Swift.&lt;br /&gt;
&lt;br /&gt;
[[File:tuskar-arch-juno.png|Tuskar Architecture]]&lt;br /&gt;
&lt;br /&gt;
Once an overcloud is deployed, all Tuskar interactions with that overcloud should be done through Heat.  This includes queries about running Nova instances and relevant Ironic nodes.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Allow stacks to be updated without forcing the user to re-provide all parameters (https://bugs.launchpad.net/heat/+bug/1224828)&lt;br /&gt;
* Stack update, allow retry from failed states (https://blueprints.launchpad.net/heat/+spec/update-failure-recovery)&lt;br /&gt;
* Stack update, rolling updates (canary deployments etc) (https://blueprints.launchpad.net/heat/+spec/rolling-updates) (''may not be required by Tuskar'')&lt;br /&gt;
* Stack update, enable cancelling in-progress update (e.g to pause or rollback) (https://blueprints.launchpad.net/heat/+spec/cancel-update-stack)&lt;br /&gt;
* Possibly allow inline specification of provider resources, e.g have a resource which generates a heat template, then refer to it, e.g like type: {get_attr: [SomeResource, template]} (''may not be required by Tuskar'')&lt;br /&gt;
* nested resource templates (''may not be required for Juno'')&lt;br /&gt;
* Stack preview (preview what would happen via stack-create) (https://blueprints.launchpad.net/heat/+spec/preview-stack) (''may not be required for Juno'')&lt;br /&gt;
* Stack check (sync state of stack with the real state of underlying resources, e.g persist out-of-band failures in stack resource states) (https://blueprints.launchpad.net/heat/+spec/stack-check) (''may not be required for Juno'')&lt;br /&gt;
* Stack converge - &amp;quot;fixes&amp;quot; stack and returns to known state (https://blueprints.launchpad.net/heat/+spec/stack-convergence) (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update Heat templates in TripleO for: HOT, provider resources, software config&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* provide default templates for default roles (these will be wrapped in ProviderResources)&lt;br /&gt;
* construct an overcloud template that references the default roles through ProviderResources&lt;br /&gt;
* ensure constructed templates define the appropriate ResourceAttributes to be queried through the UI/CLI&lt;br /&gt;
* given a Heat template constructed in this way, parse it in such a way as to retrieve the role specification and Heat parameters&lt;br /&gt;
* rebuild Tuskar to save and retrieve Heat templates from Swift&lt;br /&gt;
* update CLI as necessary&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update stack queries to take advantage Heat ResourceAttributes (make sure information is gotten through Heat)&lt;br /&gt;
* update deployment workflow&lt;br /&gt;
&lt;br /&gt;
== Custom Roles ==&lt;br /&gt;
&lt;br /&gt;
Although default, predefined roles are the immediate goal, it would be nice to also allow users to define their own roles.  To do so, they would specify their own list of elements.  Tuskar would then use that information to call out to diskimage-builder to create a custom image matching the role; and it would create a custom Heat template for that role that the master overcloud template could then use.&lt;br /&gt;
&lt;br /&gt;
The remainder of the workflow is the same as with default roles.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* given an image element, return the list of Heat parameters that it needs&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* given a role specification, use diskimage-builder to construct a matching image (derived from the role's image elements)&lt;br /&gt;
* given a role specification, return the list of Heat parameters that it needs (derived from the role's image elements)&lt;br /&gt;
* given a role specification and its Heat parameters, construct a Heat template for that role that meets those specifications&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* create custom role workflow&lt;br /&gt;
&lt;br /&gt;
== High Availability ==&lt;br /&gt;
&lt;br /&gt;
One of TripleO's top priorities for Juno is to allow the deployment of a High-Availability (HA) overcloud.  We would like to extend Tuskar to ensure that it can be used to deploy a HA overcloud as well.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* Deploy HA Overcloud&lt;br /&gt;
:* glusterfs &lt;br /&gt;
:* pacemaker, corosync&lt;br /&gt;
:* neutron (?)&lt;br /&gt;
:* heat-engine A/A&lt;br /&gt;
:* qpid proton (assuming amqp 1.0 have merged into oslo.messaging and oslo.messaging have merged in each core project. If not, will use rabbitmq)&lt;br /&gt;
:* etc etc&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support HA&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* deployment workflow support for HA architecture&lt;br /&gt;
&lt;br /&gt;
== Auto-Scaling ==&lt;br /&gt;
&lt;br /&gt;
Having the option for an auto-scaling cloud deployment would be greatly appealing to many users.  Heat is actively working on auto-scaling support, as are other projects.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Inhibit autoscaling during stack abandon/adopt (quiesce and revitalize)&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* hooks to do cleanup on scale-down (e.g host evacuation etc) (https://blueprints.launchpad.net/heat/+spec/update-hooks)&lt;br /&gt;
* choose victim on scale-down, or specify strategy for choosing (e.g oldest first or newest first) (https://blueprints.launchpad.net/heat/+spec/autoscaling-parameters)&lt;br /&gt;
* support complex conditionals when choosing victim on scale-down (e.g get notification or poll metric via ceilometer related to occupancy or other application metrics); possibly handled by above, if we can get ceilometer to pass us appropriate data when signalling the scaling policy, TBC (''may not be required for Juno'')&lt;br /&gt;
* Method to inhibit autoscaling/alarms during abandon/adopt (and suspend/resume?)&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update image elements to support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to include options that allow an auto-scaled overcloud deployment&lt;br /&gt;
&lt;br /&gt;
== Node Management (Ironic) ==&lt;br /&gt;
&lt;br /&gt;
We would like to switch over to using Ironic in the near future, as there are a host of features that would depend upon it.&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Ironic graduation&lt;br /&gt;
:* CI jobs&lt;br /&gt;
:* Nova driver&lt;br /&gt;
:* Serial console&lt;br /&gt;
:* Migration path&lt;br /&gt;
:* User documentation&lt;br /&gt;
&lt;br /&gt;
* Autodiscovery of nodes&lt;br /&gt;
* Ceilometer&lt;br /&gt;
* Tagging&lt;br /&gt;
* scalability&lt;br /&gt;
&lt;br /&gt;
==== Nova ====&lt;br /&gt;
&lt;br /&gt;
* create a nova filter for exact matches to Ironic nodes (including all node metadata) (https://review.openstack.org/#/c/83728/)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* use exact match filter when deploying overcloud&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* added node tag values to flavor extra_specs&lt;br /&gt;
&lt;br /&gt;
== Metric Graphs ==&lt;br /&gt;
&lt;br /&gt;
Data visualization is a key part of maintaining a cloud.  We would like to start integrating Ceilometer usage into Tuskar.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Combine samples for different meters in a transformer to produce a single derived meter&lt;br /&gt;
* Rollup of course-grained statistics for UI queries&lt;br /&gt;
* Configurable data retention based on rollups&lt;br /&gt;
* Overarching &amp;quot;health&amp;quot; metric for nodes&lt;br /&gt;
* Ceilometer native auth for alarm notifications (and possibly metrics in future) (https://blueprints.launchpad.net/ceilometer/+spec/trust-alarm-notifier)&lt;br /&gt;
* Eliminate central agent SPoF&lt;br /&gt;
* SNMP batch mode, one bulk command per node per polling cycle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For additional data:&lt;br /&gt;
&lt;br /&gt;
* Acquire hardware-oriented metrics via IPMI (e.g., voltage, fan speeds, etc.)&lt;br /&gt;
* Keystone v3 usage would avoid IPMI credentials; allowing pollster-style interaction&lt;br /&gt;
* Look into consistent hashing; see if it can be reused in ceilometer -- though it requires stateful DB&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Add a periodic task to send hardware sensor data to ceilometer  (https://blueprints.launchpad.net/ironic/+spec/send-data-to-ceilometer)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* add appropriate Ceilometer agents to generated Heat templates&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* Add Ceilometer-based graphs and metric data&lt;br /&gt;
&lt;br /&gt;
== User Interfaces ==&lt;br /&gt;
&lt;br /&gt;
This is a general category intended to encapsulate work needed in the UI and CLI.&lt;br /&gt;
&lt;br /&gt;
==== Horizon ====&lt;br /&gt;
&lt;br /&gt;
* separate horizon from openstack-dashboard&lt;br /&gt;
* test the replacement of lesscpy with pyScss&lt;br /&gt;
* improve error handling so that messages are less generic&lt;br /&gt;
* additional work on the plugin architecture to support dynamic hardware-specific views&lt;br /&gt;
&lt;br /&gt;
==== Tuskar-CLI ====&lt;br /&gt;
&lt;br /&gt;
* create a tuskar-cli plugin for OpenStackClient&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* increase the modularity of views&lt;br /&gt;
* investigate usage of Heat UI components in Horizon (for example, parameter form building)&lt;br /&gt;
* create a mechanism for asynchronous communication&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47098</id>
		<title>TripleO/TuskarJunoPlanning</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47098"/>
				<updated>2014-03-31T16:18:39Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Node Management (Ironic) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This planning document is born from discussions from the TripleO mid-cycle Icehouse meetup in Sunnyvale ([[TripleO/TuskarJunoInitialDiscussion]], [https://etherpad.openstack.org/p/openstack-management-features OpenStack Management Features]).  The ideas iterated there were then individually fleshed out and detailed, with much input coming from conversations with other OpenStack projects.&lt;br /&gt;
&lt;br /&gt;
Our principal concerns duing the Juno cycle are:&lt;br /&gt;
&lt;br /&gt;
* integrating further with other OpenStack services, using their capabilities to enhance our TripleO management experience&lt;br /&gt;
* ensuring that Tuskar does not try to implement functionality that is better located in other projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document details our high-level goals for Juno.  It does so at multiple levels; for each we provide:&lt;br /&gt;
&lt;br /&gt;
* a description of the goal&lt;br /&gt;
* a list of project requirements and/or blueprints needed&lt;br /&gt;
&lt;br /&gt;
== Cloud Service Representation ==&lt;br /&gt;
&lt;br /&gt;
A cloud service represents a cloud function - provisioning service, storage service, message broker, database server, etc. A cloud service is fulfilled by a cloud service element; for example, a user can fulfill the message broker cloud service by either choosing the qpid-server element or the rabbitmq-server element.&lt;br /&gt;
&lt;br /&gt;
With the cloud service concept in play, overcloud roles are updated as follows: instead of being associated with images, they are associated with a list of cloud service elements.  This provides greater flexibility for the Tuskar user when designing the scalable components of a cloud. For example, instead of being limited to a Controller role, the user can separate out the network components of that role into a Network role and scale it individually.&lt;br /&gt;
&lt;br /&gt;
[[File:Tuskar-service-model.png|Tuskar Service Model]]&lt;br /&gt;
&lt;br /&gt;
For Juno, Tuskar will provide role defaults or suggestions corresponding to current default roles, as well as an &amp;quot;All-in-One&amp;quot; role.   Each default role will be automatically associated with a list of cloud service elements and a pre-created image.  Later iterations of Tuskar will allow for more user customization in this area.&lt;br /&gt;
&lt;br /&gt;
If possible, we would also like to support customized roles that specify their own elements.  This would require the development of additional TripleO features as described in the next section.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Diskimage builder resource (question raised wrt ability to spawn VM to host it in seed/undercloud), also OS::GlanceImageUploader resource (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* ensure existence of default images&lt;br /&gt;
* create default roles, each associated with a list of elements, an image, and a Heat template&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to accomodate cloud services&lt;br /&gt;
&lt;br /&gt;
== Overcloud Planning and Deployment ==&lt;br /&gt;
&lt;br /&gt;
In Icehouse, the planning stage of overcloud deployment is represented by data stored in Tuskar database tables.  For Juno, we would like to remove the database from Tuskar.  Instead, the planning stage of a deployment will be represented by the full Heat template that would be used to deploy it.  Since Heat does not intend to be a template store, this template will be stored in Swift instead.  When the overcloud is ready to be deployed, the Tuskar service will pull the template out of Swift.&lt;br /&gt;
&lt;br /&gt;
[[File:tuskar-arch-juno.png|Tuskar Architecture]]&lt;br /&gt;
&lt;br /&gt;
Once an overcloud is deployed, all Tuskar interactions with that overcloud should be done through Heat.  This includes queries about running Nova instances and relevant Ironic nodes.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Allow stacks to be updated without forcing the user to re-provide all parameters (https://bugs.launchpad.net/heat/+bug/1224828)&lt;br /&gt;
* Stack update, allow retry from failed states (https://blueprints.launchpad.net/heat/+spec/update-failure-recovery)&lt;br /&gt;
* Stack update, rolling updates (canary deployments etc) (https://blueprints.launchpad.net/heat/+spec/rolling-updates) (''may not be required by Tuskar'')&lt;br /&gt;
* Stack update, enable cancelling in-progress update (e.g to pause or rollback) (https://blueprints.launchpad.net/heat/+spec/cancel-update-stack)&lt;br /&gt;
* Possibly allow inline specification of provider resources, e.g have a resource which generates a heat template, then refer to it, e.g like type: {get_attr: [SomeResource, template]} (''may not be required by Tuskar'')&lt;br /&gt;
* nested resource templates (''may not be required for Juno'')&lt;br /&gt;
* Stack preview (preview what would happen via stack-create) (https://blueprints.launchpad.net/heat/+spec/preview-stack) (''may not be required for Juno'')&lt;br /&gt;
* Stack check (sync state of stack with the real state of underlying resources, e.g persist out-of-band failures in stack resource states) (https://blueprints.launchpad.net/heat/+spec/stack-check) (''may not be required for Juno'')&lt;br /&gt;
* Stack converge - &amp;quot;fixes&amp;quot; stack and returns to known state (https://blueprints.launchpad.net/heat/+spec/stack-convergence) (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update Heat templates in TripleO for: HOT, provider resources, software config&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* provide default templates for default roles (these will be wrapped in ProviderResources)&lt;br /&gt;
* construct an overcloud template that references the default roles through ProviderResources&lt;br /&gt;
* ensure constructed templates define the appropriate ResourceAttributes to be queried through the UI/CLI&lt;br /&gt;
* given a Heat template constructed in this way, parse it in such a way as to retrieve the role specification and Heat parameters&lt;br /&gt;
* rebuild Tuskar to save and retrieve Heat templates from Swift&lt;br /&gt;
* update CLI as necessary&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update stack queries to take advantage Heat ResourceAttributes (make sure information is gotten through Heat)&lt;br /&gt;
* update deployment workflow&lt;br /&gt;
&lt;br /&gt;
== Custom Roles ==&lt;br /&gt;
&lt;br /&gt;
Although default, predefined roles are the immediate goal, it would be nice to also allow users to define their own roles.  To do so, they would specify their own list of elements.  Tuskar would then use that information to call out to diskimage-builder to create a custom image matching the role; and it would create a custom Heat template for that role that the master overcloud template could then use.&lt;br /&gt;
&lt;br /&gt;
The remainder of the workflow is the same as with default roles.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* given an image element, return the list of Heat parameters that it needs&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* given a role specification, use diskimage-builder to construct a matching image (derived from the role's image elements)&lt;br /&gt;
* given a role specification, return the list of Heat parameters that it needs (derived from the role's image elements)&lt;br /&gt;
* given a role specification and its Heat parameters, construct a Heat template for that role that meets those specifications&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* create custom role workflow&lt;br /&gt;
&lt;br /&gt;
== High Availability ==&lt;br /&gt;
&lt;br /&gt;
One of TripleO's top priorities for Juno is to allow the deployment of a High-Availability (HA) overcloud.  We would like to extend Tuskar to ensure that it can be used to deploy a HA overcloud as well.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* Deploy HA Overcloud&lt;br /&gt;
:* glusterfs &lt;br /&gt;
:* pacemaker, corosync&lt;br /&gt;
:* neutron (?)&lt;br /&gt;
:* heat-engine A/A&lt;br /&gt;
:* qpid proton (assuming amqp 1.0 have merged into oslo.messaging and oslo.messaging have merged in each core project. If not, will use rabbitmq)&lt;br /&gt;
:* etc etc&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support HA&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* deployment workflow support for HA architecture&lt;br /&gt;
&lt;br /&gt;
== Auto-Scaling ==&lt;br /&gt;
&lt;br /&gt;
Having the option for an auto-scaling cloud deployment would be greatly appealing to many users.  Heat is actively working on auto-scaling support, as are other projects.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Inhibit autoscaling during stack abandon/adopt (quiesce and revitalize)&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* hooks to do cleanup on scale-down (e.g host evacuation etc) (https://blueprints.launchpad.net/heat/+spec/update-hooks)&lt;br /&gt;
* choose victim on scale-down, or specify strategy for choosing (e.g oldest first or newest first) (https://blueprints.launchpad.net/heat/+spec/autoscaling-parameters)&lt;br /&gt;
* support complex conditionals when choosing victim on scale-down (e.g get notification or poll metric via ceilometer related to occupancy or other application metrics); possibly handled by above, if we can get ceilometer to pass us appropriate data when signalling the scaling policy, TBC (''may not be required for Juno'')&lt;br /&gt;
* Method to inhibit autoscaling/alarms during abandon/adopt (and suspend/resume?)&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update image elements to support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to include options that allow an auto-scaled overcloud deployment&lt;br /&gt;
&lt;br /&gt;
== Node Management (Ironic) ==&lt;br /&gt;
&lt;br /&gt;
We would like to switch over to using Ironic in the near future, as there are a host of features that would depend upon it.&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Ironic graduation&lt;br /&gt;
:* CI jobs&lt;br /&gt;
:* Nova driver&lt;br /&gt;
:* Serial console&lt;br /&gt;
:* Migration path&lt;br /&gt;
:* User documentation&lt;br /&gt;
&lt;br /&gt;
* Autodiscovery of nodes&lt;br /&gt;
* Ceilometer&lt;br /&gt;
* Tagging&lt;br /&gt;
* scalability&lt;br /&gt;
&lt;br /&gt;
==== Nova ====&lt;br /&gt;
&lt;br /&gt;
* create a nova filter for exact matches to Ironic nodes (including all node metadata) (https://review.openstack.org/#/c/83728/)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* use exact match filter when deploying overcloud&lt;br /&gt;
&lt;br /&gt;
==== TripleO UI ====&lt;br /&gt;
&lt;br /&gt;
* added node tag values to flavor extra_specs&lt;br /&gt;
&lt;br /&gt;
== Metric Graphs ==&lt;br /&gt;
&lt;br /&gt;
Data visualization is a key part of maintaining a cloud.  We would like to start integrating Ceilometer usage into Tuskar.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Combine samples for different meters in a transformer to produce a single derived meter&lt;br /&gt;
* Rollup of course-grained statistics for UI queries&lt;br /&gt;
* Configurable data retention based on rollups&lt;br /&gt;
* Overarching &amp;quot;health&amp;quot; metric for nodes&lt;br /&gt;
* Ceilometer native auth for alarm notifications (and possibly metrics in future) (https://blueprints.launchpad.net/ceilometer/+spec/trust-alarm-notifier)&lt;br /&gt;
* Eliminate central agent SPoF&lt;br /&gt;
* SNMP batch mode, one bulk command per node per polling cycle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For additional data:&lt;br /&gt;
&lt;br /&gt;
* Acquire hardware-oriented metrics via IPMI (e.g., voltage, fan speeds, etc.)&lt;br /&gt;
* Keystone v3 usage would avoid IPMI credentials; allowing pollster-style interaction&lt;br /&gt;
* Look into consistent hashing; see if it can be reused in ceilometer -- though it requires stateful DB&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Add a periodic task to send hardware sensor data to ceilometer  (https://blueprints.launchpad.net/ironic/+spec/send-data-to-ceilometer)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* add appropriate Ceilometer agents to generated Heat templates&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* Add Ceilometer-based graphs and metric data&lt;br /&gt;
&lt;br /&gt;
== User Interfaces ==&lt;br /&gt;
&lt;br /&gt;
This is a general category intended to encapsulate work needed in the UI and CLI.&lt;br /&gt;
&lt;br /&gt;
==== Horizon ====&lt;br /&gt;
&lt;br /&gt;
* separate horizon from openstack-dashboard&lt;br /&gt;
* test the replacement of lesscpy with pyScss&lt;br /&gt;
* improve error handling so that messages are less generic&lt;br /&gt;
* additional work on the plugin architecture to support dynamic hardware-specific views&lt;br /&gt;
&lt;br /&gt;
==== Tuskar-CLI ====&lt;br /&gt;
&lt;br /&gt;
* create a tuskar-cli plugin for OpenStackClient&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* increase the modularity of views&lt;br /&gt;
* investigate usage of Heat UI components in Horizon (for example, parameter form building)&lt;br /&gt;
* create a mechanism for asynchronous communication&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47094</id>
		<title>TripleO/TuskarJunoPlanning</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47094"/>
				<updated>2014-03-31T16:12:53Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Nova */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This planning document is born from discussions from the TripleO mid-cycle Icehouse meetup in Sunnyvale ([[TripleO/TuskarJunoInitialDiscussion]], [https://etherpad.openstack.org/p/openstack-management-features OpenStack Management Features]).  The ideas iterated there were then individually fleshed out and detailed, with much input coming from conversations with other OpenStack projects.&lt;br /&gt;
&lt;br /&gt;
Our principal concerns duing the Juno cycle are:&lt;br /&gt;
&lt;br /&gt;
* integrating further with other OpenStack services, using their capabilities to enhance our TripleO management experience&lt;br /&gt;
* ensuring that Tuskar does not try to implement functionality that is better located in other projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document details our high-level goals for Juno.  It does so at multiple levels; for each we provide:&lt;br /&gt;
&lt;br /&gt;
* a description of the goal&lt;br /&gt;
* a list of project requirements and/or blueprints needed&lt;br /&gt;
&lt;br /&gt;
== Cloud Service Representation ==&lt;br /&gt;
&lt;br /&gt;
A cloud service represents a cloud function - provisioning service, storage service, message broker, database server, etc. A cloud service is fulfilled by a cloud service element; for example, a user can fulfill the message broker cloud service by either choosing the qpid-server element or the rabbitmq-server element.&lt;br /&gt;
&lt;br /&gt;
With the cloud service concept in play, overcloud roles are updated as follows: instead of being associated with images, they are associated with a list of cloud service elements.  This provides greater flexibility for the Tuskar user when designing the scalable components of a cloud. For example, instead of being limited to a Controller role, the user can separate out the network components of that role into a Network role and scale it individually.&lt;br /&gt;
&lt;br /&gt;
[[File:Tuskar-service-model.png|Tuskar Service Model]]&lt;br /&gt;
&lt;br /&gt;
For Juno, Tuskar will provide role defaults or suggestions corresponding to current default roles, as well as an &amp;quot;All-in-One&amp;quot; role.   Each default role will be automatically associated with a list of cloud service elements and a pre-created image.  Later iterations of Tuskar will allow for more user customization in this area.&lt;br /&gt;
&lt;br /&gt;
If possible, we would also like to support customized roles that specify their own elements.  This would require the development of additional TripleO features as described in the next section.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Diskimage builder resource (question raised wrt ability to spawn VM to host it in seed/undercloud), also OS::GlanceImageUploader resource (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* ensure existence of default images&lt;br /&gt;
* create default roles, each associated with a list of elements, an image, and a Heat template&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to accomodate cloud services&lt;br /&gt;
&lt;br /&gt;
== Overcloud Planning and Deployment ==&lt;br /&gt;
&lt;br /&gt;
In Icehouse, the planning stage of overcloud deployment is represented by data stored in Tuskar database tables.  For Juno, we would like to remove the database from Tuskar.  Instead, the planning stage of a deployment will be represented by the full Heat template that would be used to deploy it.  Since Heat does not intend to be a template store, this template will be stored in Swift instead.  When the overcloud is ready to be deployed, the Tuskar service will pull the template out of Swift.&lt;br /&gt;
&lt;br /&gt;
[[File:tuskar-arch-juno.png|Tuskar Architecture]]&lt;br /&gt;
&lt;br /&gt;
Once an overcloud is deployed, all Tuskar interactions with that overcloud should be done through Heat.  This includes queries about running Nova instances and relevant Ironic nodes.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Allow stacks to be updated without forcing the user to re-provide all parameters (https://bugs.launchpad.net/heat/+bug/1224828)&lt;br /&gt;
* Stack update, allow retry from failed states (https://blueprints.launchpad.net/heat/+spec/update-failure-recovery)&lt;br /&gt;
* Stack update, rolling updates (canary deployments etc) (https://blueprints.launchpad.net/heat/+spec/rolling-updates) (''may not be required by Tuskar'')&lt;br /&gt;
* Stack update, enable cancelling in-progress update (e.g to pause or rollback) (https://blueprints.launchpad.net/heat/+spec/cancel-update-stack)&lt;br /&gt;
* Possibly allow inline specification of provider resources, e.g have a resource which generates a heat template, then refer to it, e.g like type: {get_attr: [SomeResource, template]} (''may not be required by Tuskar'')&lt;br /&gt;
* nested resource templates (''may not be required for Juno'')&lt;br /&gt;
* Stack preview (preview what would happen via stack-create) (https://blueprints.launchpad.net/heat/+spec/preview-stack) (''may not be required for Juno'')&lt;br /&gt;
* Stack check (sync state of stack with the real state of underlying resources, e.g persist out-of-band failures in stack resource states) (https://blueprints.launchpad.net/heat/+spec/stack-check) (''may not be required for Juno'')&lt;br /&gt;
* Stack converge - &amp;quot;fixes&amp;quot; stack and returns to known state (https://blueprints.launchpad.net/heat/+spec/stack-convergence) (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update Heat templates in TripleO for: HOT, provider resources, software config&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* provide default templates for default roles (these will be wrapped in ProviderResources)&lt;br /&gt;
* construct an overcloud template that references the default roles through ProviderResources&lt;br /&gt;
* ensure constructed templates define the appropriate ResourceAttributes to be queried through the UI/CLI&lt;br /&gt;
* given a Heat template constructed in this way, parse it in such a way as to retrieve the role specification and Heat parameters&lt;br /&gt;
* rebuild Tuskar to save and retrieve Heat templates from Swift&lt;br /&gt;
* update CLI as necessary&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update stack queries to take advantage Heat ResourceAttributes (make sure information is gotten through Heat)&lt;br /&gt;
* update deployment workflow&lt;br /&gt;
&lt;br /&gt;
== Custom Roles ==&lt;br /&gt;
&lt;br /&gt;
Although default, predefined roles are the immediate goal, it would be nice to also allow users to define their own roles.  To do so, they would specify their own list of elements.  Tuskar would then use that information to call out to diskimage-builder to create a custom image matching the role; and it would create a custom Heat template for that role that the master overcloud template could then use.&lt;br /&gt;
&lt;br /&gt;
The remainder of the workflow is the same as with default roles.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* given an image element, return the list of Heat parameters that it needs&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* given a role specification, use diskimage-builder to construct a matching image (derived from the role's image elements)&lt;br /&gt;
* given a role specification, return the list of Heat parameters that it needs (derived from the role's image elements)&lt;br /&gt;
* given a role specification and its Heat parameters, construct a Heat template for that role that meets those specifications&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* create custom role workflow&lt;br /&gt;
&lt;br /&gt;
== High Availability ==&lt;br /&gt;
&lt;br /&gt;
One of TripleO's top priorities for Juno is to allow the deployment of a High-Availability (HA) overcloud.  We would like to extend Tuskar to ensure that it can be used to deploy a HA overcloud as well.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* Deploy HA Overcloud&lt;br /&gt;
:* glusterfs &lt;br /&gt;
:* pacemaker, corosync&lt;br /&gt;
:* neutron (?)&lt;br /&gt;
:* heat-engine A/A&lt;br /&gt;
:* qpid proton (assuming amqp 1.0 have merged into oslo.messaging and oslo.messaging have merged in each core project. If not, will use rabbitmq)&lt;br /&gt;
:* etc etc&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support HA&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* deployment workflow support for HA architecture&lt;br /&gt;
&lt;br /&gt;
== Auto-Scaling ==&lt;br /&gt;
&lt;br /&gt;
Having the option for an auto-scaling cloud deployment would be greatly appealing to many users.  Heat is actively working on auto-scaling support, as are other projects.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Inhibit autoscaling during stack abandon/adopt (quiesce and revitalize)&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* hooks to do cleanup on scale-down (e.g host evacuation etc) (https://blueprints.launchpad.net/heat/+spec/update-hooks)&lt;br /&gt;
* choose victim on scale-down, or specify strategy for choosing (e.g oldest first or newest first) (https://blueprints.launchpad.net/heat/+spec/autoscaling-parameters)&lt;br /&gt;
* support complex conditionals when choosing victim on scale-down (e.g get notification or poll metric via ceilometer related to occupancy or other application metrics); possibly handled by above, if we can get ceilometer to pass us appropriate data when signalling the scaling policy, TBC (''may not be required for Juno'')&lt;br /&gt;
* Method to inhibit autoscaling/alarms during abandon/adopt (and suspend/resume?)&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update image elements to support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to include options that allow an auto-scaled overcloud deployment&lt;br /&gt;
&lt;br /&gt;
== Node Management (Ironic) ==&lt;br /&gt;
&lt;br /&gt;
We would like to switch over to using Ironic in the near future, as there are a host of features that would depend upon it.&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Ironic graduation&lt;br /&gt;
:* CI jobs&lt;br /&gt;
:* Nova driver&lt;br /&gt;
:* Serial console&lt;br /&gt;
:* Migration path&lt;br /&gt;
:* User documentation&lt;br /&gt;
&lt;br /&gt;
* Autodiscovery of nodes&lt;br /&gt;
* Ceilometer&lt;br /&gt;
* Tagging&lt;br /&gt;
* scalability&lt;br /&gt;
&lt;br /&gt;
==== Nova ====&lt;br /&gt;
&lt;br /&gt;
* ensure that flavor metadata can include node tag values&lt;br /&gt;
* create a nova filter for exact matches to Ironic nodes (including all node metadata) (https://review.openstack.org/#/c/83728/)&lt;br /&gt;
&lt;br /&gt;
== Metric Graphs ==&lt;br /&gt;
&lt;br /&gt;
Data visualization is a key part of maintaining a cloud.  We would like to start integrating Ceilometer usage into Tuskar.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Combine samples for different meters in a transformer to produce a single derived meter&lt;br /&gt;
* Rollup of course-grained statistics for UI queries&lt;br /&gt;
* Configurable data retention based on rollups&lt;br /&gt;
* Overarching &amp;quot;health&amp;quot; metric for nodes&lt;br /&gt;
* Ceilometer native auth for alarm notifications (and possibly metrics in future) (https://blueprints.launchpad.net/ceilometer/+spec/trust-alarm-notifier)&lt;br /&gt;
* Eliminate central agent SPoF&lt;br /&gt;
* SNMP batch mode, one bulk command per node per polling cycle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For additional data:&lt;br /&gt;
&lt;br /&gt;
* Acquire hardware-oriented metrics via IPMI (e.g., voltage, fan speeds, etc.)&lt;br /&gt;
* Keystone v3 usage would avoid IPMI credentials; allowing pollster-style interaction&lt;br /&gt;
* Look into consistent hashing; see if it can be reused in ceilometer -- though it requires stateful DB&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Add a periodic task to send hardware sensor data to ceilometer  (https://blueprints.launchpad.net/ironic/+spec/send-data-to-ceilometer)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* add appropriate Ceilometer agents to generated Heat templates&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* Add Ceilometer-based graphs and metric data&lt;br /&gt;
&lt;br /&gt;
== User Interfaces ==&lt;br /&gt;
&lt;br /&gt;
This is a general category intended to encapsulate work needed in the UI and CLI.&lt;br /&gt;
&lt;br /&gt;
==== Horizon ====&lt;br /&gt;
&lt;br /&gt;
* separate horizon from openstack-dashboard&lt;br /&gt;
* test the replacement of lesscpy with pyScss&lt;br /&gt;
* improve error handling so that messages are less generic&lt;br /&gt;
* additional work on the plugin architecture to support dynamic hardware-specific views&lt;br /&gt;
&lt;br /&gt;
==== Tuskar-CLI ====&lt;br /&gt;
&lt;br /&gt;
* create a tuskar-cli plugin for OpenStackClient&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* increase the modularity of views&lt;br /&gt;
* investigate usage of Heat UI components in Horizon (for example, parameter form building)&lt;br /&gt;
* create a mechanism for asynchronous communication&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47093</id>
		<title>TripleO/TuskarJunoPlanning</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47093"/>
				<updated>2014-03-31T16:12:24Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Node Management (Ironic) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This planning document is born from discussions from the TripleO mid-cycle Icehouse meetup in Sunnyvale ([[TripleO/TuskarJunoInitialDiscussion]], [https://etherpad.openstack.org/p/openstack-management-features OpenStack Management Features]).  The ideas iterated there were then individually fleshed out and detailed, with much input coming from conversations with other OpenStack projects.&lt;br /&gt;
&lt;br /&gt;
Our principal concerns duing the Juno cycle are:&lt;br /&gt;
&lt;br /&gt;
* integrating further with other OpenStack services, using their capabilities to enhance our TripleO management experience&lt;br /&gt;
* ensuring that Tuskar does not try to implement functionality that is better located in other projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document details our high-level goals for Juno.  It does so at multiple levels; for each we provide:&lt;br /&gt;
&lt;br /&gt;
* a description of the goal&lt;br /&gt;
* a list of project requirements and/or blueprints needed&lt;br /&gt;
&lt;br /&gt;
== Cloud Service Representation ==&lt;br /&gt;
&lt;br /&gt;
A cloud service represents a cloud function - provisioning service, storage service, message broker, database server, etc. A cloud service is fulfilled by a cloud service element; for example, a user can fulfill the message broker cloud service by either choosing the qpid-server element or the rabbitmq-server element.&lt;br /&gt;
&lt;br /&gt;
With the cloud service concept in play, overcloud roles are updated as follows: instead of being associated with images, they are associated with a list of cloud service elements.  This provides greater flexibility for the Tuskar user when designing the scalable components of a cloud. For example, instead of being limited to a Controller role, the user can separate out the network components of that role into a Network role and scale it individually.&lt;br /&gt;
&lt;br /&gt;
[[File:Tuskar-service-model.png|Tuskar Service Model]]&lt;br /&gt;
&lt;br /&gt;
For Juno, Tuskar will provide role defaults or suggestions corresponding to current default roles, as well as an &amp;quot;All-in-One&amp;quot; role.   Each default role will be automatically associated with a list of cloud service elements and a pre-created image.  Later iterations of Tuskar will allow for more user customization in this area.&lt;br /&gt;
&lt;br /&gt;
If possible, we would also like to support customized roles that specify their own elements.  This would require the development of additional TripleO features as described in the next section.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Diskimage builder resource (question raised wrt ability to spawn VM to host it in seed/undercloud), also OS::GlanceImageUploader resource (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* ensure existence of default images&lt;br /&gt;
* create default roles, each associated with a list of elements, an image, and a Heat template&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to accomodate cloud services&lt;br /&gt;
&lt;br /&gt;
== Overcloud Planning and Deployment ==&lt;br /&gt;
&lt;br /&gt;
In Icehouse, the planning stage of overcloud deployment is represented by data stored in Tuskar database tables.  For Juno, we would like to remove the database from Tuskar.  Instead, the planning stage of a deployment will be represented by the full Heat template that would be used to deploy it.  Since Heat does not intend to be a template store, this template will be stored in Swift instead.  When the overcloud is ready to be deployed, the Tuskar service will pull the template out of Swift.&lt;br /&gt;
&lt;br /&gt;
[[File:tuskar-arch-juno.png|Tuskar Architecture]]&lt;br /&gt;
&lt;br /&gt;
Once an overcloud is deployed, all Tuskar interactions with that overcloud should be done through Heat.  This includes queries about running Nova instances and relevant Ironic nodes.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Allow stacks to be updated without forcing the user to re-provide all parameters (https://bugs.launchpad.net/heat/+bug/1224828)&lt;br /&gt;
* Stack update, allow retry from failed states (https://blueprints.launchpad.net/heat/+spec/update-failure-recovery)&lt;br /&gt;
* Stack update, rolling updates (canary deployments etc) (https://blueprints.launchpad.net/heat/+spec/rolling-updates) (''may not be required by Tuskar'')&lt;br /&gt;
* Stack update, enable cancelling in-progress update (e.g to pause or rollback) (https://blueprints.launchpad.net/heat/+spec/cancel-update-stack)&lt;br /&gt;
* Possibly allow inline specification of provider resources, e.g have a resource which generates a heat template, then refer to it, e.g like type: {get_attr: [SomeResource, template]} (''may not be required by Tuskar'')&lt;br /&gt;
* nested resource templates (''may not be required for Juno'')&lt;br /&gt;
* Stack preview (preview what would happen via stack-create) (https://blueprints.launchpad.net/heat/+spec/preview-stack) (''may not be required for Juno'')&lt;br /&gt;
* Stack check (sync state of stack with the real state of underlying resources, e.g persist out-of-band failures in stack resource states) (https://blueprints.launchpad.net/heat/+spec/stack-check) (''may not be required for Juno'')&lt;br /&gt;
* Stack converge - &amp;quot;fixes&amp;quot; stack and returns to known state (https://blueprints.launchpad.net/heat/+spec/stack-convergence) (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update Heat templates in TripleO for: HOT, provider resources, software config&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* provide default templates for default roles (these will be wrapped in ProviderResources)&lt;br /&gt;
* construct an overcloud template that references the default roles through ProviderResources&lt;br /&gt;
* ensure constructed templates define the appropriate ResourceAttributes to be queried through the UI/CLI&lt;br /&gt;
* given a Heat template constructed in this way, parse it in such a way as to retrieve the role specification and Heat parameters&lt;br /&gt;
* rebuild Tuskar to save and retrieve Heat templates from Swift&lt;br /&gt;
* update CLI as necessary&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update stack queries to take advantage Heat ResourceAttributes (make sure information is gotten through Heat)&lt;br /&gt;
* update deployment workflow&lt;br /&gt;
&lt;br /&gt;
== Custom Roles ==&lt;br /&gt;
&lt;br /&gt;
Although default, predefined roles are the immediate goal, it would be nice to also allow users to define their own roles.  To do so, they would specify their own list of elements.  Tuskar would then use that information to call out to diskimage-builder to create a custom image matching the role; and it would create a custom Heat template for that role that the master overcloud template could then use.&lt;br /&gt;
&lt;br /&gt;
The remainder of the workflow is the same as with default roles.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* given an image element, return the list of Heat parameters that it needs&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* given a role specification, use diskimage-builder to construct a matching image (derived from the role's image elements)&lt;br /&gt;
* given a role specification, return the list of Heat parameters that it needs (derived from the role's image elements)&lt;br /&gt;
* given a role specification and its Heat parameters, construct a Heat template for that role that meets those specifications&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* create custom role workflow&lt;br /&gt;
&lt;br /&gt;
== High Availability ==&lt;br /&gt;
&lt;br /&gt;
One of TripleO's top priorities for Juno is to allow the deployment of a High-Availability (HA) overcloud.  We would like to extend Tuskar to ensure that it can be used to deploy a HA overcloud as well.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* Deploy HA Overcloud&lt;br /&gt;
:* glusterfs &lt;br /&gt;
:* pacemaker, corosync&lt;br /&gt;
:* neutron (?)&lt;br /&gt;
:* heat-engine A/A&lt;br /&gt;
:* qpid proton (assuming amqp 1.0 have merged into oslo.messaging and oslo.messaging have merged in each core project. If not, will use rabbitmq)&lt;br /&gt;
:* etc etc&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support HA&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* deployment workflow support for HA architecture&lt;br /&gt;
&lt;br /&gt;
== Auto-Scaling ==&lt;br /&gt;
&lt;br /&gt;
Having the option for an auto-scaling cloud deployment would be greatly appealing to many users.  Heat is actively working on auto-scaling support, as are other projects.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Inhibit autoscaling during stack abandon/adopt (quiesce and revitalize)&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* hooks to do cleanup on scale-down (e.g host evacuation etc) (https://blueprints.launchpad.net/heat/+spec/update-hooks)&lt;br /&gt;
* choose victim on scale-down, or specify strategy for choosing (e.g oldest first or newest first) (https://blueprints.launchpad.net/heat/+spec/autoscaling-parameters)&lt;br /&gt;
* support complex conditionals when choosing victim on scale-down (e.g get notification or poll metric via ceilometer related to occupancy or other application metrics); possibly handled by above, if we can get ceilometer to pass us appropriate data when signalling the scaling policy, TBC (''may not be required for Juno'')&lt;br /&gt;
* Method to inhibit autoscaling/alarms during abandon/adopt (and suspend/resume?)&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update image elements to support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to include options that allow an auto-scaled overcloud deployment&lt;br /&gt;
&lt;br /&gt;
== Node Management (Ironic) ==&lt;br /&gt;
&lt;br /&gt;
We would like to switch over to using Ironic in the near future, as there are a host of features that would depend upon it.&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Ironic graduation&lt;br /&gt;
:* CI jobs&lt;br /&gt;
:* Nova driver&lt;br /&gt;
:* Serial console&lt;br /&gt;
:* Migration path&lt;br /&gt;
:* User documentation&lt;br /&gt;
&lt;br /&gt;
* Autodiscovery of nodes&lt;br /&gt;
* Ceilometer&lt;br /&gt;
* Tagging&lt;br /&gt;
* scalability&lt;br /&gt;
&lt;br /&gt;
==== Nova ====&lt;br /&gt;
&lt;br /&gt;
* ensure that flavor metadata can include node tag values&lt;br /&gt;
* create a nova filter for exact matches to Ironic nodes (including all node metadata)&lt;br /&gt;
&lt;br /&gt;
== Metric Graphs ==&lt;br /&gt;
&lt;br /&gt;
Data visualization is a key part of maintaining a cloud.  We would like to start integrating Ceilometer usage into Tuskar.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Combine samples for different meters in a transformer to produce a single derived meter&lt;br /&gt;
* Rollup of course-grained statistics for UI queries&lt;br /&gt;
* Configurable data retention based on rollups&lt;br /&gt;
* Overarching &amp;quot;health&amp;quot; metric for nodes&lt;br /&gt;
* Ceilometer native auth for alarm notifications (and possibly metrics in future) (https://blueprints.launchpad.net/ceilometer/+spec/trust-alarm-notifier)&lt;br /&gt;
* Eliminate central agent SPoF&lt;br /&gt;
* SNMP batch mode, one bulk command per node per polling cycle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For additional data:&lt;br /&gt;
&lt;br /&gt;
* Acquire hardware-oriented metrics via IPMI (e.g., voltage, fan speeds, etc.)&lt;br /&gt;
* Keystone v3 usage would avoid IPMI credentials; allowing pollster-style interaction&lt;br /&gt;
* Look into consistent hashing; see if it can be reused in ceilometer -- though it requires stateful DB&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Add a periodic task to send hardware sensor data to ceilometer  (https://blueprints.launchpad.net/ironic/+spec/send-data-to-ceilometer)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* add appropriate Ceilometer agents to generated Heat templates&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* Add Ceilometer-based graphs and metric data&lt;br /&gt;
&lt;br /&gt;
== User Interfaces ==&lt;br /&gt;
&lt;br /&gt;
This is a general category intended to encapsulate work needed in the UI and CLI.&lt;br /&gt;
&lt;br /&gt;
==== Horizon ====&lt;br /&gt;
&lt;br /&gt;
* separate horizon from openstack-dashboard&lt;br /&gt;
* test the replacement of lesscpy with pyScss&lt;br /&gt;
* improve error handling so that messages are less generic&lt;br /&gt;
* additional work on the plugin architecture to support dynamic hardware-specific views&lt;br /&gt;
&lt;br /&gt;
==== Tuskar-CLI ====&lt;br /&gt;
&lt;br /&gt;
* create a tuskar-cli plugin for OpenStackClient&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* increase the modularity of views&lt;br /&gt;
* investigate usage of Heat UI components in Horizon (for example, parameter form building)&lt;br /&gt;
* create a mechanism for asynchronous communication&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47091</id>
		<title>TripleO/TuskarJunoPlanning</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47091"/>
				<updated>2014-03-31T16:06:15Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: /* Metric Graphs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This planning document is born from discussions from the TripleO mid-cycle Icehouse meetup in Sunnyvale ([[TripleO/TuskarJunoInitialDiscussion]], [https://etherpad.openstack.org/p/openstack-management-features OpenStack Management Features]).  The ideas iterated there were then individually fleshed out and detailed, with much input coming from conversations with other OpenStack projects.&lt;br /&gt;
&lt;br /&gt;
Our principal concerns duing the Juno cycle are:&lt;br /&gt;
&lt;br /&gt;
* integrating further with other OpenStack services, using their capabilities to enhance our TripleO management experience&lt;br /&gt;
* ensuring that Tuskar does not try to implement functionality that is better located in other projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document details our high-level goals for Juno.  It does so at multiple levels; for each we provide:&lt;br /&gt;
&lt;br /&gt;
* a description of the goal&lt;br /&gt;
* a list of project requirements and/or blueprints needed&lt;br /&gt;
&lt;br /&gt;
== Cloud Service Representation ==&lt;br /&gt;
&lt;br /&gt;
A cloud service represents a cloud function - provisioning service, storage service, message broker, database server, etc. A cloud service is fulfilled by a cloud service element; for example, a user can fulfill the message broker cloud service by either choosing the qpid-server element or the rabbitmq-server element.&lt;br /&gt;
&lt;br /&gt;
With the cloud service concept in play, overcloud roles are updated as follows: instead of being associated with images, they are associated with a list of cloud service elements.  This provides greater flexibility for the Tuskar user when designing the scalable components of a cloud. For example, instead of being limited to a Controller role, the user can separate out the network components of that role into a Network role and scale it individually.&lt;br /&gt;
&lt;br /&gt;
[[File:Tuskar-service-model.png|Tuskar Service Model]]&lt;br /&gt;
&lt;br /&gt;
For Juno, Tuskar will provide role defaults or suggestions corresponding to current default roles, as well as an &amp;quot;All-in-One&amp;quot; role.   Each default role will be automatically associated with a list of cloud service elements and a pre-created image.  Later iterations of Tuskar will allow for more user customization in this area.&lt;br /&gt;
&lt;br /&gt;
If possible, we would also like to support customized roles that specify their own elements.  This would require the development of additional TripleO features as described in the next section.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Diskimage builder resource (question raised wrt ability to spawn VM to host it in seed/undercloud), also OS::GlanceImageUploader resource (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* ensure existence of default images&lt;br /&gt;
* create default roles, each associated with a list of elements, an image, and a Heat template&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to accomodate cloud services&lt;br /&gt;
&lt;br /&gt;
== Overcloud Planning and Deployment ==&lt;br /&gt;
&lt;br /&gt;
In Icehouse, the planning stage of overcloud deployment is represented by data stored in Tuskar database tables.  For Juno, we would like to remove the database from Tuskar.  Instead, the planning stage of a deployment will be represented by the full Heat template that would be used to deploy it.  Since Heat does not intend to be a template store, this template will be stored in Swift instead.  When the overcloud is ready to be deployed, the Tuskar service will pull the template out of Swift.&lt;br /&gt;
&lt;br /&gt;
[[File:tuskar-arch-juno.png|Tuskar Architecture]]&lt;br /&gt;
&lt;br /&gt;
Once an overcloud is deployed, all Tuskar interactions with that overcloud should be done through Heat.  This includes queries about running Nova instances and relevant Ironic nodes.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Allow stacks to be updated without forcing the user to re-provide all parameters (https://bugs.launchpad.net/heat/+bug/1224828)&lt;br /&gt;
* Stack update, allow retry from failed states (https://blueprints.launchpad.net/heat/+spec/update-failure-recovery)&lt;br /&gt;
* Stack update, rolling updates (canary deployments etc) (https://blueprints.launchpad.net/heat/+spec/rolling-updates) (''may not be required by Tuskar'')&lt;br /&gt;
* Stack update, enable cancelling in-progress update (e.g to pause or rollback) (https://blueprints.launchpad.net/heat/+spec/cancel-update-stack)&lt;br /&gt;
* Possibly allow inline specification of provider resources, e.g have a resource which generates a heat template, then refer to it, e.g like type: {get_attr: [SomeResource, template]} (''may not be required by Tuskar'')&lt;br /&gt;
* nested resource templates (''may not be required for Juno'')&lt;br /&gt;
* Stack preview (preview what would happen via stack-create) (https://blueprints.launchpad.net/heat/+spec/preview-stack) (''may not be required for Juno'')&lt;br /&gt;
* Stack check (sync state of stack with the real state of underlying resources, e.g persist out-of-band failures in stack resource states) (https://blueprints.launchpad.net/heat/+spec/stack-check) (''may not be required for Juno'')&lt;br /&gt;
* Stack converge - &amp;quot;fixes&amp;quot; stack and returns to known state (https://blueprints.launchpad.net/heat/+spec/stack-convergence) (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update Heat templates in TripleO for: HOT, provider resources, software config&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* provide default templates for default roles (these will be wrapped in ProviderResources)&lt;br /&gt;
* construct an overcloud template that references the default roles through ProviderResources&lt;br /&gt;
* ensure constructed templates define the appropriate ResourceAttributes to be queried through the UI/CLI&lt;br /&gt;
* given a Heat template constructed in this way, parse it in such a way as to retrieve the role specification and Heat parameters&lt;br /&gt;
* rebuild Tuskar to save and retrieve Heat templates from Swift&lt;br /&gt;
* update CLI as necessary&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update stack queries to take advantage Heat ResourceAttributes (make sure information is gotten through Heat)&lt;br /&gt;
* update deployment workflow&lt;br /&gt;
&lt;br /&gt;
== Custom Roles ==&lt;br /&gt;
&lt;br /&gt;
Although default, predefined roles are the immediate goal, it would be nice to also allow users to define their own roles.  To do so, they would specify their own list of elements.  Tuskar would then use that information to call out to diskimage-builder to create a custom image matching the role; and it would create a custom Heat template for that role that the master overcloud template could then use.&lt;br /&gt;
&lt;br /&gt;
The remainder of the workflow is the same as with default roles.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* given an image element, return the list of Heat parameters that it needs&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* given a role specification, use diskimage-builder to construct a matching image (derived from the role's image elements)&lt;br /&gt;
* given a role specification, return the list of Heat parameters that it needs (derived from the role's image elements)&lt;br /&gt;
* given a role specification and its Heat parameters, construct a Heat template for that role that meets those specifications&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* create custom role workflow&lt;br /&gt;
&lt;br /&gt;
== High Availability ==&lt;br /&gt;
&lt;br /&gt;
One of TripleO's top priorities for Juno is to allow the deployment of a High-Availability (HA) overcloud.  We would like to extend Tuskar to ensure that it can be used to deploy a HA overcloud as well.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* Deploy HA Overcloud&lt;br /&gt;
:* glusterfs &lt;br /&gt;
:* pacemaker, corosync&lt;br /&gt;
:* neutron (?)&lt;br /&gt;
:* heat-engine A/A&lt;br /&gt;
:* qpid proton (assuming amqp 1.0 have merged into oslo.messaging and oslo.messaging have merged in each core project. If not, will use rabbitmq)&lt;br /&gt;
:* etc etc&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support HA&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* deployment workflow support for HA architecture&lt;br /&gt;
&lt;br /&gt;
== Auto-Scaling ==&lt;br /&gt;
&lt;br /&gt;
Having the option for an auto-scaling cloud deployment would be greatly appealing to many users.  Heat is actively working on auto-scaling support, as are other projects.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Inhibit autoscaling during stack abandon/adopt (quiesce and revitalize)&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* hooks to do cleanup on scale-down (e.g host evacuation etc) (https://blueprints.launchpad.net/heat/+spec/update-hooks)&lt;br /&gt;
* choose victim on scale-down, or specify strategy for choosing (e.g oldest first or newest first) (https://blueprints.launchpad.net/heat/+spec/autoscaling-parameters)&lt;br /&gt;
* support complex conditionals when choosing victim on scale-down (e.g get notification or poll metric via ceilometer related to occupancy or other application metrics); possibly handled by above, if we can get ceilometer to pass us appropriate data when signalling the scaling policy, TBC (''may not be required for Juno'')&lt;br /&gt;
* Method to inhibit autoscaling/alarms during abandon/adopt (and suspend/resume?)&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update image elements to support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to include options that allow an auto-scaled overcloud deployment&lt;br /&gt;
&lt;br /&gt;
== Node Management (Ironic) ==&lt;br /&gt;
&lt;br /&gt;
We would like to switchover to using Ironic in the near future, as there are a host of features that would depend upon it.&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Ironic graduation&lt;br /&gt;
:* CI jobs&lt;br /&gt;
:* Nova driver&lt;br /&gt;
:* Serial console&lt;br /&gt;
:* Migration path&lt;br /&gt;
:* User documentation&lt;br /&gt;
&lt;br /&gt;
* Autodiscovery of nodes&lt;br /&gt;
* Ceilometer&lt;br /&gt;
* Tagging&lt;br /&gt;
* scalability&lt;br /&gt;
&lt;br /&gt;
==== Nova ====&lt;br /&gt;
&lt;br /&gt;
* ensure that flavor metadata can include node tag values&lt;br /&gt;
* create a nova filter for exact matches to Ironic nodes (including all node metadata)&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Ironic resource plugin  (''may not be required by us'')&lt;br /&gt;
&lt;br /&gt;
== Metric Graphs ==&lt;br /&gt;
&lt;br /&gt;
Data visualization is a key part of maintaining a cloud.  We would like to start integrating Ceilometer usage into Tuskar.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Combine samples for different meters in a transformer to produce a single derived meter&lt;br /&gt;
* Rollup of course-grained statistics for UI queries&lt;br /&gt;
* Configurable data retention based on rollups&lt;br /&gt;
* Overarching &amp;quot;health&amp;quot; metric for nodes&lt;br /&gt;
* Ceilometer native auth for alarm notifications (and possibly metrics in future) (https://blueprints.launchpad.net/ceilometer/+spec/trust-alarm-notifier)&lt;br /&gt;
* Eliminate central agent SPoF&lt;br /&gt;
* SNMP batch mode, one bulk command per node per polling cycle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For additional data:&lt;br /&gt;
&lt;br /&gt;
* Acquire hardware-oriented metrics via IPMI (e.g., voltage, fan speeds, etc.)&lt;br /&gt;
* Keystone v3 usage would avoid IPMI credentials; allowing pollster-style interaction&lt;br /&gt;
* Look into consistent hashing; see if it can be reused in ceilometer -- though it requires stateful DB&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Add a periodic task to send hardware sensor data to ceilometer  (https://blueprints.launchpad.net/ironic/+spec/send-data-to-ceilometer)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* add appropriate Ceilometer agents to generated Heat templates&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* Add Ceilometer-based graphs and metric data&lt;br /&gt;
&lt;br /&gt;
== User Interfaces ==&lt;br /&gt;
&lt;br /&gt;
This is a general category intended to encapsulate work needed in the UI and CLI.&lt;br /&gt;
&lt;br /&gt;
==== Horizon ====&lt;br /&gt;
&lt;br /&gt;
* separate horizon from openstack-dashboard&lt;br /&gt;
* test the replacement of lesscpy with pyScss&lt;br /&gt;
* improve error handling so that messages are less generic&lt;br /&gt;
* additional work on the plugin architecture to support dynamic hardware-specific views&lt;br /&gt;
&lt;br /&gt;
==== Tuskar-CLI ====&lt;br /&gt;
&lt;br /&gt;
* create a tuskar-cli plugin for OpenStackClient&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* increase the modularity of views&lt;br /&gt;
* investigate usage of Heat UI components in Horizon (for example, parameter form building)&lt;br /&gt;
* create a mechanism for asynchronous communication&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47090</id>
		<title>TripleO/TuskarJunoPlanning</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=TripleO/TuskarJunoPlanning&amp;diff=47090"/>
				<updated>2014-03-31T16:05:54Z</updated>
		
		<summary type="html">&lt;p&gt;Tzumainn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This planning document is born from discussions from the TripleO mid-cycle Icehouse meetup in Sunnyvale ([[TripleO/TuskarJunoInitialDiscussion]], [https://etherpad.openstack.org/p/openstack-management-features OpenStack Management Features]).  The ideas iterated there were then individually fleshed out and detailed, with much input coming from conversations with other OpenStack projects.&lt;br /&gt;
&lt;br /&gt;
Our principal concerns duing the Juno cycle are:&lt;br /&gt;
&lt;br /&gt;
* integrating further with other OpenStack services, using their capabilities to enhance our TripleO management experience&lt;br /&gt;
* ensuring that Tuskar does not try to implement functionality that is better located in other projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document details our high-level goals for Juno.  It does so at multiple levels; for each we provide:&lt;br /&gt;
&lt;br /&gt;
* a description of the goal&lt;br /&gt;
* a list of project requirements and/or blueprints needed&lt;br /&gt;
&lt;br /&gt;
== Cloud Service Representation ==&lt;br /&gt;
&lt;br /&gt;
A cloud service represents a cloud function - provisioning service, storage service, message broker, database server, etc. A cloud service is fulfilled by a cloud service element; for example, a user can fulfill the message broker cloud service by either choosing the qpid-server element or the rabbitmq-server element.&lt;br /&gt;
&lt;br /&gt;
With the cloud service concept in play, overcloud roles are updated as follows: instead of being associated with images, they are associated with a list of cloud service elements.  This provides greater flexibility for the Tuskar user when designing the scalable components of a cloud. For example, instead of being limited to a Controller role, the user can separate out the network components of that role into a Network role and scale it individually.&lt;br /&gt;
&lt;br /&gt;
[[File:Tuskar-service-model.png|Tuskar Service Model]]&lt;br /&gt;
&lt;br /&gt;
For Juno, Tuskar will provide role defaults or suggestions corresponding to current default roles, as well as an &amp;quot;All-in-One&amp;quot; role.   Each default role will be automatically associated with a list of cloud service elements and a pre-created image.  Later iterations of Tuskar will allow for more user customization in this area.&lt;br /&gt;
&lt;br /&gt;
If possible, we would also like to support customized roles that specify their own elements.  This would require the development of additional TripleO features as described in the next section.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Diskimage builder resource (question raised wrt ability to spawn VM to host it in seed/undercloud), also OS::GlanceImageUploader resource (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* ensure existence of default images&lt;br /&gt;
* create default roles, each associated with a list of elements, an image, and a Heat template&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to accomodate cloud services&lt;br /&gt;
&lt;br /&gt;
== Overcloud Planning and Deployment ==&lt;br /&gt;
&lt;br /&gt;
In Icehouse, the planning stage of overcloud deployment is represented by data stored in Tuskar database tables.  For Juno, we would like to remove the database from Tuskar.  Instead, the planning stage of a deployment will be represented by the full Heat template that would be used to deploy it.  Since Heat does not intend to be a template store, this template will be stored in Swift instead.  When the overcloud is ready to be deployed, the Tuskar service will pull the template out of Swift.&lt;br /&gt;
&lt;br /&gt;
[[File:tuskar-arch-juno.png|Tuskar Architecture]]&lt;br /&gt;
&lt;br /&gt;
Once an overcloud is deployed, all Tuskar interactions with that overcloud should be done through Heat.  This includes queries about running Nova instances and relevant Ironic nodes.&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Allow stacks to be updated without forcing the user to re-provide all parameters (https://bugs.launchpad.net/heat/+bug/1224828)&lt;br /&gt;
* Stack update, allow retry from failed states (https://blueprints.launchpad.net/heat/+spec/update-failure-recovery)&lt;br /&gt;
* Stack update, rolling updates (canary deployments etc) (https://blueprints.launchpad.net/heat/+spec/rolling-updates) (''may not be required by Tuskar'')&lt;br /&gt;
* Stack update, enable cancelling in-progress update (e.g to pause or rollback) (https://blueprints.launchpad.net/heat/+spec/cancel-update-stack)&lt;br /&gt;
* Possibly allow inline specification of provider resources, e.g have a resource which generates a heat template, then refer to it, e.g like type: {get_attr: [SomeResource, template]} (''may not be required by Tuskar'')&lt;br /&gt;
* nested resource templates (''may not be required for Juno'')&lt;br /&gt;
* Stack preview (preview what would happen via stack-create) (https://blueprints.launchpad.net/heat/+spec/preview-stack) (''may not be required for Juno'')&lt;br /&gt;
* Stack check (sync state of stack with the real state of underlying resources, e.g persist out-of-band failures in stack resource states) (https://blueprints.launchpad.net/heat/+spec/stack-check) (''may not be required for Juno'')&lt;br /&gt;
* Stack converge - &amp;quot;fixes&amp;quot; stack and returns to known state (https://blueprints.launchpad.net/heat/+spec/stack-convergence) (''may not be required for Juno'')&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update Heat templates in TripleO for: HOT, provider resources, software config&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* provide default templates for default roles (these will be wrapped in ProviderResources)&lt;br /&gt;
* construct an overcloud template that references the default roles through ProviderResources&lt;br /&gt;
* ensure constructed templates define the appropriate ResourceAttributes to be queried through the UI/CLI&lt;br /&gt;
* given a Heat template constructed in this way, parse it in such a way as to retrieve the role specification and Heat parameters&lt;br /&gt;
* rebuild Tuskar to save and retrieve Heat templates from Swift&lt;br /&gt;
* update CLI as necessary&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update stack queries to take advantage Heat ResourceAttributes (make sure information is gotten through Heat)&lt;br /&gt;
* update deployment workflow&lt;br /&gt;
&lt;br /&gt;
== Custom Roles ==&lt;br /&gt;
&lt;br /&gt;
Although default, predefined roles are the immediate goal, it would be nice to also allow users to define their own roles.  To do so, they would specify their own list of elements.  Tuskar would then use that information to call out to diskimage-builder to create a custom image matching the role; and it would create a custom Heat template for that role that the master overcloud template could then use.&lt;br /&gt;
&lt;br /&gt;
The remainder of the workflow is the same as with default roles.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* given an image element, return the list of Heat parameters that it needs&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* given a role specification, use diskimage-builder to construct a matching image (derived from the role's image elements)&lt;br /&gt;
* given a role specification, return the list of Heat parameters that it needs (derived from the role's image elements)&lt;br /&gt;
* given a role specification and its Heat parameters, construct a Heat template for that role that meets those specifications&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* create custom role workflow&lt;br /&gt;
&lt;br /&gt;
== High Availability ==&lt;br /&gt;
&lt;br /&gt;
One of TripleO's top priorities for Juno is to allow the deployment of a High-Availability (HA) overcloud.  We would like to extend Tuskar to ensure that it can be used to deploy a HA overcloud as well.&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* Deploy HA Overcloud&lt;br /&gt;
:* glusterfs &lt;br /&gt;
:* pacemaker, corosync&lt;br /&gt;
:* neutron (?)&lt;br /&gt;
:* heat-engine A/A&lt;br /&gt;
:* qpid proton (assuming amqp 1.0 have merged into oslo.messaging and oslo.messaging have merged in each core project. If not, will use rabbitmq)&lt;br /&gt;
:* etc etc&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support HA&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* deployment workflow support for HA architecture&lt;br /&gt;
&lt;br /&gt;
== Auto-Scaling ==&lt;br /&gt;
&lt;br /&gt;
Having the option for an auto-scaling cloud deployment would be greatly appealing to many users.  Heat is actively working on auto-scaling support, as are other projects.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Inhibit autoscaling during stack abandon/adopt (quiesce and revitalize)&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* hooks to do cleanup on scale-down (e.g host evacuation etc) (https://blueprints.launchpad.net/heat/+spec/update-hooks)&lt;br /&gt;
* choose victim on scale-down, or specify strategy for choosing (e.g oldest first or newest first) (https://blueprints.launchpad.net/heat/+spec/autoscaling-parameters)&lt;br /&gt;
* support complex conditionals when choosing victim on scale-down (e.g get notification or poll metric via ceilometer related to occupancy or other application metrics); possibly handled by above, if we can get ceilometer to pass us appropriate data when signalling the scaling policy, TBC (''may not be required for Juno'')&lt;br /&gt;
* Method to inhibit autoscaling/alarms during abandon/adopt (and suspend/resume?)&lt;br /&gt;
&lt;br /&gt;
==== TripleO ====&lt;br /&gt;
&lt;br /&gt;
* update image elements to support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* allow the generation of Heat templates that support auto-scaling&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* update deployment workflow to include options that allow an auto-scaled overcloud deployment&lt;br /&gt;
&lt;br /&gt;
== Node Management (Ironic) ==&lt;br /&gt;
&lt;br /&gt;
We would like to switchover to using Ironic in the near future, as there are a host of features that would depend upon it.&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Ironic graduation&lt;br /&gt;
:* CI jobs&lt;br /&gt;
:* Nova driver&lt;br /&gt;
:* Serial console&lt;br /&gt;
:* Migration path&lt;br /&gt;
:* User documentation&lt;br /&gt;
&lt;br /&gt;
* Autodiscovery of nodes&lt;br /&gt;
* Ceilometer&lt;br /&gt;
* Tagging&lt;br /&gt;
* scalability&lt;br /&gt;
&lt;br /&gt;
==== Nova ====&lt;br /&gt;
&lt;br /&gt;
* ensure that flavor metadata can include node tag values&lt;br /&gt;
* create a nova filter for exact matches to Ironic nodes (including all node metadata)&lt;br /&gt;
&lt;br /&gt;
==== Heat ====&lt;br /&gt;
&lt;br /&gt;
* Ironic resource plugin  (''may not be required by us'')&lt;br /&gt;
&lt;br /&gt;
== Metric Graphs ==&lt;br /&gt;
&lt;br /&gt;
Data visualization is a key part of maintaining a cloud.  We would like to start integrating Ceilometer usage into Tuskar.&lt;br /&gt;
&lt;br /&gt;
==== Ceilometer ====&lt;br /&gt;
&lt;br /&gt;
* Combine samples for different meters in a transformer to produce a single derived meter&lt;br /&gt;
* Rollup of course-grained statistics for UI queries&lt;br /&gt;
* Configurable data retention based on rollups&lt;br /&gt;
* Overarching &amp;quot;health&amp;quot; metric for nodes&lt;br /&gt;
* Ceilometer native auth for alarm notifications (and possibly metrics in future) (https://blueprints.launchpad.net/ceilometer/+spec/trust-alarm-notifier)&lt;br /&gt;
* Eliminate central agent SPoF&lt;br /&gt;
* SNMP batch mode, one bulk command per node per polling cycle&lt;br /&gt;
&lt;br /&gt;
For additional data:&lt;br /&gt;
&lt;br /&gt;
* Acquire hardware-oriented metrics via IPMI (e.g., voltage, fan speeds, etc.)&lt;br /&gt;
* Keystone v3 usage would avoid IPMI credentials; allowing pollster-style interaction&lt;br /&gt;
* Look into consistent hashing; see if it can be reused in ceilometer -- though it requires stateful DB&lt;br /&gt;
&lt;br /&gt;
==== Ironic ====&lt;br /&gt;
&lt;br /&gt;
* Add a periodic task to send hardware sensor data to ceilometer  (https://blueprints.launchpad.net/ironic/+spec/send-data-to-ceilometer)&lt;br /&gt;
&lt;br /&gt;
==== Tuskar ====&lt;br /&gt;
&lt;br /&gt;
* add appropriate Ceilometer agents to generated Heat templates&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* Add Ceilometer-based graphs and metric data&lt;br /&gt;
&lt;br /&gt;
== User Interfaces ==&lt;br /&gt;
&lt;br /&gt;
This is a general category intended to encapsulate work needed in the UI and CLI.&lt;br /&gt;
&lt;br /&gt;
==== Horizon ====&lt;br /&gt;
&lt;br /&gt;
* separate horizon from openstack-dashboard&lt;br /&gt;
* test the replacement of lesscpy with pyScss&lt;br /&gt;
* improve error handling so that messages are less generic&lt;br /&gt;
* additional work on the plugin architecture to support dynamic hardware-specific views&lt;br /&gt;
&lt;br /&gt;
==== Tuskar-CLI ====&lt;br /&gt;
&lt;br /&gt;
* create a tuskar-cli plugin for OpenStackClient&lt;br /&gt;
&lt;br /&gt;
==== TripleO-UI ====&lt;br /&gt;
&lt;br /&gt;
* increase the modularity of views&lt;br /&gt;
* investigate usage of Heat UI components in Horizon (for example, parameter form building)&lt;br /&gt;
* create a mechanism for asynchronous communication&lt;/div&gt;</summary>
		<author><name>Tzumainn</name></author>	</entry>

	</feed>