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 }