<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Nov 8, 2017 at 11:09 AM, Saravanan KR <span dir="ltr"><<a href="mailto:skramaja@redhat.com" target="_blank">skramaja@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thanks Steven for the update.<br>
<br>
Current CLI flow:<br>
----------------------<br>
* User need to add -p parameter for the overcloud deploy command with<br>
workflows to be invoked [1]<br>
* Plan will update updated to the swift container<br>
* Derived parameters workflow is initiated<br>
    - For each role<br>
        * Get the introspection data of first node assigned to the role<br>
        * Find the list features based on the services or parameters<br>
        * If dpdk present, run dpdk formulas workflow<br>
        * if sriov is present, run sriov formulas workfow (under development)<br>
        * if sriov or dpdk is present, run host formulas workflow<br>
        * if hci present, run hci formulas workflow<br>
<br>
Here the order of the formulas workflow invocation is important. For<br>
example,  in Compute-DPDK-HCI role, HCI formulas should exclude the<br>
CPUs allocated for DPDK PMD threads, while calculating cpu allocation<br>
ratio.<br>
<br>
I am trying to understand the proposed changes. Is it for assisting UI<br>
only or changing the existing CLI flow too? If the idea is to invoke<br>
the individual formulas workflow, it will not be possible with<br>
existing implementation, need to be re-worked. We need to introduce<br>
order for formulas workflow and direct fetching and merging of derived<br>
parameters in plan.<br></blockquote><div><br></div><div>So there are several problems we're trying to solve with this proposal. In general is to provide feature based workflows which will configure these features, as well as provide means to get current configuration of these features and provide sensible information about the input for these workflows.</div><div><br></div><div>I think one of the main problem of current implementation is that user is not able to get any information about input required to provide to run derivation workflows. That information is purely documentation based and also involves tweaking deployment-plan which I am convinced is not a good way to provide the input.</div><div><br></div><div>So what we're proposing is to bring up a mechanism of mapping the derivation workflows to services (roles/environments) so as Steven described we're able to identify which workflows are possible to run and provide extensive input definition so user can see what he is configuring and why (input type, description, label).</div><div><br></div><div>This also means that there is several parameter derivation workflows rather than just one and the input for the workflow is the actual input passed to mistral (no plan-environment.yaml changes involved). Using this whole approach means that for each such identified feature, we can provide - Input details, general feature description (mistral workflow description) and current configuration (by reaching to mistral workflow execution if that was run before)</div><div><br></div><div>If as you're saying certain workflows depend on each other those should probably be in one workflow. On the other hand, I think it is not goo approach to try to put all the parameter derivation workflows into single workflow.</div><div><br></div><div><br></div><div>-- Jirka</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
As per earlier discussion jtomasek, to invoke derived parameters<br>
workflow (existing) for a plan, UI requires following information:<br>
* Whether derived parameters should be invoked for this deployment<br>
(based on roles and enabled services)<br>
* If yes, list of parameters, its types, and its default values (and<br>
choices if present), are required<br>
<br>
Did I miss anything?<br>
<br>
Regards,<br>
Saravanan KR<br>
<br>
[1] <a href="https://github.com/openstack/tripleo-heat-templates/blob/master/plan-samples/plan-environment-derived-params.yaml" rel="noreferrer" target="_blank">https://github.com/openstack/<wbr>tripleo-heat-templates/blob/<wbr>master/plan-samples/plan-<wbr>environment-derived-params.<wbr>yaml</a><br>
<div class="HOEnZb"><div class="h5"><br>
On Wed, Nov 8, 2017 at 2:39 PM, Bogdan Dobrelya <<a href="mailto:bdobreli@redhat.com">bdobreli@redhat.com</a>> wrote:<br>
> On 11/8/17 6:09 AM, Steven Hardy wrote:<br>
>><br>
>> Hi all,<br>
>><br>
>> Today I had a productive hallway discussion with jtomasek and<br>
>> stevebaker re $subject, so I wanted to elaborate here for the benefit<br>
>> of those folks not present.  Hopefully we can get feedback on the<br>
>> ideas and see if it makes sense to continue and work on some patches:<br>
>><br>
>> The problem under discussion is how do we run pre-deployment workflows<br>
>> (such as those integrated recently to calculate derived parameters,<br>
>> and in future perhaps also those which download container images etc),<br>
>> and in particular how do we make these discoverable via the UI<br>
>> (including any input parameters).<br>
>><br>
>> The idea we came up with has two parts:<br>
>><br>
>> 1. Add a new optional section to roles_data for services that require<br>
>> pre-deploy workflows<br>
>><br>
>> E.g something like this:<br>
>><br>
>>       pre_deploy_workflows:<br>
>>          - derive_params:<br>
>>                workflow_name:<br>
>> tripleo.derive_params_<wbr>formulas.v1.dpdk_derive_params<br>
>>                inputs:<br>
>>                    ...<br>
>><br>
>> This would allow us to associate a specific mistral workflow with a<br>
>> given service template, and also work around the fact that currently<br>
>> mistral inputs don't have any schema (only key/value input) as we<br>
>> could encode the required type and any constraints in the inputs block<br>
>> (clearly this could be removed in future should typed parameters<br>
>> become available in mistral).<br>
>><br>
>> 2. Add a new workflow that calculates the enabled services and returns<br>
>> all pre_deploy_workflows<br>
>><br>
>> This would take all enabled environments, then use heat to validate<br>
>> the configuration and return the merged resource registry (which will<br>
>> require <a href="https://review.openstack.org/#/c/509760/" rel="noreferrer" target="_blank">https://review.openstack.org/#<wbr>/c/509760/</a>), then we would<br>
>> iterate over all enabled services in the registry and extract a given<br>
>> roles_data key (e.g pre_deploy_workflows)<br>
>><br>
>> The result of the workflow would be a list of all pre_deploy_workflows<br>
>> for all enabled services, which the UI could then use to run the<br>
>> workflows as part of the pre-deploy process.<br>
>><br>
>> If this makes sense I can go ahead and push some patches so we can<br>
>> iterate on the implementation?<br>
><br>
><br>
> I apologise for a generic/non-techy comment: it would be nice to keep<br>
> required workflows near the services' definition templates, to keep it as<br>
> much self-contained as possible. IIUC, that's covered by #1.<br>
> For future steps, I'd like to see all of the "bulk processing" to sit in<br>
> those templates as well.<br>
><br>
>><br>
>> Thanks,<br>
>><br>
>> Steve<br>
>><br>
>> ______________________________<wbr>______________________________<wbr>______________<br>
>> OpenStack Development Mailing List (not for usage questions)<br>
>> Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.<wbr>openstack.org?subject:<wbr>unsubscribe</a><br>
>> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/<wbr>cgi-bin/mailman/listinfo/<wbr>openstack-dev</a><br>
>><br>
><br>
><br>
> --<br>
> Best regards,<br>
> Bogdan Dobrelya,<br>
> Irc #bogdando<br>
><br>
><br>
> ______________________________<wbr>______________________________<wbr>______________<br>
> OpenStack Development Mailing List (not for usage questions)<br>
> Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.<wbr>openstack.org?subject:<wbr>unsubscribe</a><br>
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/<wbr>cgi-bin/mailman/listinfo/<wbr>openstack-dev</a><br>
<br>
______________________________<wbr>______________________________<wbr>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.<wbr>openstack.org?subject:<wbr>unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/<wbr>cgi-bin/mailman/listinfo/<wbr>openstack-dev</a><br>
</div></div></blockquote></div><br></div></div>