← Back to team overview

fuel-dev team mailing list archive

Re: feature request: Empty role

 

While there is now the separation of the two tasks and you can even start
either with piratically no validation, the results are far from successful
with out following some of the expected deployment workflow. In the case
below the deployment fails because the union of role membership creates the
default disk layouts which is passed to cobbler. This data is missing with
out defining at least one role

# fuel node --node 13
> id | status   | name             | cluster | mac               | roles |
> pending_roles | online
>
> ---|----------|------------------|---------|-------------------|-------|---------------|-------
> 13 | discover | Untitled (CE:64) | None    | 64:64:ee:e6:ce:64 | []    |
> []            | True



> # fuel node --node 13 --provision --env 3
> Started provisioning nodes [13].


[image: Inline image 1]


In addition to making it possible for either phase to work, creating a
"empty" role is necessary because:
1) allows a node to be listed as a member of a cluster (and therefor be
seen in a cluster)
2) allows a node to follow any life cycle of the cluster (provision,
deploy, delete, etc...)
3) allows the node to have the disk layout set from the UI
4) allows the node to have the net interface layout set from the UI
5) it helps make for easy overide of the astute.yaml data (such as "role:")
to make puppet do other things during the deployment


To me the problem here isn't the separation of the cobbler and puppet
phases. That is useful for the case where "I have pre-deployed nodes and I
want to install fuel openstack on top of that." or "I want to install an OS
on a discovered node and not deploy anything on it."

I'm thinking about the use cases here are "I need to provision and deploy
services along side fuel OpenStack, maybe I also need access to information
about the OpenStack deployment (astute.yaml) to deploy my thing" This use
case is also lead in fuel plugin arch and would create a necessary bridge
until its easy to add these components into the UI.






On Fri, Jan 17, 2014 at 9:46 AM, David Easter <deaster@xxxxxxxxxxxx> wrote:

> I agree with Mike that this requirement looks to be already implemented
> with the ability separate the provisioning between Cobbler and Puppet (i.e.
> Operating System and OpenStack components).  Is there something not
> accomplished through this existing capability?
>
> Thanks,
>
> -Dave Easter
>
> From: Gleb Galkin <ggalkin@xxxxxxxxxxxx>
> Organization: Mirantis Inc.
> Date: Thursday, January 16, 2014 at 11:28 PM
> To: <fuel-dev@xxxxxxxxxxxxxxxxxxx>
> Subject: Re: [Fuel-dev] feature request: Empty role
>
>  On 17.01.2014 04:05, Mike Scherbakov wrote:
>
> Folks, sorry, but I don't quite get your use cases. We can do separated
> provisioning from CLI (and REST API obviously), and you will get nodes
> without any OpenStack components deployed on them. All nodes will be
> provisioned, and you can proceed with manual deployment after this.
> Now, if you want to deploy some nodes, but not to touch some other
> provisioned, then we can't do it now. Deployment will be applied to all
> nodes, and you can't have node without a role on it now. Is it the case you
> guys talk about? Do I understand right the current implementation?
>
> My point was about provisioning OpenStack nodes and nodes without any
> OpenStack component simultaneously.
> For example I need standart Mirantis OpenStack + Standalone Swift (which
> can't be deployed by Fuel).
> Fuel can't deploy standalone Swift, but it can provision node for further
> manual deployment.
>
> Or I already have deployed cloud and I want to add bunch of nodes without
> OpenStack components.
> This use case is vital too.
>
>  Thanks,
> On Jan 16, 2014 9:03 PM, "Andrew Woodward" <xarses@xxxxxxxxx> wrote:
>
>> I've been thinking about this empty role for a while now, I think its
>> necessary for us to provide until we can handle granular roles better.
>>
>>
>>  On Thu, Jan 16, 2014 at 4:07 AM, Evgeniy L <eli@xxxxxxxxxxxx> wrote:
>>
>>> Afaik, it's not so hard to add new (empty) role right now.
>>>
>>>  1. you need to add new role in json file
>>> https://github.com/stackforge/fuel-web/blob/master/nailgun/nailgun/fixtures/openstack.json#L19-L39
>>>
>>>  (pay attention that we have different parameters for each OS)
>>>
>>>  2. create default volume partitioning for your role
>>>
>>> https://github.com/stackforge/fuel-web/blob/master/nailgun/nailgun/fixtures/openstack.json#L173-L189
>>>
>>>  3. and then upload fixture back to nailgun (or change them directly in
>>> DB)
>>>
>>>  4. add deployment order
>>> Multinode
>>> https://github.com/stackforge/fuel-web/blob/master/nailgun/nailgun/orchestrator/deployment_serializers.py#L122-L132
>>>  HA
>>> https://github.com/stackforge/fuel-web/blob/master/nailgun/nailgun/orchestrator/deployment_serializers.py#L269-L300
>>>
>>>  5. fix puppet manifests for you role (or just use separate
>>> provisioning to provision without deployment)
>>>
>>>  I'm not sure that UI will work correctly, but I think you will be able
>>> to deploy env via CLI.
>>>
>>>
>>> On Thu, Jan 16, 2014 at 3:29 PM, Vladimir Sharshov <
>>> vsharshov@xxxxxxxxxxxx> wrote:
>>>
>>>> If i correctly understand, we can not add nodes to cluster without
>>>> role. This fact block adding nodes with custom user configuration in
>>>> cluster, because when we start deploy, fake roles(without it nodes can not
>>>> be added to cluster) will be applied for this nodes.
>>>> In this case "Basic" or "Empty" role can help users to provision and
>>>> deploy custom nodes in Fuel cluster. Also can be useful ability to change
>>>> roles for nodes after provision but before deploy.
>>>>
>>>>
>>>>
>>>>
>>>> On Thu, Jan 16, 2014 at 2:39 PM, Dmitry Ilyin <dilyin@xxxxxxxxxxxx>wrote:
>>>>
>>>>> Yes, basic role would be a good idea. But now our concept of node
>>>>> roles if far from being flexible.
>>>>> We have a project to make deployment process granular and it will make
>>>>> custom roles possible.
>>>>>  Then there could be basic empty node and we would be able to add some
>>>>> roles to it
>>>>> or no roles if you would choose so.
>>>>>
>>>>>
>>>>>  2014/1/16 Gleb Galkin <ggalkin@xxxxxxxxxxxx>
>>>>>
>>>>>> Hello people,
>>>>>>
>>>>>> I think we need an "Empty Role" in FUEL.
>>>>>> In case that you need to provision OS and install mcollective without
>>>>>> syncing the manifests and running puppet agent.
>>>>>>
>>>>>> For example I have a project with Swift standalone. And I need to
>>>>>> provision OS to the bunch of nodes for further manual installation.
>>>>>> It looks convenient to have an empty role in this situation.
>>>>>> Please consider it.
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Best Regards,
>>>>>> Gleb Galkin
>>>>>> OpenStack Deployment Engineer
>>>>>>
>>>>>> Mirantis Inc.
>>>>>> www.mirantis.com
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Mailing list: https://launchpad.net/~fuel-dev
>>>>>> Post to     : fuel-dev@xxxxxxxxxxxxxxxxxxx
>>>>>> Unsubscribe : https://launchpad.net/~fuel-dev
>>>>>> More help   : https://help.launchpad.net/ListHelp
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Mailing list: https://launchpad.net/~fuel-dev
>>>>> Post to     : fuel-dev@xxxxxxxxxxxxxxxxxxx
>>>>> Unsubscribe : https://launchpad.net/~fuel-dev
>>>>> More help   : https://help.launchpad.net/ListHelp
>>>>>
>>>>>
>>>>
>>>> --
>>>> Mailing list: https://launchpad.net/~fuel-dev
>>>> Post to     : fuel-dev@xxxxxxxxxxxxxxxxxxx
>>>> Unsubscribe : https://launchpad.net/~fuel-dev
>>>> More help   : https://help.launchpad.net/ListHelp
>>>>
>>>>
>>>
>>> --
>>> Mailing list: https://launchpad.net/~fuel-dev
>>> Post to     : fuel-dev@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~fuel-dev
>>> More help   : https://help.launchpad.net/ListHelp
>>>
>>>
>>
>>
>>  --
>> If google has done it, Google did it right!
>>
>> --
>> Mailing list: https://launchpad.net/~fuel-dev
>> Post to     : fuel-dev@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~fuel-dev
>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>
>
>
> --
> Best Regards,
> Gleb Galkin
> OpenStack Deployment Engineer
>
> Mirantis Inc. www.mirantis.com
>
>  -- Mailing list: https://launchpad.net/~fuel-dev Post to :
> fuel-dev@xxxxxxxxxxxxxxxxxxx Unsubscribe : https://launchpad.net/~fuel-devMore help :
> https://help.launchpad.net/ListHelp
>
> --
> Mailing list: https://launchpad.net/~fuel-dev
> Post to     : fuel-dev@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~fuel-dev
> More help   : https://help.launchpad.net/ListHelp
>
>


-- 
If google has done it, Google did it right!

PNG image


References