Skip to content

Commit 5b6578d

Browse files
committed
Use GPG key signing
1 parent bfbf810 commit 5b6578d

File tree

2 files changed

+31
-11
lines changed

2 files changed

+31
-11
lines changed

manifests/repos.pp

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -71,17 +71,37 @@
7171
}
7272
case $facts['os']['family'] {
7373
'Debian': {
74-
$codename = fact('os.distro.codename')
75-
apt::source { 'kubernetes':
76-
location => pick($kubernetes_apt_location,"https://pkgs.k8s.io/core:/stable:/v${minor_version}/deb"),
77-
release => pick($kubernetes_apt_release, '/'),
78-
repos => $_repos,
79-
key => {
80-
'id' => pick($kubernetes_key_id,'DE15B14486CD377B9E876E1A234654DA9A296436'),
81-
'source' => pick($kubernetes_key_source,"https://pkgs.k8s.io/core:/stable:/v${minor_version}/deb/Release.key"),
82-
},
74+
if $kubernetes_apt_location =~ String[1] {
75+
apt::source { 'kubernetes':
76+
location => pick($kubernetes_apt_location,"https://pkgs.k8s.io/core:/stable:/v${minor_version}/deb"),
77+
release => pick($kubernetes_apt_release, '/'),
78+
repos => $_repos,
79+
key => {
80+
'id' => $kubernetes_key_id,
81+
'source' => $kubernetes_key_source,
82+
},
83+
}
84+
} else {
85+
# For pkgs.k8s.io use GPG siging key
86+
$_keyring = '/etc/apt/keyrings/kubernetes-apt-keyring.gpg'
87+
archive { '/tmp/kubernetes-apt-keyring.gpg':
88+
source => "https://pkgs.k8s.io/core:/stable:/v${minor_version}/deb/Release.key",
89+
extract => true,
90+
extract_path => '/etc/apt/keyrings/',
91+
extract_command => 'gpg --dearmor < %s > kubernetes-apt-keyring.gpg',
92+
creates => $_keyring,
93+
}
94+
95+
apt::source { 'kubernetes':
96+
location => pick($kubernetes_apt_location,"https://pkgs.k8s.io/core:/stable:/v${minor_version}/deb"),
97+
release => pick($kubernetes_apt_release, '/'),
98+
repos => $_repos,
99+
keyring => $_keyring,
100+
require => Archive['/tmp/kubernetes-apt-keyring.gpg'],
101+
}
83102
}
84103

104+
$codename = fact('os.distro.codename')
85105
if ($container_runtime == 'docker' and $manage_docker == true) or
86106
($container_runtime == 'cri_containerd' and $containerd_install_method == 'package') {
87107
apt::source { 'docker':

spec/classes/repos_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,13 @@
4848
ensure: 'present',
4949
location: 'https://pkgs.k8s.io/core:/stable:/v1.28/deb',
5050
release: '/',
51-
key: { 'id' => 'DE15B14486CD377B9E876E1A234654DA9A296436', 'source' => 'https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key' },
51+
keyring: '/etc/apt/keyrings/kubernetes-apt-keyring.gpg',
5252
)
5353
}
5454

5555
it {
5656
expect(subject).to contain_file('/etc/apt/sources.list.d/kubernetes.list')
57-
.with_content(%r{^deb https://pkgs.k8s.io/core:/stable:/v1.28/deb /\s$})
57+
.with_content(%r{^deb \[signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg\] https://pkgs.k8s.io/core:/stable:/v1.28/deb /\s$})
5858
}
5959

6060
it {

0 commit comments

Comments
 (0)