kitchen-docker 0.1.1.dev → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -4,9 +4,7 @@ A Test Kitchen Driver for Docker.
4
4
 
5
5
  ## <a name="requirements"></a> Requirements
6
6
 
7
- **TODO:** document any software or library prerequisites that are required to
8
- use this driver. Implement the `#verify_dependencies` method in your Driver
9
- class to enforce these requirements in code, if possible.
7
+ * [Docker][docker_getting_started]
10
8
 
11
9
  ## <a name="installation"></a> Installation and Setup
12
10
 
@@ -14,7 +12,22 @@ Please read the [Driver usage][driver_usage] page for more details.
14
12
 
15
13
  ## <a name="config"></a> Configuration
16
14
 
17
- **TODO:** Write descriptions of all configuration options
15
+ ### <a name="config-image"></a> image
16
+
17
+ The Docker image to use as the base for the suite containers. You can find
18
+ images using the [Docker Index][docker_index].
19
+
20
+ The default value is `ubuntu` ([image][docker_default_image]).
21
+
22
+ ### <a name="config-platform"></a> platform
23
+
24
+ The platform of the chosen image. This is used to properly bootstrap the
25
+ suite container for Test Kitchen. Kitchen Docker currently supports:
26
+
27
+ * `debian` or `ubuntu`
28
+ * `rhel` or `centos`
29
+
30
+ The default value is `ubuntu`.
18
31
 
19
32
  ### <a name="config-require-chef-omnibus"></a> require\_chef\_omnibus
20
33
 
@@ -30,7 +43,7 @@ installed. There are several different behaviors available:
30
43
  the installed version and the desired version match.
31
44
  * `false` or `nil` - no chef is installed.
32
45
 
33
- The default value is unset, or `nil`.
46
+ The default value is `true`.
34
47
 
35
48
  ## <a name="development"></a> Development
36
49
 
@@ -56,9 +69,12 @@ Created and maintained by [Sean Porter][author] (<portertech@gmail.com>)
56
69
  Apache 2.0 (see [LICENSE][license])
57
70
 
58
71
 
59
- [author]: https://github.com/enter-github-user
60
- [issues]: https://github.com/enter-github-user/kitchen-docker/issues
61
- [license]: https://github.com/enter-github-user/kitchen-docker/blob/master/LICENSE
62
- [repo]: https://github.com/enter-github-user/kitchen-docker
63
- [driver_usage]: http://docs.kitchen-ci.org/drivers/usage
64
- [chef_omnibus_dl]: http://www.opscode.com/chef/install/
72
+ [author]: https://github.com/portertech
73
+ [issues]: https://github.com/portertech/kitchen-docker/issues
74
+ [license]: https://github.com/portertech/kitchen-docker/blob/master/LICENSE
75
+ [repo]: https://github.com/portertech/kitchen-docker
76
+ [docker_getting_started]: http://www.docker.io/gettingstarted/
77
+ [docker_index]: https://index.docker.io/
78
+ [docker_default_image]: https://index.docker.io/_/ubuntu/
79
+ [driver_usage]: http://docs.kitchen-ci.org/drivers/usage
80
+ [chef_omnibus_dl]: http://www.opscode.com/chef/install/
@@ -33,7 +33,14 @@ module Kitchen
33
33
  default_config :port, '22'
34
34
  default_config :username, 'kitchen'
35
35
  default_config :password, 'kitchen'
36
- default_config :require_chef_omnibus, 'latest'
36
+ default_config :require_chef_omnibus, true
37
+
38
+ def verify_dependencies
39
+ run_command('docker > /dev/null', :quiet => true)
40
+ rescue
41
+ raise UserError,
42
+ 'You must first install Docker http://www.docker.io/gettingstarted/'
43
+ end
37
44
 
38
45
  def create(state)
39
46
  state[:image_id] = build_image(state) unless state[:image_id]
@@ -70,12 +77,14 @@ module Kitchen
70
77
  raise ActionFailed,
71
78
  "Unknown platform '#{config[:platform]}'"
72
79
  end
80
+ username = config[:username]
81
+ password = config[:password]
73
82
  base = <<-eos
74
83
  RUN mkdir /var/run/sshd
75
84
  RUN echo '127.0.0.1 localhost.localdomain localhost' >> /etc/hosts
76
- RUN useradd -d /home/kitchen -m -s /bin/bash kitchen
77
- RUN echo kitchen:kitchen | chpasswd
78
- RUN echo 'kitchen ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
85
+ RUN useradd -d /home/#{username} -m -s /bin/bash #{username}
86
+ RUN echo #{username}:#{password} | chpasswd
87
+ RUN echo '#{username} ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
79
88
  eos
80
89
  [from, platform, base].join("\n")
81
90
  end
@@ -121,7 +130,7 @@ module Kitchen
121
130
 
122
131
  def container_address(state)
123
132
  container_id = state[:container_id]
124
- output = run_command("docker inspect #{container_id}", :quiet => true)
133
+ output = run_command("docker inspect #{container_id}")
125
134
  parse_container_ip(output)
126
135
  end
127
136
 
@@ -21,6 +21,6 @@ module Kitchen
21
21
  module Driver
22
22
 
23
23
  # Version string for Docker Kitchen driver
24
- DOCKER_VERSION = "0.1.1.dev"
24
+ DOCKER_VERSION = "0.1.1"
25
25
  end
26
26
  end
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchen-docker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1.dev
5
- prerelease: 6
4
+ version: 0.1.1
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Sean Porter
@@ -137,16 +137,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
137
137
  requirements:
138
138
  - - ! '>='
139
139
  - !ruby/object:Gem::Version
140
- hash: 3422827801630028328
140
+ hash: 1503263599404936680
141
141
  version: '0'
142
142
  segments:
143
143
  - 0
144
144
  none: false
145
145
  required_rubygems_version: !ruby/object:Gem::Requirement
146
146
  requirements:
147
- - - ! '>'
147
+ - - ! '>='
148
148
  - !ruby/object:Gem::Version
149
- version: 1.3.1
149
+ hash: 1503263599404936680
150
+ version: '0'
151
+ segments:
152
+ - 0
150
153
  none: false
151
154
  requirements: []
152
155
  rubyforge_project: