<div dir="ltr">Hi all,<div>I am designing a "Dynamic Resource Allocation" for my company lab resources. The focal point of this solution should be OpenStack.</div><div><br></div><div><b>Background:</b></div><div>
The testing and dev environments are built out of multiple nodes. Servers, clients. Some could be virtual but must support also bare-metal.</div><div>The goal is to manage the resource pool (both virtual and physical) dynamically. Let the automated test request for specific environment by posting the environment details and release it back to pool at the end of the test.</div>
<div><br></div><div><b>Example:</b></div><div><br></div><div><b>Request:</b></div><div>client:</div><div>    count: 2</div><div>    type: virtual</div><div>    os: fedora 20</div><div>    memory: 2GB</div><div>    cpu: 4</div>
<div>    disk: >200G</div><div>    packages: ['puppet', 'fio', 'python-2.7']</div><div>client:</div><div><div>    count: 4</div><div>    type: physical</div><div>    os: centos-6.5</div><div>    memory: 2GB</div>
<div>    cpu: 4</div><div>    disk: >100G flash</div><div>    packages: ['puppet', 'fio', 'python-2.7']</div></div><div>server:</div><div>    count: 2</div><div>    type: physical</div><div>    os: centos-6.5</div>
<div>    build: 'b10'</div><div><br></div><div><b>Response:</b></div><div>clients:</div><div>    <a href="http://client1.domain.com">client1.domain.com</a>:</div><div>        address: 1.1.1.1</div><div>        user: root</div>
<div>        password: 123456</div><div>        os: fedora-20</div><div><div>    <a href="http://client2.domain.com">client2.domain.com</a>:</div><div>        address: 2.2.2.2</div><div>        user: root</div><div>        password: 123456</div>
</div><div>        os: fedora-20</div><div><div>    <a href="http://client3.domain.com">client3.domain.com</a>:</div><div>        address: 3.3.3.3</div><div>        user: root</div><div>        password: 123456</div></div>
<div>        os: centos-6.5</div><div>...</div><div>servers:</div><div><div>    <a href="http://server1.domain.com">server1.domain.com</a>:</div><div>        address: 10.10.10.10</div><div>        user: root</div><div>        password: 123456</div>
</div><div><div>    <a href="http://server2.domain.com">server2.domain.com</a>:</div><div>        address: 1.1.1.1</div><div>        user: root</div><div>        password: 123456</div></div><div><br></div><div><div><br></div>
<div><br></div><div><br></div><div><b>I could think of two solutions:</b></div></div><div><div>1. develop my own layer and use OpenStack just for the provisioning layer using the API and Foreman for bare-metal, puppet interface, lab services configuration (dns, dhcp, pxe etc') and searching engine via facts across entire resources (virtual and physical).</div>
<div>2. develop an OpenStack component that integrate with keystone, nova, horizon and implement my own business layer.</div></div><div><br></div><div><br></div><div><b>My questions:</b></div><div>1. Is there any way of actually implement my second solution? any documentation for writing new OpenStack component?</div>
<div>2. I think that my scenario is common and this solution could be helping many other companies. Is there any OpenStack project that solve it?</div><div>3. How can i offer it to OpenStack as a new component?</div><div>
<br></div><div>I would be thankful for any help and comments</div><div><br></div><div>Thanks </div><div><br></div><div><br></div><div><br></div><div><br clear="all"><div><br></div>-- <br><div dir="ltr"><b><font face="'comic sans ms', sans-serif">Avi Tal</font></b></div>

</div></div>