[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [tosca] TOSCA artifact processing
My comments on some of the points:
1) the initial part of the document, in my humble opinion, should end up in an appendix since, written in that place, anticipate too much of a specification that the reader has not yet known, it introduces things that are not normative and risk to confuse users.
2) The standard never states clearly where the scripts have to be executed, there are a couple of sentences where the reader can "infer" that they should be executed IN the node, but that is too generic. Also the document speak about tools like puppet or chef, but no examples are provided, in this case I suggest that we either add some examples or remove the reference since it keeps you waiting for more and than you get disappointed (ref 2746).
3) One of the things I never understood in this standard is "how on a standard that allows to define some custom nodes and expect it to be inter-operable manage to work unless it states precise relationship or a starting point" there is no starting point in the spec nor is explained that the orchestrator needs to create a graph using the relationships and pick the root nodes (there could be more than 1) and start working on those as the first thing to create. Also since we know the domain those nodes should be of some numbered, known and normative typology (Compute or Container or network or storage) if we end up having a DB as a root node the question is where to we place it? Is it allowed or the orchestrator should fire an error like "wrong root node type"?
4) in the spec do we define errors that the orchestrator need to fire?
5) the execution of the artifact could be too much dependent on the way the orchestrator is implemented thus not interoperable: in my opinion the spec should just require all the proper information to be written in the TOSCA file as DATA; a script is an imperative piece of the topology and contrast with all the declarative approach.
This is why in my implementation I used the template concept so in the nodes I have properties and each node has templates where the properties get substituted; this allows for the orchestrator to change the template and work differently so if the template will end up as a bash script the orchestrator will know that it will have to execute it on the node, but if is a puppet manifest it knows that it will have to write something in the puppetmaster and than the VM will present itself to it and do the installation.
In this last case I transform all the TOSCA file in a puppet manifest apart fro the root node that I create externally from puppet talking directly with the cloud environment.
In my case I do many operations in the "orchestrator environment" (I create new Docker images, prepare puppet stuff) than just fire up the known normative root elements that get a "well know" operation set.
In my case the hosted-on relationship is not treated uniformly (I should really specialize it one of these days) since being hosted-on a root node is different thatn being hosted-on another generic node.
For me an artifact is a SQL file that represent the dump of a DB or the reference to an ISO image I have to use, NOT a bash script that does part of the orchestrator job: in my opinion that approach is wrong since breaks the declarative approach we state we want to use in TOSCA. If you have a bash you know that you are giving away a CSAR that is not interoperable by definition (chances that that script will work across Linux distributions is low and for sure just Linux), also you are interfering with the orchestrator assuming that it is able to execute scripts in the way you expect (where, how, when etc) and as Chris pointed out all this detail is missing.
BTW: on 1.50.3.1 I read "TOSCA implementation currently does not allow concurrent executions of scripts implementation artifacts (shell, python, ansible, puppet, chef etc.) on a given host." are we sure that all implementations work this way? Or we want to state that the implementation MUST not allow concurrent execution? Can this be more clear?
Sorry for the long post. Luca > _________________________________________________________________________ > > Il 14 novembre 2016 alle 21.41 Chris Lauwers <lauwers@ubicity.com> ha scritto: > |
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]