Skip to content

Commit 16c9dbc

Browse files
committed
manage the docker-ce-cli package
Manage the docker-ce-cli package the same way as the docker-ce package. Fixes #597. Also remove obsolete manual setting of package provider.
1 parent 515e623 commit 16c9dbc

File tree

7 files changed

+49
-34
lines changed

7 files changed

+49
-34
lines changed

REFERENCE.md

+9
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ The following parameters are available in the `docker` class:
166166
* [`docker_msft_provider_version`](#docker_msft_provider_version)
167167
* [`docker_ce_start_command`](#docker_ce_start_command)
168168
* [`docker_ce_package_name`](#docker_ce_package_name)
169+
* [`docker_ce_cli_package_name`](#docker_ce_cli_package_name)
169170
* [`docker_ce_source_location`](#docker_ce_source_location)
170171
* [`docker_ce_key_source`](#docker_ce_key_source)
171172
* [`docker_ce_key_id`](#docker_ce_key_id)
@@ -926,6 +927,14 @@ Data type: `Optional[String]`
926927

927928
Default value: `$docker::params::docker_ce_package_name`
928929

930+
##### <a name="docker_ce_cli_package_name"></a>`docker_ce_cli_package_name`
931+
932+
Data type: `String[1]`
933+
934+
935+
936+
Default value: `$docker::params::docker_ce_cli_package_name`
937+
929938
##### <a name="docker_ce_source_location"></a>`docker_ce_source_location`
930939

931940
Data type: `Optional[String]`

manifests/init.pp

+2
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,7 @@
318318
#
319319
# @param docker_ce_start_command
320320
# @param docker_ce_package_name
321+
# @param docker_ce_cli_package_name
321322
# @param docker_ce_source_location
322323
# @param docker_ce_key_source
323324
# @param docker_ce_key_id
@@ -363,6 +364,7 @@
363364
Array $dependent_packages = $docker::params::dependent_packages,
364365
String $docker_ce_start_command = $docker::params::docker_ce_start_command,
365366
Optional[String] $docker_ce_package_name = $docker::params::docker_ce_package_name,
367+
String[1] $docker_ce_cli_package_name = $docker::params::docker_ce_cli_package_name,
366368
Optional[String] $docker_ce_source_location = $docker::params::package_ce_source_location,
367369
Optional[String] $docker_ce_key_source = $docker::params::package_ce_key_source,
368370
Optional[String] $docker_ce_key_id = $docker::params::package_ce_key_id,

manifests/install.pp

+17-21
Original file line numberDiff line numberDiff line change
@@ -47,35 +47,27 @@
4747
}
4848

4949
if $docker::package_source {
50-
case $facts['os']['family'] {
51-
'Debian' : {
52-
$pk_provider = 'dpkg'
53-
}
54-
'RedHat' : {
55-
$pk_provider = 'yum'
56-
}
57-
'windows' : {
58-
fail('Custom package source is currently not implemented on windows.')
59-
}
60-
default : {
61-
$pk_provider = undef
62-
}
50+
if $facts['os']['family'] == 'windows' {
51+
fail('Custom package source is currently not implemented on windows.')
6352
}
6453
case $docker::package_source {
6554
/docker-engine/ : {
6655
ensure_resource('package', 'docker', merge($docker_hash, {
67-
ensure => $ensure,
68-
provider => $pk_provider,
69-
source => $docker::package_source,
70-
name => $docker::docker_engine_package_name,
56+
ensure => $ensure,
57+
source => $docker::package_source,
58+
name => $docker::docker_engine_package_name,
7159
}))
7260
}
7361
/docker-ce/ : {
7462
ensure_resource('package', 'docker', merge($docker_hash, {
75-
ensure => $ensure,
76-
provider => $pk_provider,
77-
source => $docker::package_source,
78-
name => $docker::docker_ce_package_name,
63+
ensure => $ensure,
64+
source => $docker::package_source,
65+
name => $docker::docker_ce_package_name,
66+
}))
67+
ensure_resource('package', 'docker-ce-cli', merge($docker_hash, {
68+
ensure => $ensure,
69+
source => $docker::package_source,
70+
name => $docker::docker_ce_cli_package_name,
7971
}))
8072
}
8173
default : {}
@@ -88,6 +80,10 @@
8880
ensure => $ensure,
8981
name => $docker::docker_package_name,
9082
}))
83+
ensure_resource('package', 'docker-ce-cli', merge($docker_hash, {
84+
ensure => $ensure,
85+
name => $docker::docker_ce_cli_package_name,
86+
}))
9187

9288
if $ensure == 'absent' {
9389
ensure_resource('package', $dependent_packages, {

manifests/params.pp

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
$ensure = present
66
$docker_ce_start_command = 'dockerd'
77
$docker_ce_package_name = 'docker-ce'
8+
$docker_ce_cli_package_name = 'docker-ce-cli'
89
$docker_engine_start_command = 'docker daemon'
910
$docker_engine_package_name = 'docker-engine'
1011
$docker_ce_channel = stable
@@ -372,7 +373,7 @@
372373
default => [],
373374
}
374375

375-
$dependent_packages = [ 'docker-ce-cli', 'containerd.io', ]
376+
$dependent_packages = [ $docker_ce_cli_package_name, 'containerd.io', ]
376377

377378
if($service_provider == 'systemd') {
378379
# systemd v230 adds new StartLimitIntervalSec, StartLimitBurst

spec/classes/init_spec.rb

100755100644
+1
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@
8989
'docker_ce_key_id' => defaults['package_ce_key_id'],
9090
'docker_ce_key_source' => defaults['package_ce_key_source'],
9191
'docker_ce_package_name' => defaults['docker_ce_package_name'],
92+
'docker_ce_cli_package_name' => defaults['docker_ce_cli_package_name'],
9293
'docker_ce_release' => defaults['package_ce_release'],
9394
'docker_ce_source_location' => defaults['package_ce_source_location'],
9495
'docker_ce_start_command' => defaults['docker_ce_start_command'],

spec/helper/get_defaults.rb

+3-1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ def get_defaults(_facts)
2626
dns_search = :undef
2727
docker_ce_channel = 'stable'
2828
docker_ce_package_name = 'docker-ce'
29+
docker_ce_cli_package_name = 'docker-ce-cli'
2930
docker_ce_start_command = 'dockerd'
3031
docker_command = 'docker'
3132
docker_ee = false
@@ -343,7 +344,7 @@ def get_defaults(_facts)
343344
apt_source_pin_level = :undef
344345
end
345346

346-
dependent_packages = ['docker-ce-cli', 'containerd.io']
347+
dependent_packages = [docker_ce_cli_package_name, 'containerd.io']
347348

348349
prerequired_packages = case _facts[:os]['family']
349350
when 'Debian'
@@ -392,6 +393,7 @@ def get_defaults(_facts)
392393
'dns_search' => dns_search,
393394
'docker_ce_channel' => docker_ce_channel,
394395
'docker_ce_package_name' => docker_ce_package_name,
396+
'docker_ce_cli_package_name' => docker_ce_cli_package_name,
395397
'docker_ce_start_command' => docker_ce_start_command,
396398
'docker_command' => docker_command,
397399
'docker_ee' => docker_ee,

spec/shared_examples/install.rb

+15-11
Original file line numberDiff line numberDiff line change
@@ -21,22 +21,12 @@
2121
is_expected.to contain_class('docker::install')
2222
}
2323

24-
provider_value = case _facts[:os]['family']
25-
when 'Debian'
26-
'dpkg'
27-
when 'RedHat'
28-
'yum'
29-
else
30-
:undef
31-
end
32-
3324
case _params['package_source']
3425
when 'docker-engine'
3526
it {
3627
is_expected.to contain_package('docker').with(
3728
{
3829
'ensure' => ensure_value,
39-
'provider' => provider_value,
4030
'source' => _params['package_source'],
4131
'name' => _params['docker_engine_package_name'],
4232
}.merge(docker_hash),
@@ -47,12 +37,20 @@
4737
is_expected.to contain_package('docker').with(
4838
{
4939
'ensure' => ensure_value,
50-
'provider' => provider_value,
5140
'source' => _params['package_source'],
5241
'name' => _params['docker_ce_package_name'],
5342
}.merge(docker_hash),
5443
)
5544
}
45+
it {
46+
is_expected.to contain_package('docker-ce-cli').with(
47+
{
48+
'ensure' => ensure_value,
49+
'source' => _params['package_source'],
50+
'name' => _params['docker_ce_cli_package_name'],
51+
}.merge(docker_hash),
52+
)
53+
}
5654
end
5755
elsif _facts[:os]['family'] != 'windows'
5856
it {
@@ -61,6 +59,12 @@
6159
'name' => values['docker_package_name'],
6260
)
6361
}
62+
it {
63+
is_expected.to contain_package('docker-ce-cli').with(
64+
'ensure' => ensure_value,
65+
'name' => _params['docker_ce_cli_package_name'],
66+
)
67+
}
6468

6569
if ensure_value == 'absent'
6670
_params['dependent_packages'].each do |dependent_package|

0 commit comments

Comments
 (0)