You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@jclouds.apache.org by "Josef Cacek (JIRA)" <ji...@apache.org> on 2015/09/18 09:14:04 UTC
[jira] [Created] (JCLOUDS-1002) Docker: Make the whole container
Config object configurable by user
Josef Cacek created JCLOUDS-1002:
------------------------------------
Summary: Docker: Make the whole container Config object configurable by user
Key: JCLOUDS-1002
URL: https://issues.apache.org/jira/browse/JCLOUDS-1002
Project: jclouds
Issue Type: New Feature
Components: jclouds-labs
Affects Versions: 1.9.1
Reporter: Josef Cacek
It would be nice if the {{TemplateOptions}} for Docker provide full access to {{org.jclouds.docker.domain.Config}}.
There could be for instance the second option class named
{{org.jclouds.docker.compute.options.DockerConfigTemplateOptions}} which holds instance of the {{Config.Builder}}. Then change the {{DockerComputeServiceAdapter}} implementation to be able handle both options class types.
Benefits of this approach:
* user has full control over the container configuration
* it can avoid problems which can be currently seen in the {{DockerComputeServiceAdapter}} - e.g. only TCP port mappings, Maps-to-Lists mappings, null-values vs empty Lists/Maps, ...
Caveeats:
* The config object is related to Docker REST API. The changes in there could break the JClouds docker-provider user API (or add complexity to this DTO). How to solve it?
** Use the new TemplateOptions only for advanced cases and make the compatibility an user responsibility - they must keep the code synchornized with the Docker API version used in the JClouds version
** or Don't provide the {{Config.Builder}} from {{DockerConfigTemplateOptions}} directly. Introduce new methods which will only call appropriate method from the builder. This approach doesn't cleanly cover {{HostConfig}}
I personally prefer the first solution - i.e. provide direct access to the {{Config.Builder}} instance.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)