Skip to content

Commit 23c6ced

Browse files
committed
Use GPG key signing
1 parent 9bc2c68 commit 23c6ced

File tree

2 files changed

+29
-7
lines changed

2 files changed

+29
-7
lines changed

manifests/repos.pp

+27-5
Original file line numberDiff line numberDiff line change
@@ -71,17 +71,39 @@
7171
}
7272
case $facts['os']['family'] {
7373
'Debian': {
74-
$codename = fact('os.distro.codename')
7574
apt::source { 'kubernetes':
7675
location => pick($kubernetes_apt_location,"https://pkgs.k8s.io/core:/stable:/v${minor_version}/deb"),
7776
release => pick($kubernetes_apt_release, '/'),
7877
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-
},
8378
}
8479

80+
if $kubernetes_apt_location =~ String[1] {
81+
Apt::Source<| title == 'kubernetes' |> {
82+
key => {
83+
'id' => $kubernetes_key_id,
84+
'source' => $kubernetes_key_source,
85+
}
86+
}
87+
} else {
88+
# For pkgs.k8s.io use GPG siging key
89+
$_keyring = '/usr/share/keyrings/kubernetes-apt-keyring.gpg'
90+
# TODO: Switch to apt::keyring once supported by puppetlabs-apt
91+
# see: https://github.com/puppetlabs/puppetlabs-apt/pull/1128
92+
archive { '/tmp/kubernetes-apt-keyring.gpg':
93+
source => "https://pkgs.k8s.io/core:/stable:/v${minor_version}/deb/Release.key",
94+
extract => true,
95+
extract_path => '/usr/share/keyrings',
96+
extract_command => 'gpg --dearmor < %s > kubernetes-apt-keyring.gpg',
97+
creates => $_keyring,
98+
}
99+
100+
Apt::Source<| title == 'kubernetes' |> {
101+
keyring => $_keyring,
102+
require => Archive['/tmp/kubernetes-apt-keyring.gpg'],
103+
}
104+
}
105+
106+
$codename = fact('os.distro.codename')
85107
if ($container_runtime == 'docker' and $manage_docker == true) or
86108
($container_runtime == 'cri_containerd' and $containerd_install_method == 'package') {
87109
apt::source { 'docker':

spec/classes/repos_spec.rb

+2-2
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: '/usr/share/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=/usr/share/keyrings/kubernetes-apt-keyring.gpg\] https://pkgs.k8s.io/core:/stable:/v1.28/deb /\s$})
5858
}
5959

6060
it {

0 commit comments

Comments
 (0)