# install rke2 class rke2::install ( Enum['server', 'agent'] $node_type = $rke2::node_type, String $rke2_version = $rke2::rke2_version, String $rke2_release = $rke2::rke2_release, Stdlib::HTTPUrl $container_archive_source = $rke2::container_archive_source, ){ # versionlock rke2 yum::versionlock{"rke2-${node_type}": ensure => present, version => "${rke2_version}~${rke2_release}", } # install rke2 package {"rke2-${node_type}": ensure => "${rke2_version}~${rke2_release}", } # ensure images path exists file { ['/var/lib/rancher/rke2/agent', '/var/lib/rancher/rke2/agent/images']: ensure => 'directory', owner => 'root', group => 'root', mode => '0750', require => Package["rke2-${node_type}"], before => Service["rke2-${node_type}"], } # download required archive of containers archive { '/var/lib/rancher/rke2/agent/images/rke2-images.linux-amd64.tar.zst': ensure => present, source => "https://github.com/rancher/rke2/releases/download/v${rke2_version}%2B${rke2_release}/rke2-images.linux-amd64.tar.zst", require => [ Package["rke2-${node_type}"], File['/var/lib/rancher/rke2/agent/images'], ], before => Service["rke2-${node_type}"], } # ensure the images cache file exists file {'/var/lib/rancher/rke2/agent/images/.cache.json': ensure => file, owner => 'root', group => 'root', mode => '0644', require => [ Package["rke2-${node_type}"], File['/var/lib/rancher/rke2/agent/images'], ], before => Service["rke2-${node_type}"], } }