Skip to content

Commit

Permalink
Merge pull request #657 from mlibrary/k8s-repos
Browse files Browse the repository at this point in the history
kubernetes apt repos moved
  • Loading branch information
rrotter authored Feb 5, 2024
2 parents ae40abc + 725389c commit cdc1885
Show file tree
Hide file tree
Showing 8 changed files with 73 additions and 27 deletions.
14 changes: 5 additions & 9 deletions manifests/profile/kubernetes/apt.pp
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
# Copyright (c) 2020 The Regents of the University of Michigan.
# All Rights Reserved. Licensed according to the terms of the Revised
# BSD License. See LICENSE.txt for details.

class nebula::profile::kubernetes::apt {
apt::source { 'kubernetes':
location => 'https://apt.kubernetes.io/',
release => 'kubernetes-xenial',
repos => 'main',
location => 'https://pkgs.k8s.io/core:/stable:/v1.28/deb/',
release => '/',
repos => '',
key => {
'id' => 'A362B822F6DEDC652817EA46B53DC80D13EDEF05',
'source' => 'https://packages.cloud.google.com/apt/doc/apt-key.gpg',
'id' => 'DE15B14486CD377B9E876E1A234654DA9A296436',
'source' => 'https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key',
},
}
}
22 changes: 19 additions & 3 deletions manifests/profile/kubernetes/kubeadm.pp
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,32 @@
$cluster_name = lookup('nebula::profile::kubernetes::cluster')
$cluster = lookup('nebula::profile::kubernetes::clusters')[$cluster_name]

$kubernetes_version = $cluster['kubernetes_version']
case $cluster['kubernetes_version'] {
Hash: {
$kubernetes_major_version = $cluster['kubernetes_version']['major']
$kubernetes_minor_version = $cluster['kubernetes_version']['minor']
$kubernetes_patch_version = $cluster['kubernetes_version']['patch']
$kubernetes_revision_version = $cluster['kubernetes_version']['revision']
$kubernetes_version = "${kubernetes_major_version}.${kubernetes_minor_version}.${kubernetes_patch_version}"
}

default: {
# This branch can be safely deleted once all kubernetes versions
# are in hiera as hashes.
$kubernetes_version = $cluster['kubernetes_version']
$kubernetes_revision_version = '00'
}
}


package { 'kubeadm':
ensure => "${kubernetes_version}-00",
ensure => "${kubernetes_version}-${kubernetes_revision_version}",
require => [Apt::Source['kubernetes']],
}

apt::pin { 'kubeadm':
packages => ['kubeadm'],
version => "${kubernetes_version}-00",
version => "${kubernetes_version}-${kubernetes_revision_version}",
priority => 999,
}

Expand Down
16 changes: 15 additions & 1 deletion manifests/profile/kubernetes/kubeadm_config.pp
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,26 @@
$cluster = lookup('nebula::profile::kubernetes::clusters')[$cluster_name]
$etcd_address = $cluster['etcd_address']
$private_domain = $cluster['private_domain']
$kubernetes_version = $cluster['kubernetes_version']
$service_cidr = pick($cluster['service_cidr'], lookup('nebula::profile::kubernetes::service_cidr'))
$pod_cidr = pick($cluster['pod_cidr'], lookup('nebula::profile::kubernetes::pod_cidr'))
$dex_cluster_id = $cluster['dex_cluster_id']
$dex_url = $cluster['dex_url']

case $cluster['kubernetes_version'] {
Hash: {
$kubernetes_major_version = $cluster['kubernetes_version']['major']
$kubernetes_minor_version = $cluster['kubernetes_version']['minor']
$kubernetes_patch_version = $cluster['kubernetes_version']['patch']
$kubernetes_version = "${kubernetes_major_version}.${kubernetes_minor_version}.${kubernetes_patch_version}"
}

default: {
# This branch can be safely deleted once all kubernetes versions
# are in hiera as hashes.
$kubernetes_version = $cluster['kubernetes_version']
}
}

file { '/etc/kubeadm_config.yaml':
content => template('nebula/profile/kubernetes/kubeadm_config.yaml.erb'),
}
Expand Down
20 changes: 18 additions & 2 deletions manifests/profile/kubernetes/kubelet.pp
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,29 @@
$cluster_name = lookup('nebula::profile::kubernetes::cluster')
$cluster = lookup('nebula::profile::kubernetes::clusters')[$cluster_name]

$kubernetes_version = $cluster['kubernetes_version']
$public_address = $cluster['public_address']
$router_address = $cluster['router_address']
$etcd_address = $cluster['etcd_address']
$kube_api_address = $cluster['kube_api_address']
$node_cidr = pick($cluster['node_cidr'], lookup('nebula::profile::kubernetes::node_cidr'))

case $cluster['kubernetes_version'] {
Hash: {
$kubernetes_major_version = $cluster['kubernetes_version']['major']
$kubernetes_minor_version = $cluster['kubernetes_version']['minor']
$kubernetes_patch_version = $cluster['kubernetes_version']['patch']
$kubernetes_revision_version = $cluster['kubernetes_version']['revision']
$kubernetes_version = "${kubernetes_major_version}.${kubernetes_minor_version}.${kubernetes_patch_version}"
}

default: {
# This branch can be safely deleted once all kubernetes versions
# are in hiera as hashes.
$kubernetes_version = $cluster['kubernetes_version']
$kubernetes_revision_version = '00'
}
}

if $kubernetes_version == undef {
fail('You must set a specific kubernetes version')
}
Expand All @@ -34,7 +50,7 @@
}

class { "nebula::profile::kubelet":
kubelet_version => "${kubernetes_version}-00",
kubelet_version => "${kubernetes_version}-${kubernetes_revision_version}",
pod_manifest_path => "/etc/kubernetes/manifests",
manage_pods_with_puppet => false,
}
Expand Down
4 changes: 2 additions & 2 deletions spec/classes/profile/kubelet_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@

it do
is_expected.to contain_apt__source("kubernetes")
.with_location("https://apt.kubernetes.io/")
.with_release("kubernetes-xenial")
.with_location("https://pkgs.k8s.io/core:/stable:/v1.28/deb/")
.with_release("/")
end

it do
Expand Down
4 changes: 2 additions & 2 deletions spec/classes/profile/kubernetes/kubeadm_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@

it { is_expected.to compile }

it { is_expected.to contain_package('kubeadm').with_ensure('1.14.2-00') }
it { is_expected.to contain_package('kubeadm').with_ensure('1.14.2-1.1') }
it { is_expected.to contain_package('kubeadm').that_requires('Apt::Source[kubernetes]') }

it do
is_expected.to contain_apt__pin('kubeadm').with(
packages: ['kubeadm'],
version: '1.14.2-00',
version: '1.14.2-1.1',
priority: 999,
)
end
Expand Down
14 changes: 7 additions & 7 deletions spec/classes/profile/kubernetes/kubelet_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -63,25 +63,25 @@
it { is_expected.to contain_service('kubelet').with_enable(true) }
it { is_expected.to contain_service('kubelet').that_requires('Package[kubelet]') }

it { is_expected.to contain_package('kubelet').with_ensure('1.14.2-00') }
it { is_expected.to contain_package('kubelet').with_ensure('1.14.2-1.1') }
it { is_expected.to contain_package('kubelet').that_requires('Apt::Source[kubernetes]') }

it do
is_expected.to contain_apt__pin('kubelet').with(
packages: ['kubelet'],
version: '1.14.2-00',
version: '1.14.2-1.1',
priority: 999,
)
end

it do
is_expected.to contain_apt__source('kubernetes').with(
location: 'https://apt.kubernetes.io/',
release: 'kubernetes-xenial',
repos: 'main',
location: 'https://pkgs.k8s.io/core:/stable:/v1.28/deb/',
release: '/',
repos: '',
key: {
'id' => 'A362B822F6DEDC652817EA46B53DC80D13EDEF05',
'source' => 'https://packages.cloud.google.com/apt/doc/apt-key.gpg',
'id' => 'DE15B14486CD377B9E876E1A234654DA9A296436',
'source' => 'https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key',
},
)
end
Expand Down
6 changes: 5 additions & 1 deletion spec/fixtures/hiera/kubernetes/default.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,11 @@ nebula::profile::kubernetes::clusters:
kube_api_address: 172.16.0.7
private_domain: first.cluster
control_dns: public.first.cluster
kubernetes_version: 1.14.2
kubernetes_version:
major: "1"
minor: "14"
patch: "2"
revision: "1.1"
service_cidr: "172.16.0.0/13"
pod_cidr: "172.24.0.0/14"
node_cidr: "172.28.0.0/14"
Expand Down

0 comments on commit cdc1885

Please sign in to comment.