From ea8fd90f4faa539f4472dbc26687b1cd06d6e3ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Couralet?= Date: Thu, 18 Feb 2021 08:38:04 +0100 Subject: [PATCH] Add parameters to `apt::source` to avoid requiring an internet connexion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Cedric Couralet Signed-off-by: Cédric Couralet --- manifests/init.pp | 40 +++++++++++++------------- manifests/repo.pp | 1 - spec/classes/gitlab_ci_runner_spec.rb | 41 +++++++++++++++++++++++++-- 3 files changed, 59 insertions(+), 23 deletions(-) diff --git a/manifests/init.pp b/manifests/init.pp index 3d65137..e048de5 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -54,26 +54,26 @@ # The path to the config file of Gitlab runner. # class gitlab_ci_runner ( - String $xz_package_name, # Defaults in module hieradata - Hash $runners = {}, - Hash $runner_defaults = {}, - Optional[Integer] $concurrent = undef, - Optional[Integer] $check_interval = undef, - Optional[String] $builds_dir = undef, - Optional[String] $cache_dir = undef, - Optional[Pattern[/.*:.+/]] $metrics_server = undef, - Optional[Pattern[/.*:.+/]] $listen_address = undef, - Optional[String] $sentry_dsn = undef, - Boolean $manage_docker = false, - Boolean $manage_repo = true, - String $package_ensure = installed, - String $package_name = 'gitlab-runner', - Stdlib::HTTPUrl $repo_base_url = 'https://packages.gitlab.com', - Optional[Stdlib::Fqdn] $repo_keyserver = undef, - Optional[String] $repo_keycontent = undef, - Optional[Pattern[/\Ahttps?:\/\//, /\Aftp:\/\//, /\A\/\w+/]] $repo_keysource = undef, - Boolean $repo_keyweak_ssl = false, - String $config_path = '/etc/gitlab-runner/config.toml', + String $xz_package_name, # Defaults in module hieradata + Hash $runners = {}, + Hash $runner_defaults = {}, + Optional[Integer] $concurrent = undef, + Optional[Integer] $check_interval = undef, + Optional[String] $builds_dir = undef, + Optional[String] $cache_dir = undef, + Optional[Pattern[/.*:.+/]] $metrics_server = undef, + Optional[Pattern[/.*:.+/]] $listen_address = undef, + Optional[String] $sentry_dsn = undef, + Boolean $manage_docker = false, + Boolean $manage_repo = true, + String $package_ensure = installed, + String $package_name = 'gitlab-runner', + Stdlib::HTTPUrl $repo_base_url = 'https://packages.gitlab.com', + Optional[Stdlib::Fqdn] $repo_keyserver = undef, + Optional[String] $repo_keycontent = undef, + Optional[Pattern[/\Ahttps?:\/\//, /\Aftp:\/\//, /\A\/\w+/]] $repo_keysource = undef, + Boolean $repo_keyweak_ssl = false, + String $config_path = '/etc/gitlab-runner/config.toml', ) { if $manage_docker { # workaround for cirunner issue #1617 diff --git a/manifests/repo.pp b/manifests/repo.pp index 58d4611..6d59c51 100644 --- a/manifests/repo.pp +++ b/manifests/repo.pp @@ -5,7 +5,6 @@ class gitlab_ci_runner::repo ( $repo_base_url = $gitlab_ci_runner::repo_base_url, $repo_keyserver = $gitlab_ci_runner::repo_keyserver, - $repo_keyid = $gitlab_ci_runner::repo_keyid, $repo_keycontent = $gitlab_ci_runner::repo_keycontent, $repo_keysource = $gitlab_ci_runner::repo_keysource, $repo_keyweak_ssl = $gitlab_ci_runner::repo_keyweak_ssl, diff --git a/spec/classes/gitlab_ci_runner_spec.rb b/spec/classes/gitlab_ci_runner_spec.rb index 3991311..696d651 100644 --- a/spec/classes/gitlab_ci_runner_spec.rb +++ b/spec/classes/gitlab_ci_runner_spec.rb @@ -230,7 +230,10 @@ repos: 'main', key: { 'id' => 'F6403F6544A38863DAA0B6E03F01618A51312F3F', - 'server' => undef_value + 'server' => undef_value, + 'content' => undef_value, + 'source' => undef_value, + 'weak_ssl' => false, }, include: { 'src' => false, @@ -294,7 +297,41 @@ it { is_expected.to contain_class('gitlab_ci_runner::repo') } it do - is_expected.to contain_apt__source('apt_gitlabci').with_key('id' => 'F6403F6544A38863DAA0B6E03F01618A51312F3F', 'server' => 'keys.gnupg.net') + is_expected.to contain_apt__source('apt_gitlabci').with_key('id' => 'F6403F6544A38863DAA0B6E03F01618A51312F3F', 'server' => 'keys.gnupg.net', 'content' => undef_value, 'source' => undef_value, 'weak_ssl' => false) + end + end + end + if facts[:os]['family'] == 'Debian' + context 'with manage_repo => true and repo_keysource => http://path.to/gpg.key' do + let(:params) do + super().merge( + manage_repo: true, + repo_keysource: 'http://path.to/gpg.key' + ) + end + + it { is_expected.to compile } + it { is_expected.to contain_class('gitlab_ci_runner::repo') } + + it do + is_expected.to contain_apt__source('apt_gitlabci').with_key('id' => 'F6403F6544A38863DAA0B6E03F01618A51312F3F', "server"=> undef_value, "content"=> undef_value, 'source' => 'http://path.to/gpg.key', 'weak_ssl' => false) + end + end + end + if facts[:os]['family'] == 'Debian' + context 'with manage_repo => true and repo_keycontent => "somebase64encodedContent"' do + let(:params) do + super().merge( + manage_repo: true, + repo_keycontent: 'somebase64encodedContent' + ) + end + + it { is_expected.to compile } + it { is_expected.to contain_class('gitlab_ci_runner::repo') } + + it do + is_expected.to contain_apt__source('apt_gitlabci').with_key('id' => 'F6403F6544A38863DAA0B6E03F01618A51312F3F', "server"=> undef_value, 'content' => 'somebase64encodedContent','source' => undef_value, 'weak_ssl' => false) end end end