diff --git a/README.md b/README.md index 0466d43a..f6081d5c 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,6 @@ class { 'docker': docker_ee => true, docker_ee_source_location => 'https://', docker_ee_key_source => 'https://', - docker_ee_key_id => '', } ``` diff --git a/REFERENCE.md b/REFERENCE.md index 3bffa9a5..536a096c 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -177,12 +177,12 @@ The following parameters are available in the `docker` class: * [`docker_ce_cli_package_name`](#-docker--docker_ce_cli_package_name) * [`docker_ce_source_location`](#-docker--docker_ce_source_location) * [`docker_ce_key_source`](#-docker--docker_ce_key_source) -* [`docker_ce_key_id`](#-docker--docker_ce_key_id) * [`docker_ce_release`](#-docker--docker_ce_release) * [`docker_package_location`](#-docker--docker_package_location) * [`docker_package_key_source`](#-docker--docker_package_key_source) +* [`docker_package_key_name`](#-docker--docker_package_key_name) +* [`docker_package_key_path`](#-docker--docker_package_key_path) * [`docker_package_key_check_source`](#-docker--docker_package_key_check_source) -* [`docker_package_key_id`](#-docker--docker_package_key_id) * [`docker_package_release`](#-docker--docker_package_release) * [`docker_engine_start_command`](#-docker--docker_engine_start_command) * [`docker_engine_package_name`](#-docker--docker_engine_package_name) @@ -191,7 +191,6 @@ The following parameters are available in the `docker` class: * [`docker_ee_package_name`](#-docker--docker_ee_package_name) * [`docker_ee_source_location`](#-docker--docker_ee_source_location) * [`docker_ee_key_source`](#-docker--docker_ee_key_source) -* [`docker_ee_key_id`](#-docker--docker_ee_key_id) * [`docker_ee_repos`](#-docker--docker_ee_repos) * [`docker_ee_release`](#-docker--docker_ee_release) * [`package_release`](#-docker--package_release) @@ -955,14 +954,6 @@ Data type: `Optional[String]` Default value: `$docker::params::package_ce_key_source` -##### `docker_ce_key_id` - -Data type: `Optional[String]` - - - -Default value: `$docker::params::package_ce_key_id` - ##### `docker_ce_release` Data type: `Optional[String]` @@ -987,21 +978,29 @@ Data type: `Optional[String]` Default value: `$docker::params::package_key_source` -##### `docker_package_key_check_source` +##### `docker_package_key_name` -Data type: `Optional[Boolean]` +Data type: `Optional[String]` -Default value: `$docker::params::package_key_check_source` +Default value: `$docker::params::package_key_name` -##### `docker_package_key_id` +##### `docker_package_key_path` + +Data type: `Optional[Stdlib::Absolutepath]` -Data type: `Optional[String]` +Default value: `$docker::params::package_key_path` -Default value: `$docker::params::package_key_id` +##### `docker_package_key_check_source` + +Data type: `Optional[Boolean]` + + + +Default value: `$docker::params::package_key_check_source` ##### `docker_package_release` @@ -1067,14 +1066,6 @@ Data type: `Optional[String]` Default value: `$docker::params::package_ee_key_source` -##### `docker_ee_key_id` - -Data type: `Optional[String]` - - - -Default value: `$docker::params::package_ee_key_id` - ##### `docker_ee_repos` Data type: `Optional[String]` diff --git a/manifests/init.pp b/manifests/init.pp index ac10e1be..50048b30 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -312,12 +312,12 @@ # @param docker_ce_cli_package_name # @param docker_ce_source_location # @param docker_ce_key_source -# @param docker_ce_key_id # @param docker_ce_release # @param docker_package_location # @param docker_package_key_source +# @param docker_package_key_name +# @param docker_package_key_path # @param docker_package_key_check_source -# @param docker_package_key_id # @param docker_package_release # @param docker_engine_start_command # @param docker_engine_package_name @@ -326,7 +326,6 @@ # @param docker_ee_package_name # @param docker_ee_source_location # @param docker_ee_key_source -# @param docker_ee_key_id # @param docker_ee_repos # @param docker_ee_release # @param package_release @@ -359,12 +358,12 @@ String[1] $docker_ce_cli_package_name = $docker::params::docker_ce_cli_package_name, Optional[String] $docker_ce_source_location = $docker::params::package_ce_source_location, Optional[String] $docker_ce_key_source = $docker::params::package_ce_key_source, - Optional[String] $docker_ce_key_id = $docker::params::package_ce_key_id, Optional[String] $docker_ce_release = $docker::params::package_ce_release, Optional[String] $docker_package_location = $docker::params::package_source_location, Optional[String] $docker_package_key_source = $docker::params::package_key_source, + Optional[String] $docker_package_key_name = $docker::params::package_key_name, + Optional[Stdlib::Absolutepath] $docker_package_key_path = $docker::params::package_key_path, Optional[Boolean] $docker_package_key_check_source = $docker::params::package_key_check_source, - Optional[String] $docker_package_key_id = $docker::params::package_key_id, Optional[String] $docker_package_release = $docker::params::package_release, String $docker_engine_start_command = $docker::params::docker_engine_start_command, String $docker_engine_package_name = $docker::params::docker_engine_package_name, @@ -373,7 +372,6 @@ Optional[String] $docker_ee_package_name = $docker::params::package_ee_package_name, Optional[String] $docker_ee_source_location = $docker::params::package_ee_source_location, Optional[String] $docker_ee_key_source = $docker::params::package_ee_key_source, - Optional[String] $docker_ee_key_id = $docker::params::package_ee_key_id, Optional[String] $docker_ee_repos = $docker::params::package_ee_repos, Optional[String] $docker_ee_release = $docker::params::package_ee_release, Optional[Variant[String,Array[String]]] $tcp_bind = $docker::params::tcp_bind, @@ -550,7 +548,8 @@ $package_location = $docker::docker_ee_source_location $package_key_source = $docker::docker_ee_key_source $package_key_check_source = $docker_package_key_check_source - $package_key = $docker::docker_ee_key_id + $package_key_name = $docker_package_key_name + $package_key_path = $docker_package_key_path $package_repos = $docker::docker_ee_repos $release = $docker::docker_ee_release $docker_start_command = $docker::docker_ee_start_command @@ -560,7 +559,8 @@ 'Debian' : { $package_location = $docker_ce_source_location $package_key_source = $docker_ce_key_source - $package_key = $docker_ce_key_id + $package_key_name = $docker_package_key_name + $package_key_path = $docker_package_key_path $package_repos = $docker_ce_channel $release = $docker_ce_release } @@ -588,7 +588,8 @@ $package_location = $docker_package_location $package_key_source = $docker_package_key_source $package_key_check_source = $docker_package_key_check_source - $package_key = $docker_package_key_id + $package_key_name = $docker_package_key_name + $package_key_path = $docker_package_key_path $package_repos = 'main' $release = $docker_package_release } diff --git a/manifests/params.pp b/manifests/params.pp index 940d2a5c..981ee0b1 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -13,7 +13,6 @@ $docker_ee_start_command = 'dockerd' $docker_ee_source_location = undef $docker_ee_key_source = undef - $docker_ee_key_id = undef $docker_ee_repos = stable $tcp_bind = undef $tls_enable = false @@ -163,7 +162,6 @@ $package_ce_source_location = "https://download.docker.com/linux/${os_lc}" $package_ce_key_source = "https://download.docker.com/linux/${os_lc}/gpg" - $package_ce_key_id = '9DC858229FC7DD38854AE2D88D81803C0EBFCD88' if (versioncmp($facts['facterversion'], '2.4.6') <= 0) { $package_ce_release = $facts['os']['lsb']['distcodename'] } else { @@ -171,11 +169,11 @@ } $package_source_location = 'http://apt.dockerproject.org/repo' $package_key_source = 'https://apt.dockerproject.org/gpg' + $package_key_name = 'docker.asc' + $package_key_path = '/usr/share/keyrings' $package_key_check_source = undef - $package_key_id = '58118E89F3A912897C070ADBF76221572C52609D' $package_ee_source_location = $docker_ee_source_location $package_ee_key_source = $docker_ee_key_source - $package_ee_key_id = $docker_ee_key_id if (versioncmp($facts['facterversion'], '2.4.6') <= 0) { $package_ee_release = $facts['os']['lsb']['distcodename'] } else { @@ -206,19 +204,18 @@ $apt_source_pin_level = undef $detach_service_in_init = false - $package_ce_key_id = undef $package_ce_key_source = 'https://download.docker.com/linux/rhel/gpg' $package_ce_release = undef $package_ce_source_location = "https://download.docker.com/linux/rhel/${facts['os']['release']['major']}/${facts['os']['architecture']}/${docker_ce_channel}" - $package_ee_key_id = $docker_ee_key_id $package_ee_key_source = $docker_ee_key_source $package_ee_package_name = $docker_ee_package_name $package_ee_release = undef $package_ee_repos = $docker_ee_repos $package_ee_source_location = $docker_ee_source_location $package_key_check_source = true - $package_key_id = undef $package_key_source = 'https://yum.dockerproject.org/gpg' + $package_key_name = undef + $package_key_path = undef $package_release = undef $package_source_location = "https://yum.dockerproject.org/repo/main/centos/${facts['os']['release']['major']}" $pin_upstream_package_source = undef @@ -242,18 +239,17 @@ $docker_group = 'docker' $package_ce_source_location = undef $package_ce_key_source = undef - $package_ce_key_id = undef $package_ce_repos = undef $package_ce_release = undef - $package_key_id = undef $package_release = undef $package_source_location = undef $package_key_source = undef $package_key_check_source = undef + $package_key_name = undef + $package_key_path = undef $package_ee_source_location = undef $package_ee_package_name = $docker_ee_package_name $package_ee_key_source = undef - $package_ee_key_id = undef $package_ee_repos = undef $package_ee_release = undef $use_upstream_package_source = undef @@ -278,18 +274,17 @@ $socket_group = $socket_group_default $package_key_source = undef $package_key_check_source = undef + $package_key_name = undef + $package_key_path = undef $package_source_location = undef - $package_key_id = undef $package_repos = undef $package_release = undef $package_ce_key_source = undef $package_ce_source_location = undef - $package_ce_key_id = undef $package_ce_repos = undef $package_ce_release = undef $package_ee_source_location = undef $package_ee_key_source = undef - $package_ee_key_id = undef $package_ee_release = undef $package_ee_repos = undef $package_ee_package_name = undef @@ -318,18 +313,17 @@ $socket_group = $socket_group_default $package_key_source = undef $package_key_check_source = undef + $package_key_name = undef + $package_key_path = undef $package_source_location = undef - $package_key_id = undef $package_repos = undef $package_release = undef $package_ce_key_source = undef $package_ce_source_location = undef - $package_ce_key_id = undef $package_ce_repos = undef $package_ce_release = undef $package_ee_source_location = undef $package_ee_key_source = undef - $package_ee_key_id = undef $package_ee_release = undef $package_ee_repos = undef $package_ee_package_name = undef diff --git a/manifests/repos.pp b/manifests/repos.pp index b6c6a7a3..add0ebf4 100644 --- a/manifests/repos.pp +++ b/manifests/repos.pp @@ -19,22 +19,28 @@ case $facts['os']['family'] { 'Debian': { $release = $docker::release - $package_key = $docker::package_key $package_repos = $docker::package_repos + $key_name = $docker::package_key_name + $key_path = $docker::package_key_path if ($docker::use_upstream_package_source) { + apt::keyring { $key_name: + ensure => present, + source => $key_source, + dir => $key_path, + } + apt::source { 'docker': + ensure => present, location => $location, architecture => $architecture, release => $release, repos => $package_repos, - key => { - id => $package_key, - source => $key_source, - }, include => { src => false, }, + keyring => "${key_path}/${key_name}", + require => Apt::Keyring[$key_name], } $url_split = split($location, '/') diff --git a/metadata.json b/metadata.json index 41764219..d7d4171d 100644 --- a/metadata.json +++ b/metadata.json @@ -14,7 +14,7 @@ }, { "name": "puppetlabs/apt", - "version_requirement": ">= 4.4.1 < 11.0.0" + "version_requirement": ">= 9.2.0 < 11.0.0" }, { "name": "puppetlabs/powershell", diff --git a/spec/classes/init_spec.rb b/spec/classes/init_spec.rb index dc072224..4d969799 100644 --- a/spec/classes/init_spec.rb +++ b/spec/classes/init_spec.rb @@ -86,14 +86,12 @@ 'dns_search' => defaults['dns_search'], 'dns' => defaults['dns'], 'docker_ce_channel' => defaults['docker_ce_channel'], - 'docker_ce_key_id' => defaults['package_ce_key_id'], 'docker_ce_key_source' => defaults['package_ce_key_source'], 'docker_ce_package_name' => defaults['docker_ce_package_name'], 'docker_ce_cli_package_name' => defaults['docker_ce_cli_package_name'], 'docker_ce_release' => defaults['package_ce_release'], 'docker_ce_source_location' => defaults['package_ce_source_location'], 'docker_ce_start_command' => defaults['docker_ce_start_command'], - 'docker_ee_key_id' => defaults['package_ee_key_id'], 'docker_ee_key_source' => defaults['package_ee_key_source'], 'docker_ee_package_name' => defaults['package_ee_package_name'], 'docker_ee_release' => defaults['package_ee_release'], @@ -105,9 +103,10 @@ 'docker_group' => defaults['docker_group'], 'docker_msft_provider_version' => defaults['docker_msft_provider_version'], 'docker_package_key_check_source' => defaults['package_key_check_source'], - 'docker_package_key_id' => defaults['package_key_id'], 'docker_package_key_source' => defaults['package_key_source'], 'docker_package_location' => defaults['package_source_location'], + 'docker_package_key_name' => defaults['package_key_name'], + 'docker_package_key_path' => defaults['package_key_path'], 'docker_package_release' => defaults['package_release'], 'docker_users' => [], 'ensure' => defaults['package_ensure'], diff --git a/spec/helper/get_defaults.rb b/spec/helper/get_defaults.rb index aeffaaab..8215cc01 100644 --- a/spec/helper/get_defaults.rb +++ b/spec/helper/get_defaults.rb @@ -28,7 +28,6 @@ def get_defaults(_facts) docker_ce_start_command = 'dockerd' docker_command = 'docker' docker_ee = false - docker_ee_key_id = :undef docker_ee_key_source = :undef docker_ee_repos = 'stable' docker_ee_source_location = :undef @@ -130,19 +129,18 @@ def get_defaults(_facts) storage_setup_file = :undef use_upstream_package_source = true - package_ce_key_id = '9DC858229FC7DD38854AE2D88D81803C0EBFCD88' package_ce_key_source = "https://download.docker.com/linux/#{os_lc}/gpg" package_ce_release = _facts[:os]['distro']['codename'] package_ce_source_location = "https://download.docker.com/linux/#{os_lc}" - package_ee_key_id = docker_ee_key_id package_ee_key_source = docker_ee_key_source package_ee_package_name = docker_ee_package_name package_ee_release = _facts[:os]['distro']['codename'] package_ee_repos = docker_ee_repos package_ee_source_location = docker_ee_source_location package_key_check_source = :undef - package_key_id = '58118E89F3A912897C070ADBF76221572C52609D' package_key_source = 'https://apt.dockerproject.org/gpg' + package_key_name = 'docker.asc' + package_key_path = '/usr/share/keyrings' package_source_location = 'http://apt.dockerproject.org/repo' detach_service_in_init = service_provider != 'systemd' @@ -162,19 +160,18 @@ def get_defaults(_facts) apt_source_pin_level = :undef detach_service_in_init = false - package_ce_key_id = :undef package_ce_key_source = 'https://download.docker.com/linux/centos/gpg' package_ce_release = :undef package_ce_source_location = "https://download.docker.com/linux/centos/#{_facts[:os]['release']['major']}/#{_facts[:os]['architecture']}/#{docker_ce_channel}" - package_ee_key_id = docker_ee_key_id package_ee_key_source = docker_ee_key_source package_ee_package_name = docker_ee_package_name package_ee_release = :undef package_ee_repos = docker_ee_repos package_ee_source_location = docker_ee_source_location package_key_check_source = true - package_key_id = :undef package_key_source = 'https://yum.dockerproject.org/gpg' + package_key_name = :undef + package_key_path = :undef package_release = :undef package_source_location = "https://yum.dockerproject.org/repo/main/centos/#{_facts[:os]['release']['major']}" pin_upstream_package_source = :undef @@ -203,18 +200,17 @@ def get_defaults(_facts) docker_group = 'docker' package_ce_source_location = :undef package_ce_key_source = :undef - package_ce_key_id = :undef package_ce_repos = :undef package_ce_release = :undef - package_key_id = :undef package_release = :undef package_source_location = :undef package_key_source = :undef package_key_check_source = :undef + package_key_name = :undef + package_key_path = :undef package_ee_source_location = :undef package_ee_package_name = docker_ee_package_name package_ee_key_source = :undef - package_ee_key_id = :undef package_ee_repos = :undef package_ee_release = :undef use_upstream_package_source = :undef @@ -238,18 +234,17 @@ def get_defaults(_facts) socket_group = socket_group_default package_key_source = :undef package_key_check_source = :undef + package_key_name = :undef + package_key_path = :undef package_source_location = :undef - package_key_id = :undef package_repos = :undef package_release = :undef package_ce_key_source = :undef package_ce_source_location = :undef - package_ce_key_id = :undef package_ce_repos = :undef package_ce_release = :undef package_ee_source_location = :undef package_ee_key_source = :undef - package_ee_key_id = :undef package_ee_release = :undef package_ee_repos = :undef package_ee_package_name = :undef @@ -277,18 +272,17 @@ def get_defaults(_facts) socket_group = socket_group_default package_key_source = :undef package_key_check_source = :undef + package_key_name = :undef + package_key_path = :undef package_source_location = :undef - package_key_id = :undef package_repos = :undef package_release = :undef package_ce_key_source = :undef package_ce_source_location = :undef - package_ce_key_id = :undef package_ce_repos = :undef package_ce_release = :undef package_ee_source_location = :undef package_ee_key_source = :undef - package_ee_key_id = :undef package_ee_release = :undef package_ee_repos = :undef package_ee_package_name = :undef @@ -363,7 +357,6 @@ def get_defaults(_facts) 'docker_ce_start_command' => docker_ce_start_command, 'docker_command' => docker_command, 'docker_ee' => docker_ee, - 'docker_ee_key_id' => docker_ee_key_id, 'docker_ee_key_source' => docker_ee_key_source, 'docker_ee_package_name' => docker_ee_package_name, 'docker_ee_repos' => docker_ee_repos, @@ -399,12 +392,10 @@ def get_defaults(_facts) 'nuget_package_provider_version' => nuget_package_provider_version, 'os_lc' => os_lc, 'overlay2_override_kernel_check' => overlay2_override_kernel_check, - 'package_ce_key_id' => package_ce_key_id, 'package_ce_key_source' => package_ce_key_source, 'package_ce_release' => package_ce_release, 'package_ce_repos' => package_ce_repos, 'package_ce_source_location' => package_ce_source_location, - 'package_ee_key_id' => package_ee_key_id, 'package_ee_key_source' => package_ee_key_source, 'package_ee_package_name' => package_ee_package_name, 'package_ee_release' => package_ee_release, @@ -412,8 +403,9 @@ def get_defaults(_facts) 'package_ee_source_location' => package_ee_source_location, 'package_ensure' => package_ensure, 'package_key_check_source' => package_key_check_source, - 'package_key_id' => package_key_id, 'package_key_source' => package_key_source, + 'package_key_name' => package_key_name, + 'package_key_path' => package_key_path, 'package_name' => package_name, 'package_release' => package_release, 'package_repos' => package_repos, diff --git a/spec/helper/get_values_init.rb b/spec/helper/get_values_init.rb index c35b21f9..536b6e0e 100644 --- a/spec/helper/get_values_init.rb +++ b/spec/helper/get_values_init.rb @@ -6,7 +6,8 @@ def get_values_init(_params, _facts) package_location = _params['docker_ee_source_location'] package_key_source = _params['docker_ee_key_source'] package_key_check_source = true - package_key = _params['docker_ee_key_id'] + package_key_name = _params['docker_package_key_name'] + package_key_path = _params['docker_package_key_path'] package_repos = _params['docker_ee_repos'] release = _params['docker_ee_release'] docker_start_command = _params['docker_ee_start_command'] @@ -16,7 +17,8 @@ def get_values_init(_params, _facts) when 'Debian' package_location = _params['docker_ce_source_location'] package_key_source = _params['docker_ce_key_source'] - package_key = _params['docker_ce_key_id'] + package_key_name = _params['docker_package_key_name'] + package_key_path = _params['docker_package_key_path'] package_repos = _params['docker_ce_channel'] release = _params['docker_ce_release'] when 'RedHat' @@ -40,9 +42,10 @@ def get_values_init(_params, _facts) package_key_check_source = _params['docker_package_key_check_source'] case _facts[:os]['family'] when 'Debian' - package_key = _params['docker_package_key_id'] - package_repos = 'main' - release = _params['docker_package_release'] + package_key_name = _params['docker_package_key_name'] + package_key_path = _params['docker_package_key_path'] + package_repos = 'main' + release = _params['docker_package_release'] end docker_start_command = _params['docker_engine_start_command'] @@ -58,7 +61,8 @@ def get_values_init(_params, _facts) { 'docker_package_name' => docker_package_name, 'docker_start_command' => docker_start_command, - 'package_key' => package_key, + 'package_key_name' => package_key_name, + 'package_key_path' => package_key_path, 'package_key_check_source' => package_key_check_source, 'package_key_source' => package_key_source, 'package_location' => package_location, diff --git a/spec/shared_examples/repos.rb b/spec/shared_examples/repos.rb index 8330f8ee..def1116b 100644 --- a/spec/shared_examples/repos.rb +++ b/spec/shared_examples/repos.rb @@ -23,23 +23,29 @@ case facts[:os]['family'] when 'Debian' release = values['release'] - package_key = values['package_key'] package_repos = values['package_repos'] + key_name = values['package_key_name'] + key_path = values['package_key_path'] if params['use_upstream_package_source'] it { + expect(subject).to contain_apt__keyring(key_name).with( + 'ensure' => 'present', + 'source' => key_source, + 'dir' => key_path, + ) + expect(subject).to contain_apt__source('docker').with( + 'ensure' => 'present', 'location' => location, 'architecture' => architecture, 'release' => release, 'repos' => package_repos, - 'key' => { - 'id' => package_key, - 'source' => key_source - }, 'include' => { 'src' => false }, + 'keyring' => "#{key_path}/#{key_name}", + 'require' => "Apt::Keyring[#{key_name}]" ) }