updated docs on yaml generation
This commit is contained in:
parent
73fd329551
commit
4074b7d88c
@ -1,6 +1,5 @@
|
||||
This document aims at centralizing all the informations about the yaml file that will be submitted to argo
|
||||
|
||||
- names can only contain alphanumeric characters or '-'
|
||||
|
||||
|
||||
- Lists can either be flow `[value1, value2,...]` or
|
||||
|
||||
|
@ -3,3 +3,5 @@
|
||||
- argo_builder.getComputingCommands() takes the command as a parameter to treat `sh -c`'s argument differently, but this is not generic enough
|
||||
- refactor on oc-catalog : we could store it as a string and parse it differently depending on the command
|
||||
|
||||
[ ] Are dependencies handled well :
|
||||
- Branch/dependencies seem to be generated inconsistently, producing different branches with the same graph
|
@ -25,34 +25,59 @@ note top : a node is a component in a link object,\n represented by its ID
|
||||
|
||||
argo -> argo
|
||||
note bottom : We want to prepare the list of branches by removing\n nodes that appears several times\ne.g : two branches :\n1 - 2 2 - 3 3 - 4\n1 - 2 2 - 3 3 - 5\nWe will iterate over each branch to create the component's YAML\n and don't want to create components 1 2 et 3 twice or more
|
||||
loop branch in branches
|
||||
group if Source first link is not in list node written
|
||||
loop while link Source is shared
|
||||
argo -> argo : create an object representing the component
|
||||
argo -> argo : add component to list of created nodes
|
||||
end
|
||||
|
||||
loop computing in graph.computings
|
||||
argo -> argo : create new container object
|
||||
argo -> argoGraph : retrieve image name
|
||||
argo -> argoGraph : add command from the computing component
|
||||
argo -> argoGraph : add arguments from the computing component
|
||||
|
||||
argo -> argoGraph : retrieve environment variables' name from the computing component
|
||||
argo -> argo : create a new list of Parameter
|
||||
loop env variable in retrieved env variables
|
||||
argo -> argo : add a Parameter object to the list with only the name attribute
|
||||
end
|
||||
|
||||
argo -> argo : create a Template object from the name of the component and the Container object
|
||||
argo -> argo : add attached volume (currently we share the same mounted volume)
|
||||
argo -> argo : append the new Template
|
||||
end
|
||||
|
||||
argo -> argo : create new Dag object
|
||||
|
||||
loop computing in graph.computings
|
||||
argo -> argo : create a new Task
|
||||
argo -> argoGraph : add a unique name from the component name and ID in the graph
|
||||
argo -> argoGraph : add the name of the associated Template
|
||||
argo -> argoGraph : add the list of environment variables from the component
|
||||
|
||||
loop branch in branches
|
||||
group if component is in the branch
|
||||
|
||||
loop link in branch
|
||||
group if link.Destination not in list of nodes already written
|
||||
argo -> argoGraph : get component
|
||||
argoGraph --> argo : component
|
||||
argo -> argo : add the previous component name to the list of dependencies
|
||||
|
||||
argo -> argo : generate YAML depending on type (attributes)
|
||||
argo -> argo : add ID to list of node already written
|
||||
end
|
||||
end
|
||||
|
||||
argo -> argo : add the task/step to the list of Tasks
|
||||
|
||||
end
|
||||
|
||||
loop for each struct created
|
||||
argo -> argo : Marshal into yaml
|
||||
argo -> argo : write the marshalled string to a file
|
||||
argo -> argo : add new Template named DAG to the Templates
|
||||
|
||||
loop storage in graph.storages
|
||||
argo -> argo : create a new VolumeClaimTemplate object
|
||||
argo -> argoGraph : add name from the storage component
|
||||
argo -> argoGraph : add access mode from the storage component
|
||||
argo -> argoGraph : add storage capacity from the storage component
|
||||
|
||||
end
|
||||
|
||||
loop data in graph.data
|
||||
argo -> argo :
|
||||
end
|
||||
|
||||
argo -> argo : marshal the Workflow to yaml
|
||||
argo -> argo : write the marshaled object to a .yml file
|
||||
|
||||
@enduml
|
Loading…
Reference in New Issue
Block a user