Skip to content

Commit 19bfbd8

Browse files
authored
Merge pull request #694 from span786/CAT-2193-fix-puppetlabs-kubernetes-nightly-for-debian
(CAT-2193): Fixed kubernetes environment setup for Debian.
2 parents 689d78b + 0cc4f36 commit 19bfbd8

File tree

11 files changed

+228
-113
lines changed

11 files changed

+228
-113
lines changed

.github/workflows/ci.yml

+1-1
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

+1-1
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

data/os/debian.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
kubernetes::kubernetes_apt_location: 'https://pkgs.k8s.io/core:/stable:'
2+
kubernetes::docker_apt_location: 'https://download.docker.com/linux'

data/os/rhel.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
kubernetes::kubernetes_yum_baseurl: 'https://pkgs.k8s.io/core:/stable:'
2+
kubernetes::docker_yum_baseurl: 'https://download.docker.com/linux'

manifests/init.pp

+3-3
Original file line numberDiff line numberDiff line change
@@ -604,14 +604,14 @@
604604
#
605605
#
606606
class kubernetes (
607-
String $kubernetes_version = '1.10.2',
607+
String $kubernetes_version = '1.32.0',
608608
String $kubernetes_cluster_name = 'kubernetes',
609609
String $kubernetes_package_version = $facts['os']['family'] ? {
610610
'Debian' => "${kubernetes_version}-00",
611611
'RedHat' => $kubernetes::kubernetes_version,
612612
},
613613
String $container_runtime = 'docker',
614-
String $containerd_version = '1.4.3',
614+
String $containerd_version = '1.6.12',
615615
Enum['archive','package'] $containerd_install_method = 'archive',
616616
String $containerd_package_name = 'containerd.io',
617617
String $docker_package_name = 'docker-engine',
@@ -625,7 +625,7 @@
625625
Boolean $manage_etcd = true,
626626
Integer $kube_api_bind_port = 6443,
627627
Optional[String] $kube_api_advertise_address = undef,
628-
String $etcd_version = '3.2.18',
628+
String $etcd_version = '3.4.13',
629629
Optional[String] $etcd_hostname = $facts['networking']['hostname'],
630630
String $etcd_data_dir = '/var/lib/etcd',
631631
Optional[String] $etcd_ip = undef,

manifests/repos.pp

+17-13
Original file line numberDiff line numberDiff line change
@@ -58,30 +58,33 @@
5858
Boolean $manage_docker = $kubernetes::manage_docker,
5959
Boolean $create_repos = $kubernetes::create_repos,
6060

61-
) {
61+
) inherits kubernetes {
6262
if $create_repos {
63+
$k8s_core_package_version = kubernetes::kubernetes_version.split('.')[0,1].join('.')
6364
case $facts['os']['family'] {
6465
'Debian': {
6566
$codename = fact('os.distro.codename')
67+
$k8s_apt_location = "${kubernetes::kubernetes_apt_location}/v${k8s_core_package_version}"
6668
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'),
69+
location => pick($kubernetes_apt_location, "${k8s_apt_location}/deb/"),
70+
repos => pick($kubernetes_apt_repos, ' '),
71+
release => pick($kubernetes_apt_release, ' /'),
72+
comment => 'Kubernetes',
7073
key => {
71-
'id' => pick($kubernetes_key_id, 'A362B822F6DEDC652817EA46B53DC80D13EDEF05'),
72-
'source' => pick($kubernetes_key_source, 'https://packages.cloud.google.com/apt/doc/apt-key.gpg'),
74+
'name' => 'kubernetes-apt-keyring.gpg',
75+
'source' => pick($kubernetes_key_source, "${$k8s_apt_location}/deb/Release.key"),
7376
},
7477
}
7578

7679
if ($container_runtime == 'docker' and $manage_docker == true) or
7780
($container_runtime == 'cri_containerd' and $containerd_install_method == 'package') {
7881
apt::source { 'docker':
79-
location => pick($docker_apt_location, 'https://download.docker.com/linux/ubuntu/'),
82+
location => pick($docker_apt_location, "${$kubernetes::docker_apt_location}/debian/"),
8083
repos => pick($docker_apt_repos, 'stable'),
81-
release => pick($docker_apt_release,$codename),
84+
release => pick($docker_apt_release, $codename),
8285
key => {
8386
'id' => pick($docker_key_id, '9DC858229FC7DD38854AE2D88D81803C0EBFCD88'),
84-
'source' => pick($docker_key_source, 'https://download.docker.com/linux/ubuntu/gpg'),
87+
'source' => pick($docker_key_source, "${$kubernetes::docker_apt_location}/debian/gpg"),
8588
},
8689
}
8790
}
@@ -91,16 +94,17 @@
9194
($container_runtime == 'cri_containerd' and $containerd_install_method == 'package') {
9295
yumrepo { 'docker':
9396
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'),
97+
baseurl => pick($docker_yum_baseurl, "${kubernetes::docker_yum_baseurl}/rhel/8/x86_64/stable/"),
98+
gpgkey => pick($docker_yum_gpgkey, "${kubernetes::docker_yum_baseurl}/rhel/gpg"),
9699
gpgcheck => true,
97100
}
98101
}
99102

103+
$k8s_yum_location = "${kubernetes::kubernetes_yum_baseurl}/v${k8s_core_package_version}"
100104
yumrepo { 'kubernetes':
101105
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'),
106+
baseurl => pick($kubernetes_yum_baseurl, "${k8s_yum_location}/rpm/"),
107+
gpgkey => pick($kubernetes_yum_gpgkey, "${k8s_yum_location}/rpm/repodata/repomd.xml.key"),
104108
gpgcheck => true,
105109
}
106110
}

spec/acceptance/kubernetes_spec.rb

+14-6
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/config/kubeadm_spec.rb

-3
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@
5959
it { is_expected.not_to contain_file('/etc/default/etcd') }
6060
it { is_expected.to contain_file('/etc/kubernetes/config.yaml') }
6161
it { is_expected.to contain_file('/etc/kubernetes/config.yaml').with_content(%r{foo:\n- bar\n- baz}) }
62-
it { is_expected.to contain_file('/etc/kubernetes/config.yaml').with_content(%r{kubeletConfiguration:\n baseConfig:\n baz:\n - bar\n - foo}) }
6362

6463
context 'with etcd_listen_metric_urls defined' do
6564
let(:params) do
@@ -113,7 +112,6 @@
113112
it { is_expected.not_to contain_file('/etc/default/etcd') }
114113
it { is_expected.to contain_file('/etc/kubernetes/config.yaml') }
115114
it { is_expected.to contain_file('/etc/kubernetes/config.yaml').with_content(%r{foo:\n- bar\n- baz}) }
116-
it { is_expected.to contain_file('/etc/kubernetes/config.yaml').with_content(%r{kubeletConfiguration:\n baseConfig:\n baz:\n - bar\n - foo}) }
117115
end
118116

119117
context 'with manage_etcd => false' do
@@ -146,7 +144,6 @@
146144
it { is_expected.not_to contain_file('/etc/default/etcd') }
147145
it { is_expected.to contain_file('/etc/kubernetes/config.yaml') }
148146
it { is_expected.to contain_file('/etc/kubernetes/config.yaml').with_content(%r{foo:\n- bar\n- baz}) }
149-
it { is_expected.to contain_file('/etc/kubernetes/config.yaml').with_content(%r{kubeletConfiguration:\n baseConfig:\n baz:\n - bar\n - foo}) }
150147
end
151148

152149
context 'manage_etcd => true and etcd_install_method => package' do

spec/classes/init_spec.rb

+2-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@
4444
context 'with worker => true and version => 1.10.2' do
4545
let(:params) do
4646
{
47-
worker: true
47+
worker: true,
48+
kubernetes_version: '1.10.2'
4849
}
4950
end
5051

spec/classes/repos_spec.rb

+28-28
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)