This document will outline the breaking changes that are being introduced into the Docker Cookbook as they are merged into master.
It is a work in progress. Edit me!
Yields a running Docker service.
- sets sysctls
- creates graph dir
- compile time case logic around install_type includes recipes for storage drivers, prerequisite packages, and cgroupfs.
- includes install_type recipe
- includes group recipe
- includes init_type recipe
Recipes for storage drivers exist, creating dependencies, are not used by default, and have deprecation warnings all over the code. README explains that they are optional prerequisites for docker::default.
Attribute are set in the key space node['docker'].
- arch - computed from automatic (ohai) attributes
- group_members - []
- init_type - value_for_platform
- install_type - value_for_platform
- install_dir - computed from install_type
- ipv4_forward - bool
- ipv6_forward - bool
- logfile - nil
- version - use by?
- alert_on_error_action - interesting
- dependency_packages - value_for_platform_family
- binary - subkeys calculate version, store binary checksums and urls.
- package - subkeys action, distribution? name->value_for_platform, and apt repository information
- source - source install info
- many more that correspond to docker CLI options. Much deprecation. wow.
- host - DEPRECATED for bind_socket/bind_uri
- storage_type - DEPRECATED
- tls - various
These are apparently for internal consumption by cookbook resources.. I'm not currently sure what they do.
- docker_daemon_timeout
- container_cmd_timeout
- container_init_type - computed from init_type... does what now?
- image_cmd_timeout
- registry_cmd_timeout
TODO: blah blah blah
TODO: blah blah blah
TODO: blah blah blah
- 'apt' - # marked deprecation
- 'aufs', '>= 0.1.1' # marked deprecation
- 'device-mapper', '>= 0.1.0' # marked deprecation
- 'git' - for source installation
- 'golang' - for source installation
- 'homebrew' - ?
- 'iptables' - # marked deprecation
- 'lxc', '>= 1.1.6' # marked deprecation
- 'modules' - # marked deprecation
- 'runit' - # runit init_type
- 'sysctl' - various
- 'yum-epel' - package install_type
-
Remove mandatory use of node attributes as input. Databags are very popular, and it should be easy to use things like Zookeeper, Consul, Etcd, or SQL databases to drive settings.
-
Attributes can still be utilized by recipes by passing them into docker_whatever resources as properties.
-
YTBD - what attributes be in 1.0?
-
A
docker_service
resource (docker_daemon?) will formalize the interface and provide input sanitation. Service management will be sub classed by init_type ala mysql/httpd. -
Sysctl settings should be set by init providers. Ideally this should be handled in scripts / unit files, so that docker can come back up on a reboot without a chef-client run.
-
Decouple storage driver prerequisites from
docker_service
. -
Decouple iptables. It should be included by default in the distros.
-
Remove LXC support
-
install_type support - YTBD. Start with binary, sort package/source/homebrew out later.
YTBD - docker-api?
YTBD - docker-api?
- WORDS GO HERE
- Upgrading from 0.x to 1.0 - Supported at all?