- only install a base config - wait for 3 masters before deploying helm charts - remove cluster-domain - manage nginx ingres via rke2 helmconfig Reviewed-on: #403
110 lines
3.2 KiB
Puppet
110 lines
3.2 KiB
Puppet
# config rke2
|
|
class rke2::config (
|
|
Enum['server', 'agent'] $node_type = $rke2::node_type,
|
|
Stdlib::Absolutepath $config_file = $rke2::config_file,
|
|
Hash $config_hash = $rke2::config_hash,
|
|
Stdlib::HTTPSUrl $join_url = $rke2::join_url,
|
|
Stdlib::Fqdn $bootstrap_node = $rke2::bootstrap_node,
|
|
String $node_token = $rke2::node_token,
|
|
Array[String[1]] $extra_config_files = $rke2::extra_config_files,
|
|
){
|
|
|
|
# if its not the bootstrap node, add join path to config
|
|
if $node_type == 'server' {
|
|
if $trusted['certname'] != $bootstrap_node {
|
|
$config = merge($config_hash, {
|
|
server => $join_url,
|
|
token => $node_token,
|
|
} )
|
|
}else{
|
|
$config = merge($config_hash, {})
|
|
}
|
|
} elsif $node_type == 'agent' {
|
|
$config = merge($config_hash, {
|
|
server => $join_url,
|
|
token => $node_token,
|
|
} )
|
|
}else{
|
|
$config = $config_hash
|
|
}
|
|
|
|
# create the config file
|
|
file { $config_file:
|
|
ensure => file,
|
|
content => Sensitive($config.to_yaml),
|
|
owner => 'root',
|
|
group => 'root',
|
|
mode => '0644',
|
|
require => Package["rke2-${node_type}"],
|
|
before => Service["rke2-${node_type}"],
|
|
}
|
|
|
|
# create a script to verify k8s api is up (used by consul)
|
|
file {'/usr/local/bin/check_k8s_api.sh':
|
|
ensure => file,
|
|
owner => 'root',
|
|
group => 'root',
|
|
mode => '0755',
|
|
source => 'puppet:///modules/rke2/check_k8s_api.sh',
|
|
}
|
|
|
|
# symlink kubectl to path
|
|
file {'/usr/bin/kubectl':
|
|
ensure => link,
|
|
target => '/var/lib/rancher/rke2/bin/kubectl',
|
|
require => Package["rke2-${node_type}"],
|
|
}
|
|
|
|
# when ProtectKernelDefaults=true
|
|
sysctl { 'vm.overcommit_memory':
|
|
value => '1',
|
|
before => Service["rke2-${node_type}"],
|
|
}
|
|
sysctl { 'kernel.panic':
|
|
value => '10',
|
|
before => Service["rke2-${node_type}"],
|
|
}
|
|
|
|
# on the controller nodes only
|
|
if $node_type == 'server' and $facts['k8s_masters'] and $facts['k8s_masters'] > 2 {
|
|
|
|
# wait for purelb helm to setup namespace
|
|
if 'purelb' in $facts['k8s_namespaces'] {
|
|
file {'/var/lib/rancher/rke2/server/manifests/purelb-config.yaml':
|
|
ensure => file,
|
|
owner => 'root',
|
|
group => 'root',
|
|
mode => '0644',
|
|
source => 'puppet:///modules/rke2/purelb-config.yaml',
|
|
require => Service['rke2-server'],
|
|
}
|
|
}
|
|
|
|
# wait for rancher helm to setup namespace
|
|
if 'cattle-system' in $facts['k8s_namespaces'] {
|
|
file {'/var/lib/rancher/rke2/server/manifests/ingress-route-rancher.yaml':
|
|
ensure => file,
|
|
owner => 'root',
|
|
group => 'root',
|
|
mode => '0644',
|
|
source => 'puppet:///modules/rke2/ingress-route-rancher.yaml',
|
|
require => Service['rke2-server'],
|
|
}
|
|
}
|
|
|
|
# manage extra config config (these are not dependent on helm)
|
|
$extra_config_files.each |$file| {
|
|
|
|
file {"/var/lib/rancher/rke2/server/manifests/${file}.yaml":
|
|
ensure => file,
|
|
owner => 'root',
|
|
group => 'root',
|
|
mode => '0644',
|
|
source => "puppet:///modules/rke2/${file}.yaml",
|
|
require => Service['rke2-server'],
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|