[openstack-dev] [higgins] Docker-compose support
Denis Makogon
lildee1991 at gmail.com
Wed Jun 1 05:57:12 UTC 2016
2016-05-31 22:56 GMT+03:00 Joshua Harlow <harlowja at fastmail.com>:
> Denis Makogon wrote:
>
>> Hello.
>>
>> It is hard to tell if given API will be final version, but i tried to
>> make it similar to CLI and its capabilities. So, why not?
>>
>> 2016-05-31 22:02 GMT+03:00 Joshua Harlow <harlowja at fastmail.com
>> <mailto:harlowja at fastmail.com>>:
>>
>> Cool good to know,
>>
>> I see
>>
>> https://github.com/docker/compose/pull/3535/files#diff-1d1516ea1e61cd8b44d000c578bbd0beR66
>>
>> Would that be the primary API? Hard to tell what is the API there
>> actually, haha. Is it the run() method?
>>
>> I was thinking more along the line that higgins could be a
>> 'interpreter' of the same docker-compose format (or similar format);
>> if the library that is being created takes a docker-compose file and
>> turns it into a 'intermediate' version/format that'd be cool. The
>> compiled version would then be 'executable' (and introspectable to)
>> by say higgins (which could say traverse over that intermediate
>> version and activate its own code to turn the intermediate versions
>> primitives into reality), or a docker-compose service could or ...
>>
>>
>> What abou TOSCA? From my own perspective compose format is too limited,
>> so it is really necessary to consider regarding use of TOSCA in Higgins
>> workflows.
>>
>
> Does anyone in the wider world actually use TOSCA anywhere? Has it gained
> any adoption? I've watched the TOSCA stuff, but have really been unable to
> tell what kind of an impact TOSCA actually has had (everyone seems to make
> there own format, and not care that much about TOSCA in general, for better
> or worse).
For cursory glance, in OpenStack only Tacker and Murano are supporting
TOSCA. From outside the world i know that Cloudify/Aria use using TOSCA.
>
>
>
>>
>> Libcompose also seems to be targeted at a higher level library, from
>> at least reading the summary, neither seem to be taking a compose
>> yaml file, turning it into a intermediate format, exposing that
>> intermediate format to others for introspection/execution (and also
>> likely providing a default execution engine that understands that
>> format) but instead both just provide an equivalent of:
>>
>>
>> That's why i've started this thread, as community we have use cases for
>> Higgins itself and for compose but most of them are not formalized or
>> even written. Isn't this a good time to define them?
>>
>> project = make_project(yaml_file)
>> project.run/up()
>>
>> Which probably isn't the best API for something like a web-service
>> that uses that same library to have. IMHO having a long running
>> run() method
>>
>>
>> Well, compose allows to run detached executions for most of its API
>> calls. By use of events, we can track service/containers statuses (but
>> it is not really trivial).
>>
>
> That's not exactly the same as what I was thinking,
>
> Let's take a compose yaml file,
> https://github.com/DataDog/docker-compose-example/blob/master/docker-compose.yml
>
> At some point this is turned into a set of actions to run (a workflow
> perhaps) to turn that yaml file into an actual running solution, now likely
> the creators of libcompose or the python version embedded those actions
> directly into the interpretation and made them inseparable but that doesn't
> need to be the case.
>
>
Well, if to follow that logic in Higgins we don't need compose at all, but
we need DSL translator with ability to embed custom actions over
services/containers descriptions.
>
>> exposed, without the necessary state tracking, ability to
>> interrupt/pause/resume that run() method and such is not going to
>> end well for users of that lib (especially a web-service that needs
>> to periodically be `service webservice stop` or restart, or ...).
>>
>>
>> Yes, agreed. But docker or swarm by itself doesn't provide such API
>> (can't tell the same for K8t).
>>
>
> Meh, that's not such a good excuse to try to do it (or at least to think
> about it). If we only did what was already done, we probably wouldn't be
> doing things over email or driving cars or... :-P
>
>
>> Denis Makogon wrote:
>>
>> Hello Stackers.
>>
>>
>> As part of discussions around what Higgins is and what its
>> mission there
>> are were couple of you who mentioned docker-compose [1] and
>> necessity of
>> doing the same thing for Higgins but from scratch.
>>
>> I don't think that going that direction is the best way to spend
>> development cycles. So, that's why i ask you to take a look at
>> recent
>> patchset submitted to docker-compose upstream [2] that makes
>> this tool
>> (initially designed as CLI) to become a library with Python
>> API. The
>> whole idea is to make docker-compose look similar to libcompose
>> [3]
>> (written on Go).
>>
>> If we need to utilize docker-compose features in Higgins i'd
>> recommend
>> to work on this with Docker community and convince them to land
>> that
>> patch to upstream.
>>
>> If you have any questions, please let me know.
>>
>> [1] https://docs.docker.com/compose/
>> [2] https://github.com/docker/compose/pull/3535
>> [3] https://github.com/docker/libcompose
>>
>>
>> Kind regards,
>> Denys Makogon
>>
>>
>> __________________________________________________________________________
>> OpenStack Development Mailing List (not for usage questions)
>> Unsubscribe:
>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>> <
>> http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>
>>
>>
>> __________________________________________________________________________
>> OpenStack Development Mailing List (not for usage questions)
>> Unsubscribe:
>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>> <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe
>> >
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>
>>
>> __________________________________________________________________________
>> OpenStack Development Mailing List (not for usage questions)
>> Unsubscribe:
>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20160601/7da30122/attachment.html>
More information about the OpenStack-dev
mailing list