github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/internal/operator/nodeagent/dep/k8s/kubeadm/dep.go (about)

     1  package kubeadm
     2  
     3  import (
     4  	"regexp"
     5  
     6  	"github.com/caos/orbos/internal/operator/common"
     7  	"github.com/caos/orbos/internal/operator/nodeagent"
     8  	"github.com/caos/orbos/internal/operator/nodeagent/dep"
     9  	"github.com/caos/orbos/internal/operator/nodeagent/dep/k8s"
    10  	"github.com/caos/orbos/internal/operator/nodeagent/dep/middleware"
    11  )
    12  
    13  type Installer interface {
    14  	isKubeadm()
    15  	nodeagent.Installer
    16  }
    17  
    18  type kubeadmDep struct {
    19  	manager    *dep.PackageManager
    20  	os         dep.OperatingSystem
    21  	normalizer *regexp.Regexp
    22  	common     *k8s.Common
    23  }
    24  
    25  func New(os dep.OperatingSystem, manager *dep.PackageManager) Installer {
    26  	return &kubeadmDep{manager, os, regexp.MustCompile(`\d+\.\d+\.\d+`), k8s.New(os, manager, "kubeadm")}
    27  }
    28  
    29  func (kubeadmDep) isKubeadm() {}
    30  
    31  func (kubeadmDep) Is(other nodeagent.Installer) bool {
    32  	_, ok := middleware.Unwrap(other).(Installer)
    33  	return ok
    34  }
    35  
    36  func (k kubeadmDep) String() string { return "Kubeadm" }
    37  
    38  func (*kubeadmDep) Equals(other nodeagent.Installer) bool {
    39  	_, ok := other.(*kubeadmDep)
    40  	return ok
    41  }
    42  
    43  func (k *kubeadmDep) InstalledFilter() []string {
    44  	return []string{"kubeadm"}
    45  }
    46  
    47  func (k *kubeadmDep) Current() (common.Package, error) {
    48  	return k.common.Current()
    49  }
    50  
    51  func (k *kubeadmDep) Ensure(remove common.Package, install common.Package, leaveOSRepositories bool) error {
    52  	return k.common.Ensure(remove, install, leaveOSRepositories)
    53  }