Skip to content

Commit 8279434

Browse files
committed
(CAT-2193): Fixed kubernetes environment setup for Debian. This allows spec tests to run successfully for debian platform
1 parent 689d78b commit 8279434

File tree

7 files changed

+239
-107
lines changed

7 files changed

+239
-107
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
runs-on: ubuntu-20.04
1717
strategy:
1818
fail-fast: false
19-
matrix: {'platform':['rhel-8'],'collection':['puppet7-nightly', 'puppet8-nightly']}
19+
matrix: {'platform':['rhel-8', 'debian-11'],'collection':['puppet7-nightly', 'puppet8-nightly']}
2020

2121
steps:
2222
- name: Checkout Source

.github/workflows/nightly.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
runs-on: ubuntu-20.04
1515
strategy:
1616
fail-fast: false
17-
matrix: {'platform':['rhel-8'],'collection':['puppet7-nightly', 'puppet8-nightly']}
17+
matrix: {'platform':['rhel-8', 'debian-11'],'collection':['puppet7-nightly', 'puppet8-nightly']}
1818

1919
steps:
2020
- name: Checkout Source

manifests/params.pp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# @summary Provides defaults for the Kubernetes module parameters
2+
#
3+
# @api private
4+
#
5+
class kubernetes::params {
6+
$k8s_core_package_version = '1.32'
7+
$k8s_default_url = 'https://pkgs.k8s.io/core:/stable:'
8+
$docker_default_url = 'https://download.docker.com/linux'
9+
10+
# Debian - Default values for the Kubernetes and Docker repositories
11+
$k8s_default_apt_location = "${k8s_default_url}/v${k8s_core_package_version}/deb"
12+
$k8s_default_apt_repos = ' '
13+
$k8s_default_apt_release = ' /'
14+
$docker_default_apt_location = "${docker_default_url}/debian"
15+
$docker_default_apt_repos = 'stable'
16+
17+
# RedHat - Default values for the Kubernetes and Docker repositories
18+
$k8s_default_yum_baseurl = "${k8s_default_url}/v${k8s_core_package_version}/rpm"
19+
$k8s_default_yum_gpgkey = "${k8s_default_yum_baseurl}/repodata/repomd.xml.key"
20+
$docker_default_yum_baseurl = "${docker_default_url}/rhel/8/x86_64/stable/"
21+
$docker_default_yum_gpgkey = "${docker_default_url}/rhel/gpg"
22+
}

manifests/repos.pp

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -58,30 +58,31 @@
5858
Boolean $manage_docker = $kubernetes::manage_docker,
5959
Boolean $create_repos = $kubernetes::create_repos,
6060

61-
) {
61+
) inherits kubernetes::params {
6262
if $create_repos {
6363
case $facts['os']['family'] {
6464
'Debian': {
6565
$codename = fact('os.distro.codename')
6666
apt::source { 'kubernetes':
67-
location => pick($kubernetes_apt_location, 'https://apt.kubernetes.io'),
68-
repos => pick($kubernetes_apt_repos, 'main'),
69-
release => pick($kubernetes_apt_release, 'kubernetes-xenial'),
67+
location => pick($kubernetes_apt_location, kubernetes::params::k8s_default_apt_location),
68+
repos => pick($kubernetes_apt_repos, kubernetes::params::k8s_default_apt_repos),
69+
release => pick($kubernetes_apt_release, kubernetes::params::k8s_default_apt_release),
70+
comment => 'Kubernetes',
7071
key => {
71-
'id' => pick($kubernetes_key_id, 'A362B822F6DEDC652817EA46B53DC80D13EDEF05'),
72-
'source' => pick($kubernetes_key_source, 'https://packages.cloud.google.com/apt/doc/apt-key.gpg'),
72+
'name' => 'kubernetes-apt-keyring.gpg',
73+
'source' => pick($kubernetes_key_source, "${kubernetes::params::k8s_default_apt_location}/Release.key"),
7374
},
7475
}
7576

7677
if ($container_runtime == 'docker' and $manage_docker == true) or
7778
($container_runtime == 'cri_containerd' and $containerd_install_method == 'package') {
7879
apt::source { 'docker':
79-
location => pick($docker_apt_location, 'https://download.docker.com/linux/ubuntu/'),
80-
repos => pick($docker_apt_repos, 'stable'),
81-
release => pick($docker_apt_release,$codename),
80+
location => pick($docker_apt_location, kubernetes::params::docker_default_apt_location),
81+
repos => pick($docker_apt_repos, kubernetes::params::docker_default_apt_repos),
82+
release => pick($docker_apt_release, $codename),
8283
key => {
8384
'id' => pick($docker_key_id, '9DC858229FC7DD38854AE2D88D81803C0EBFCD88'),
84-
'source' => pick($docker_key_source, 'https://download.docker.com/linux/ubuntu/gpg'),
85+
'source' => pick($docker_key_source, "${kubernetes::params::docker_default_apt_location}/gpg"),
8586
},
8687
}
8788
}
@@ -91,16 +92,16 @@
9192
($container_runtime == 'cri_containerd' and $containerd_install_method == 'package') {
9293
yumrepo { 'docker':
9394
descr => 'docker',
94-
baseurl => pick($docker_yum_baseurl, 'https://download.docker.com/linux/centos/7/x86_64/stable'),
95-
gpgkey => pick($docker_yum_gpgkey, 'https://download.docker.com/linux/centos/gpg'),
95+
baseurl => pick($docker_yum_baseurl, kubernetes::params::docker_default_yum_baseurl),
96+
gpgkey => pick($docker_yum_gpgkey, kubernetes::params::docker_default_yum_gpgkey),
9697
gpgcheck => true,
9798
}
9899
}
99100

100101
yumrepo { 'kubernetes':
101102
descr => 'Kubernetes',
102-
baseurl => pick($kubernetes_yum_baseurl, 'https://pkgs.k8s.io/core:/stable:/v1.28/rpm/'),
103-
gpgkey => pick($kubernetes_yum_gpgkey, 'https://pkgs.k8s.io/core:/stable:/v1.28/rpm/repodata/repomd.xml.key'),
103+
baseurl => pick($kubernetes_yum_baseurl, kubernetes::params::k8s_default_yum_baseurl),
104+
gpgkey => pick($kubernetes_yum_gpgkey, kubernetes::params::k8s_default_yum_gpgkey),
104105
gpgcheck => true,
105106
}
106107
}

spec/acceptance/kubernetes_spec.rb

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
class {'kubernetes':
1919
kubernetes_version => '1.28.15',
2020
kubernetes_package_version => '1.28.15',
21+
kubernetes_yum_baseurl => 'https://pkgs.k8s.io/core:/stable:/v1.28/rpm/',
22+
kubernetes_yum_gpgkey => 'https://pkgs.k8s.io/core:/stable:/v1.28/rpm/repodata/repomd.xml.key',
2123
controller_address => "#{int_ipaddr1}:6443",
2224
container_runtime => 'docker',
2325
manage_docker => false,
@@ -30,12 +32,18 @@ class {'kubernetes':
3032
}
3133
}
3234
/^(Debian|Ubuntu)$/: {
33-
class {'kubernetes':
34-
controller => true,
35-
schedule_on_controller => true,
36-
environment => ['HOME=/root', 'KUBECONFIG=/etc/kubernetes/admin.conf'],
37-
ignore_preflight_errors => ['NumCPU'],
38-
}
35+
class {'kubernetes':
36+
kubernetes_version => '1.28.15',
37+
kubernetes_package_version => '1.28.15-1.1',
38+
kubernetes_apt_location => 'https://pkgs.k8s.io/core:/stable:/v1.28/deb/',
39+
kubernetes_apt_repos => ' ',
40+
kubernetes_apt_release => ' /',
41+
kubernetes_key_source => 'https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key',
42+
controller => true,
43+
schedule_on_controller => true,
44+
environment => ['HOME=/root', 'KUBECONFIG=/etc/kubernetes/admin.conf'],
45+
ignore_preflight_errors => ['NumCPU','ExternalEtcdVersion'],
46+
}
3947
}
4048
default: {
4149
class {'kubernetes': } # any other OS are not supported

spec/classes/repos_spec.rb

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,20 @@
2222
let(:params) do
2323
{
2424
'container_runtime' => 'docker',
25-
'kubernetes_apt_location' => 'http://apt.kubernetes.io',
26-
'kubernetes_apt_release' => 'kubernetes-xenial',
27-
'kubernetes_apt_repos' => 'main',
25+
'kubernetes_apt_location' => 'https://pkgs.k8s.io/core:/stable:/v1.32/deb/',
26+
'kubernetes_apt_release' => ' /',
27+
'kubernetes_apt_repos' => ' ',
2828
'kubernetes_key_id' => '54A647F9048D5688D7DA2ABE6A030B21BA07F4FB',
29-
'kubernetes_key_source' => 'https://packages.cloud.google.com/apt/doc/apt-key.gpg',
29+
'kubernetes_key_source' => 'https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key',
3030
'kubernetes_yum_baseurl' => 'https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64',
3131
'kubernetes_yum_gpgkey' => 'https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg',
32-
'docker_apt_location' => 'https://download.docker.com/linux/ubuntu',
32+
'docker_apt_location' => 'https://download.docker.com/linux/debian',
3333
'docker_apt_release' => 'xenial',
3434
'docker_apt_repos' => 'main',
35-
'docker_yum_baseurl' => 'https://download.docker.com/linux/centos/7/x86_64/stable',
36-
'docker_yum_gpgkey' => 'https://download.docker.com/linux/centos/gpg',
35+
'docker_yum_baseurl' => 'https://download.docker.com/linux/rhel/8/x86_64/stable',
36+
'docker_yum_gpgkey' => 'https://download.docker.com/linux/rhel/gpg',
3737
'docker_key_id' => '9DC858229FC7DD38854AE2D88D81803C0EBFCD88',
38-
'docker_key_source' => 'https://download.docker.com/linux/ubuntu/gpg',
38+
'docker_key_source' => 'https://download.docker.com/linux/debian/gpg',
3939
'containerd_install_method' => 'archive',
4040
'create_repos' => true,
4141
'manage_docker' => true
@@ -45,20 +45,20 @@
4545
it {
4646
expect(subject).to contain_apt__source('kubernetes').with(
4747
ensure: 'present',
48-
location: 'http://apt.kubernetes.io',
49-
repos: 'main',
50-
release: 'kubernetes-xenial',
51-
key: { 'id' => '54A647F9048D5688D7DA2ABE6A030B21BA07F4FB', 'source' => 'https://packages.cloud.google.com/apt/doc/apt-key.gpg' },
48+
location: 'https://pkgs.k8s.io/core:/stable:/v1.32/deb/',
49+
repos: ' ',
50+
release: ' /',
51+
key: { 'name' => 'kubernetes-apt-keyring.gpg', 'source' => 'https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key' },
5252
)
5353
}
5454

5555
it {
5656
expect(subject).to contain_apt__source('docker').with(
5757
ensure: 'present',
58-
location: 'https://download.docker.com/linux/ubuntu',
58+
location: 'https://download.docker.com/linux/debian',
5959
repos: 'main',
6060
release: 'xenial',
61-
key: { 'id' => '9DC858229FC7DD38854AE2D88D81803C0EBFCD88', 'source' => 'https://download.docker.com/linux/ubuntu/gpg' },
61+
key: { 'id' => '9DC858229FC7DD38854AE2D88D81803C0EBFCD88', 'source' => 'https://download.docker.com/linux/debian/gpg' },
6262
)
6363
}
6464
end
@@ -83,20 +83,20 @@
8383
let(:params) do
8484
{
8585
'container_runtime' => 'cri_containerd',
86-
'kubernetes_apt_location' => 'http://apt.kubernetes.io',
87-
'kubernetes_apt_release' => 'kubernetes-xenial',
88-
'kubernetes_apt_repos' => 'main',
86+
'kubernetes_apt_location' => 'https://pkgs.k8s.io/core:/stable:/v1.32/deb/',
87+
'kubernetes_apt_release' => ' /',
88+
'kubernetes_apt_repos' => ' ',
8989
'kubernetes_key_id' => '54A647F9048D5688D7DA2ABE6A030B21BA07F4FB',
90-
'kubernetes_key_source' => 'https://packages.cloud.google.com/apt/doc/apt-key.gpg',
90+
'kubernetes_key_source' => 'https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key',
9191
'kubernetes_yum_baseurl' => 'https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64',
9292
'kubernetes_yum_gpgkey' => 'https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg',
93-
'docker_apt_location' => 'https://download.docker.com/linux/ubuntu',
93+
'docker_apt_location' => 'https://download.docker.com/linux/debian',
9494
'docker_apt_release' => 'xenial',
9595
'docker_apt_repos' => 'main',
96-
'docker_yum_baseurl' => 'https://download.docker.com/linux/centos/7/x86_64/stable',
97-
'docker_yum_gpgkey' => 'https://download.docker.com/linux/centos/gpg',
96+
'docker_yum_baseurl' => 'https://download.docker.com/linux/rhel/8/x86_64/stable',
97+
'docker_yum_gpgkey' => 'https://download.docker.com/linux/rhel/gpg',
9898
'docker_key_id' => '9DC858229FC7DD38854AE2D88D81803C0EBFCD88',
99-
'docker_key_source' => 'https://download.docker.com/linux/ubuntu/gpg',
99+
'docker_key_source' => 'https://download.docker.com/linux/debian/gpg',
100100
'containerd_install_method' => 'package',
101101
'create_repos' => true,
102102
'manage_docker' => true
@@ -106,20 +106,20 @@
106106
it {
107107
expect(subject).to contain_apt__source('kubernetes').with(
108108
ensure: 'present',
109-
location: 'http://apt.kubernetes.io',
110-
repos: 'main',
111-
release: 'kubernetes-xenial',
112-
key: { 'id' => '54A647F9048D5688D7DA2ABE6A030B21BA07F4FB', 'source' => 'https://packages.cloud.google.com/apt/doc/apt-key.gpg' },
109+
location: 'https://pkgs.k8s.io/core:/stable:/v1.32/deb/',
110+
repos: ' ',
111+
release: ' /',
112+
key: { 'name' => 'kubernetes-apt-keyring.gpg', 'source' => 'https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key' },
113113
)
114114
}
115115

116116
it {
117117
expect(subject).to contain_apt__source('docker').with(
118118
ensure: 'present',
119-
location: 'https://download.docker.com/linux/ubuntu',
119+
location: 'https://download.docker.com/linux/debian',
120120
repos: 'main',
121121
release: 'xenial',
122-
key: { 'id' => '9DC858229FC7DD38854AE2D88D81803C0EBFCD88', 'source' => 'https://download.docker.com/linux/ubuntu/gpg' },
122+
key: { 'id' => '9DC858229FC7DD38854AE2D88D81803C0EBFCD88', 'source' => 'https://download.docker.com/linux/debian/gpg' },
123123
)
124124
}
125125
end

0 commit comments

Comments
 (0)