tosca-comment

 View Only
  • 1.  RE: [tosca-comment] TOSCA for Kubernetes Resources

    Posted 04-14-2022 03:11
    Hi Matej,

    As Tal already mentioned, Ubicity has a tool that converts OpenAPI/Swagger files to TOSCA profiles. It creates TOSCA nodes types from the various resource schemas specified in the OpenAPI files (adding capabilities and requirements involves some manual post-processing).

    If this is of interest to you, we would consider open-sourcing this. Please let me know.

    Thanks,

    Chris


    From: tosca-comment@lists.oasis-open.org <tosca-comment@lists.oasis-open.org> On Behalf Of Tal Liron
    Sent: Friday, April 8, 2022 5:54 AM
    To: Matej Feder <matej.feder@dnation.cloud>
    Cc: tosca-comment <tosca-comment@lists.oasis-open.org>; patrick.thiem <patrick.thiem@cloudandheat.com>; Roman Hros <roman.hros@dnation.cloud>
    Subject: Re: [tosca-comment] TOSCA for Kubernetes Resources

    Hi Matej,

    It doesn't seem likely that OASIS TOSCA would arbitrate this matter. The community repository<https://github.com/oasis-open/tosca-community-contributions/> is open to profile contributions, but none of these are OASIS standards. Indeed several Kubernetes profiles may be contributed. After a somewhat negative experience with managing the Simple Profile, the TOSCA TC has decided that profile development should best be left to the community. That said, nothing is stopping the community from embracing a "de facto standard" if a certain profile or combination becomes widely used and supported.

    Compare this to the experience with programming languages. Though all programming languages come with a basic standard library, multiple open source solutions may exist for the same problem, each with its own subjective advantages. An obvious example is logging: I don't know of a programming language with just one logging API, even if the standard library includes logging.

    We obviously care about portability but not at all costs. Each orchestrator that supports TOSCA is its own product with its own design paradigms and may have different assumptions and requirements for modeling. For example, Turandot works entirely differently from Cloudify and it's hard to imagine a Kubernetes profile that could be trivially consumed by both.

    That said, in some cases it shouldn't be necessary to reinvent the wheel. The Kubernetes API is published and well-annotated, so it's deterministic to convert it to TOSCA. With Turandot I've included a profile generator<https://github.com/tliron/turandot/tree/main/turandot-profile-generator> (work in progress) that does exactly that. I know that Chris has something similar in Ubicity.

    On Fri, Apr 8, 2022 at 7:29 AM Matej Feder <matej.feder@dnation.cloud<mailto:matej.feder@dnation.cloud>> wrote:
    Dear TOSCA community,

    With this email, I would like to ask you what is the state-of-the-art for TOSCA-based application deployment to the Kubernetes environment.

    In other words, I would like to define the TOSCA template for the Kubernetes resources ( Kubernetes Deployments<https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#creating-a-deployment>, Kubernetes Configmaps, <https://kubernetes.io/docs/concepts/configuration/configmap/#configmaps-and-pods> and so on) based on publicly available TOSCA types.

    I went through a couple of opensource projects like:
    - Turandot<https://github.com/tliron/turandot>
    - Cloudify<https://github.com/cloudify-cosmo/cloudify-kubernetes-plugin>
    - MiCADO<https://github.com/micado-scale/tosca>
    - Indigo<https://github.com/indigo-dc/orchestrator>

    and, it seems that each project defined its own TOSCA Types for Kubernetes resources.

    My question is:

    Is there any standardized way how to describe Kubernetes resources by TOSCA?

    Thanks in advance for your help.

    Regards,

    Matej Feder

    DevOps Engineer at dNation<https://dnation.cloud/>




  • 2.  Re: [tosca-comment] TOSCA for Kubernetes Resources

    Posted 04-14-2022 10:01
    Hello Chris,

    If this is of interest to you, we would consider open-sourcing this. Please
    > let me know.
    >

    Sure, Would be great to have such a tool that allows us to generate k8s
    profiles based on k8s OpenAPI specifications.

    I appreciate your help.

    Best regards

    Matej

    On Thu, Apr 14, 2022 at 5:11 AM Chris Lauwers <lauwers@ubicity.com> wrote:

    > Hi Matej,
    >
    >
    >
    > As Tal already mentioned, Ubicity has a tool that converts OpenAPI/Swagger
    > files to TOSCA profiles. It creates TOSCA nodes types from the various
    > resource schemas specified in the OpenAPI files (adding capabilities and
    > requirements involves some manual post-processing).
    >
    >
    >
    > If this is of interest to you, we would consider open-sourcing this.
    > Please let me know.
    >
    >
    >
    > Thanks,
    >
    >
    >
    > Chris
    >
    >
    >
    >
    >
    > *From:* tosca-comment@lists.oasis-open.org <
    > tosca-comment@lists.oasis-open.org> *On Behalf Of *Tal Liron
    > *Sent:* Friday, April 8, 2022 5:54 AM
    > *To:* Matej Feder <matej.feder@dnation.cloud>
    > *Cc:* tosca-comment <tosca-comment@lists.oasis-open.org>; patrick.thiem <
    > patrick.thiem@cloudandheat.com>; Roman Hros <roman.hros@dnation.cloud>
    > *Subject:* Re: [tosca-comment] TOSCA for Kubernetes Resources
    >
    >
    >
    > Hi Matej,
    >
    >
    >
    > It doesn't seem likely that OASIS TOSCA would arbitrate this matter. The community
    > repository <https://github.com/oasis-open/tosca-community-contributions/>
    > is open to profile contributions, but none of these are OASIS standards.
    > Indeed several Kubernetes profiles may be contributed. After a somewhat
    > negative experience with managing the Simple Profile, the TOSCA TC has
    > decided that profile development should best be left to the community. That
    > said, nothing is stopping the community from embracing a "de facto
    > standard" if a certain profile or combination becomes widely used and
    > supported.
    >
    >
    >
    > Compare this to the experience with programming languages. Though all
    > programming languages come with a basic standard library, multiple open
    > source solutions may exist for the same problem, each with its own
    > subjective advantages. An obvious example is logging: I don't know of a
    > programming language with just one logging API, even if the standard
    > library includes logging.
    >
    >
    >
    > We obviously care about portability but not at all costs. Each
    > orchestrator that supports TOSCA is its own product with its own design
    > paradigms and may have different assumptions and requirements for modeling.
    > For example, Turandot works entirely differently from Cloudify and it's
    > hard to imagine a Kubernetes profile that could be trivially consumed by
    > both.
    >
    >
    >
    > That said, in some cases it shouldn't be necessary to reinvent the wheel.
    > The Kubernetes API is published and well-annotated, so it's deterministic
    > to convert it to TOSCA. With Turandot I've included a profile generator
    > <https://github.com/tliron/turandot/tree/main/turandot-profile-generator>
    > (work in progress) that does exactly that. I know that Chris has something
    > similar in Ubicity.
    >
    >
    >
    > On Fri, Apr 8, 2022 at 7:29 AM Matej Feder <matej.feder@dnation.cloud>
    > wrote:
    >
    > Dear TOSCA community,
    >
    >
    >
    > With this email, I would like to ask you what is the state-of-the-art for
    > TOSCA-based application deployment to the Kubernetes environment.
    >
    >
    >
    > In other words, I would like to define the TOSCA template for the
    > Kubernetes resources ( Kubernetes Deployments
    > <https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#creating-a-deployment>,
    > Kubernetes Configmaps,
    > <https://kubernetes.io/docs/concepts/configuration/configmap/#configmaps-and-pods>and
    > so on) based on publicly available TOSCA types.
    >
    >
    >
    > I went through a couple of opensource projects like:
    >
    > - Turandot <https://github.com/tliron/turandot>
    >
    > - Cloudify <https://github.com/cloudify-cosmo/cloudify-kubernetes-plugin>
    >
    > - MiCADO <https://github.com/micado-scale/tosca>
    >
    > - Indigo <https://github.com/indigo-dc/orchestrator>
    >
    >
    >
    > and, it seems that each project defined its *own* TOSCA Types for
    > Kubernetes resources.
    >
    >
    >
    > My question is:
    >
    >
    >
    > Is there any standardized way how to describe Kubernetes resources by
    > TOSCA?
    >
    >
    >
    > Thanks in advance for your help.
    >
    >
    >
    > Regards,
    >
    >
    >
    > Matej Feder
    >
    >
    >
    > DevOps Engineer at dNation <https://dnation.cloud/>
    >
    >
    >
    >