diff --git a/hack/.packages b/hack/.packages index baaa194f36..31c779cebc 100644 --- a/hack/.packages +++ b/hack/.packages @@ -47,7 +47,6 @@ k8s.io/kops/node-authorizer/pkg/client k8s.io/kops/node-authorizer/pkg/server k8s.io/kops/node-authorizer/pkg/utils k8s.io/kops/nodeup/pkg/bootstrap -k8s.io/kops/nodeup/pkg/distros k8s.io/kops/nodeup/pkg/model k8s.io/kops/nodeup/pkg/model/networking k8s.io/kops/nodeup/pkg/model/resources @@ -192,6 +191,7 @@ k8s.io/kops/upup/pkg/fi/utils k8s.io/kops/upup/pkg/kutil k8s.io/kops/upup/tools/generators/fitask k8s.io/kops/util/pkg/architectures +k8s.io/kops/util/pkg/distributions k8s.io/kops/util/pkg/env k8s.io/kops/util/pkg/exec k8s.io/kops/util/pkg/hashing diff --git a/nodeup/pkg/bootstrap/BUILD.bazel b/nodeup/pkg/bootstrap/BUILD.bazel index 71a1022d42..0dc4784413 100644 --- a/nodeup/pkg/bootstrap/BUILD.bazel +++ b/nodeup/pkg/bootstrap/BUILD.bazel @@ -6,11 +6,11 @@ go_library( importpath = "k8s.io/kops/nodeup/pkg/bootstrap", visibility = ["//visibility:public"], deps = [ - "//nodeup/pkg/distros:go_default_library", "//pkg/systemd:go_default_library", "//upup/pkg/fi:go_default_library", "//upup/pkg/fi/nodeup/local:go_default_library", "//upup/pkg/fi/nodeup/nodetasks:go_default_library", + "//util/pkg/distributions:go_default_library", "//util/pkg/vfs:go_default_library", "//vendor/k8s.io/klog/v2:go_default_library", ], diff --git a/nodeup/pkg/bootstrap/install.go b/nodeup/pkg/bootstrap/install.go index c2067842a8..316729e894 100644 --- a/nodeup/pkg/bootstrap/install.go +++ b/nodeup/pkg/bootstrap/install.go @@ -23,11 +23,11 @@ import ( "strings" "k8s.io/klog/v2" - "k8s.io/kops/nodeup/pkg/distros" "k8s.io/kops/pkg/systemd" "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/nodeup/local" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" + "k8s.io/kops/util/pkg/distributions" "k8s.io/kops/util/pkg/vfs" ) @@ -38,7 +38,7 @@ type Installation struct { } func (i *Installation) Run() error { - _, err := distros.FindDistribution("/") + _, err := distributions.FindDistribution("/") if err != nil { return fmt.Errorf("error determining OS distribution: %v", err) } diff --git a/nodeup/pkg/model/BUILD.bazel b/nodeup/pkg/model/BUILD.bazel index 92fb999489..2d3af9a752 100644 --- a/nodeup/pkg/model/BUILD.bazel +++ b/nodeup/pkg/model/BUILD.bazel @@ -40,7 +40,6 @@ go_library( visibility = ["//visibility:public"], deps = [ "//:go_default_library", - "//nodeup/pkg/distros:go_default_library", "//nodeup/pkg/model/resources:go_default_library", "//pkg/apis/kops:go_default_library", "//pkg/apis/kops/model:go_default_library", @@ -64,6 +63,7 @@ go_library( "//upup/pkg/fi/cloudup/awsup:go_default_library", "//upup/pkg/fi/nodeup/nodetasks:go_default_library", "//util/pkg/architectures:go_default_library", + "//util/pkg/distributions:go_default_library", "//util/pkg/exec:go_default_library", "//util/pkg/proxy:go_default_library", "//util/pkg/vfs:go_default_library", @@ -102,7 +102,6 @@ go_test( data = glob(["tests/**"]), #keep embed = [":go_default_library"], deps = [ - "//nodeup/pkg/distros:go_default_library", "//pkg/apis/kops:go_default_library", "//pkg/apis/nodeup:go_default_library", "//pkg/assets:go_default_library", @@ -115,6 +114,7 @@ go_test( "//upup/pkg/fi/cloudup:go_default_library", "//upup/pkg/fi/nodeup/nodetasks:go_default_library", "//util/pkg/architectures:go_default_library", + "//util/pkg/distributions:go_default_library", "//util/pkg/exec:go_default_library", "//util/pkg/hashing:go_default_library", "//util/pkg/vfs:go_default_library", diff --git a/nodeup/pkg/model/containerd.go b/nodeup/pkg/model/containerd.go index c85e367d0e..07448a9839 100644 --- a/nodeup/pkg/model/containerd.go +++ b/nodeup/pkg/model/containerd.go @@ -21,7 +21,6 @@ import ( "strings" "k8s.io/klog/v2" - "k8s.io/kops/nodeup/pkg/distros" "k8s.io/kops/nodeup/pkg/model/resources" "k8s.io/kops/pkg/apis/kops" "k8s.io/kops/pkg/flagbuilder" @@ -30,6 +29,7 @@ import ( "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" "k8s.io/kops/util/pkg/architectures" + "k8s.io/kops/util/pkg/distributions" ) // ContainerdBuilder install containerd (just the packages at the moment) @@ -44,7 +44,7 @@ var containerdVersions = []packageVersion{ { PackageVersion: "1.2.4", Name: "containerd.io", - Distros: []distros.Distribution{distros.DistributionDebian9}, + Distros: []distributions.Distribution{distributions.DistributionDebian9}, Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "1.2.4-1", Source: "https://download.docker.com/linux/debian/dists/stretch/pool/stable/amd64/containerd.io_1.2.4-1_amd64.deb", @@ -128,14 +128,14 @@ func (b *ContainerdBuilder) Build(c *fi.ModelBuilderContext) error { // @check: neither flatcar nor containeros need provision containerd.service, just the containerd daemon options switch b.Distribution { - case distros.DistributionFlatcar: + case distributions.DistributionFlatcar: klog.Infof("Detected Flatcar; won't install containerd") if err := b.buildContainerOSConfigurationDropIn(c); err != nil { return err } return nil - case distros.DistributionContainerOS: + case distributions.DistributionContainerOS: klog.Infof("Detected ContainerOS; won't install containerd") if err := b.buildContainerOSConfigurationDropIn(c); err != nil { return err diff --git a/nodeup/pkg/model/containerd_test.go b/nodeup/pkg/model/containerd_test.go index ddf3d9da5d..84d0a53dd3 100644 --- a/nodeup/pkg/model/containerd_test.go +++ b/nodeup/pkg/model/containerd_test.go @@ -22,11 +22,11 @@ import ( "path/filepath" "testing" - "k8s.io/kops/nodeup/pkg/distros" "k8s.io/kops/pkg/apis/kops" "k8s.io/kops/pkg/flagbuilder" "k8s.io/kops/pkg/testutils" "k8s.io/kops/upup/pkg/fi" + "k8s.io/kops/util/pkg/distributions" ) func TestContainerdPackageNames(t *testing.T) { @@ -154,7 +154,7 @@ func runContainerdBuilderTest(t *testing.T, key string) { basedir := path.Join("tests/containerdbuilder/", key) nodeUpModelContext, err := BuildNodeupModelContext(basedir) - nodeUpModelContext.Distribution = distros.DistributionXenial + nodeUpModelContext.Distribution = distributions.DistributionXenial if err != nil { t.Fatalf("error parsing cluster yaml %q: %v", basedir, err) return diff --git a/nodeup/pkg/model/context.go b/nodeup/pkg/model/context.go index 6dcf2d99f6..1e3455cf56 100644 --- a/nodeup/pkg/model/context.go +++ b/nodeup/pkg/model/context.go @@ -23,7 +23,6 @@ import ( "strings" "k8s.io/klog/v2" - "k8s.io/kops/nodeup/pkg/distros" "k8s.io/kops/pkg/apis/kops" "k8s.io/kops/pkg/apis/kops/model" "k8s.io/kops/pkg/apis/kops/util" @@ -32,6 +31,7 @@ import ( "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" "k8s.io/kops/util/pkg/architectures" + "k8s.io/kops/util/pkg/distributions" "k8s.io/kops/util/pkg/vfs" "k8s.io/utils/mount" @@ -47,7 +47,7 @@ type NodeupModelContext struct { Assets *fi.AssetStore Cluster *kops.Cluster ConfigBase vfs.Path - Distribution distros.Distribution + Distribution distributions.Distribution InstanceGroup *kops.InstanceGroup KeyStore fi.CAStore NodeupConfig *nodeup.Config @@ -81,11 +81,11 @@ func (c *NodeupModelContext) SSLHostPaths() []string { paths := []string{"/etc/ssl", "/etc/pki/tls", "/etc/pki/ca-trust"} switch c.Distribution { - case distros.DistributionFlatcar: + case distributions.DistributionFlatcar: // Because /usr is read-only on Flatcar, we can't have any new directories; docker will try (and fail) to create them // TODO: Just check if the directories exist? paths = append(paths, "/usr/share/ca-certificates") - case distros.DistributionContainerOS: + case distributions.DistributionContainerOS: paths = append(paths, "/usr/share/ca-certificates") default: paths = append(paths, "/usr/share/ssl", "/usr/ssl", "/usr/lib/ssl", "/usr/local/openssl", "/var/ssl", "/etc/openssl") @@ -149,7 +149,7 @@ func (c *NodeupModelContext) IsMounted(m mount.Interface, device, path string) ( // PathSrvKubernetes returns the path for the kubernetes service files func (c *NodeupModelContext) PathSrvKubernetes() string { switch c.Distribution { - case distros.DistributionContainerOS: + case distributions.DistributionContainerOS: return "/etc/srv/kubernetes" default: return "/srv/kubernetes" @@ -164,7 +164,7 @@ func (c *NodeupModelContext) FileAssetsDefaultPath() string { // PathSrvSshproxy returns the path for the SSH proxy func (c *NodeupModelContext) PathSrvSshproxy() string { switch c.Distribution { - case distros.DistributionContainerOS: + case distributions.DistributionContainerOS: return "/etc/srv/sshproxy" default: return "/srv/sshproxy" @@ -416,10 +416,10 @@ func (c *NodeupModelContext) UseSecureKubelet() bool { // KubectlPath returns distro based path for kubectl func (c *NodeupModelContext) KubectlPath() string { kubeletCommand := "/usr/local/bin" - if c.Distribution == distros.DistributionFlatcar { + if c.Distribution == distributions.DistributionFlatcar { kubeletCommand = "/opt/bin" } - if c.Distribution == distros.DistributionContainerOS { + if c.Distribution == distributions.DistributionContainerOS { kubeletCommand = "/home/kubernetes/bin" } return kubeletCommand diff --git a/nodeup/pkg/model/convenience.go b/nodeup/pkg/model/convenience.go index ef2c7d888b..e423176d22 100644 --- a/nodeup/pkg/model/convenience.go +++ b/nodeup/pkg/model/convenience.go @@ -21,10 +21,10 @@ import ( "sort" "strconv" - "k8s.io/kops/nodeup/pkg/distros" "k8s.io/kops/pkg/apis/kops" "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/util/pkg/architectures" + "k8s.io/kops/util/pkg/distributions" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -140,7 +140,7 @@ type packageVersion struct { ExtraPackages map[string]packageInfo PackageVersion string - Distros []distros.Distribution + Distros []distributions.Distribution // List of dependencies that can be installed using the system's package // manager (e.g. apt-get install or yum install). Dependencies []string @@ -156,7 +156,7 @@ type packageVersion struct { } // Match package version against configured values -func (d *packageVersion) matches(arch architectures.Architecture, packageVersion string, distro distros.Distribution) bool { +func (d *packageVersion) matches(arch architectures.Architecture, packageVersion string, distro distributions.Distribution) bool { if d.PackageVersion != packageVersion { return false } diff --git a/nodeup/pkg/model/directories.go b/nodeup/pkg/model/directories.go index c939c800f5..38c3afab66 100644 --- a/nodeup/pkg/model/directories.go +++ b/nodeup/pkg/model/directories.go @@ -19,9 +19,9 @@ package model import ( "path/filepath" - "k8s.io/kops/nodeup/pkg/distros" "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" + "k8s.io/kops/util/pkg/distributions" ) // DirectoryBuilder creates required directories @@ -33,7 +33,7 @@ var _ fi.ModelBuilder = &DirectoryBuilder{} // Build is responsible for specific directories are created - os dependent func (b *DirectoryBuilder) Build(c *fi.ModelBuilderContext) error { - if b.Distribution == distros.DistributionContainerOS { + if b.Distribution == distributions.DistributionContainerOS { dirname := "/home/kubernetes/bin" c.AddTask(&nodetasks.File{ @@ -51,7 +51,7 @@ func (b *DirectoryBuilder) Build(c *fi.ModelBuilderContext) error { // We try to put things into /opt/kops // On some OSes though, /opt/ is not writeable, and we can't even create the mountpoint - if b.Distribution == distros.DistributionContainerOS { + if b.Distribution == distributions.DistributionContainerOS { src := "/mnt/stateful_partition/opt/" c.AddTask(&nodetasks.File{ diff --git a/nodeup/pkg/model/docker.go b/nodeup/pkg/model/docker.go index 35f40ce28b..408f97e8d3 100644 --- a/nodeup/pkg/model/docker.go +++ b/nodeup/pkg/model/docker.go @@ -26,7 +26,6 @@ import ( "github.com/blang/semver/v4" "k8s.io/klog/v2" - "k8s.io/kops/nodeup/pkg/distros" "k8s.io/kops/nodeup/pkg/model/resources" "k8s.io/kops/pkg/apis/kops" "k8s.io/kops/pkg/flagbuilder" @@ -34,6 +33,7 @@ import ( "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" "k8s.io/kops/util/pkg/architectures" + "k8s.io/kops/util/pkg/distributions" ) // DockerBuilder install docker (just the packages at the moment) @@ -50,7 +50,7 @@ var dockerVersions = []packageVersion{ { PackageVersion: "17.03.2", Name: "docker-ce", - Distros: []distros.Distribution{distros.DistributionDebian9}, + Distros: []distributions.Distribution{distributions.DistributionDebian9}, Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "17.03.2~ce-0~debian-stretch", Source: "http://download.docker.com/linux/debian/dists/stretch/pool/stable/amd64/docker-ce_17.03.2~ce-0~debian-stretch_amd64.deb", @@ -62,7 +62,7 @@ var dockerVersions = []packageVersion{ { PackageVersion: "17.03.2", Name: "docker-ce", - Distros: []distros.Distribution{distros.DistributionXenial}, + Distros: []distributions.Distribution{distributions.DistributionXenial}, Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "17.03.2~ce-0~ubuntu-xenial", Source: "http://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_17.03.2~ce-0~ubuntu-xenial_amd64.deb", @@ -74,7 +74,7 @@ var dockerVersions = []packageVersion{ { PackageVersion: "17.03.2", PlainBinary: true, - Distros: []distros.Distribution{distros.DistributionBionic}, + Distros: []distributions.Distribution{distributions.DistributionBionic}, Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Source: "http://download.docker.com/linux/static/stable/x86_64/docker-17.03.2-ce.tgz", Hash: "183b31b001e7480f3c691080486401aa519101a5cfe6e05ad01b9f5521c4112d", @@ -85,7 +85,7 @@ var dockerVersions = []packageVersion{ { PackageVersion: "17.03.2", Name: "docker-ce", - Distros: []distros.Distribution{distros.DistributionRhel7, distros.DistributionCentos7, distros.DistributionAmazonLinux2}, + Distros: []distributions.Distribution{distributions.DistributionRhel7, distributions.DistributionCentos7, distributions.DistributionAmazonLinux2}, Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "17.03.2.ce", Source: "https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm", @@ -105,7 +105,7 @@ var dockerVersions = []packageVersion{ { PackageVersion: "17.09.0", Name: "docker-ce", - Distros: []distros.Distribution{distros.DistributionDebian9}, + Distros: []distributions.Distribution{distributions.DistributionDebian9}, Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "17.09.0~ce-0~debian", Source: "http://download.docker.com/linux/debian/dists/stretch/pool/stable/amd64/docker-ce_17.09.0~ce-0~debian_amd64.deb", @@ -116,7 +116,7 @@ var dockerVersions = []packageVersion{ { PackageVersion: "17.09.0", Name: "docker-ce", - Distros: []distros.Distribution{distros.DistributionXenial}, + Distros: []distributions.Distribution{distributions.DistributionXenial}, Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "17.09.0~ce-0~ubuntu", Source: "http://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_17.09.0~ce-0~ubuntu_amd64.deb", @@ -127,7 +127,7 @@ var dockerVersions = []packageVersion{ { PackageVersion: "18.06.2", Name: "docker-ce", - Distros: []distros.Distribution{distros.DistributionXenial}, + Distros: []distributions.Distribution{distributions.DistributionXenial}, Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.06.2~ce~3-0~ubuntu", Source: "https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_18.06.2~ce~3-0~ubuntu_amd64.deb", @@ -138,7 +138,7 @@ var dockerVersions = []packageVersion{ { PackageVersion: "17.09.0", Name: "docker-ce", - Distros: []distros.Distribution{distros.DistributionRhel7, distros.DistributionCentos7, distros.DistributionAmazonLinux2}, + Distros: []distributions.Distribution{distributions.DistributionRhel7, distributions.DistributionCentos7, distributions.DistributionAmazonLinux2}, Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "17.09.0.ce", Source: "https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.09.0.ce-1.el7.centos.x86_64.rpm", @@ -149,7 +149,7 @@ var dockerVersions = []packageVersion{ { PackageVersion: "18.03.1", Name: "docker-ce", - Distros: []distros.Distribution{distros.DistributionBionic}, + Distros: []distributions.Distribution{distributions.DistributionBionic}, Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.03.1~ce~3-0~ubuntu", Source: "https://download.docker.com/linux/ubuntu/dists/bionic/pool/stable/amd64/docker-ce_18.03.1~ce~3-0~ubuntu_amd64.deb", @@ -160,7 +160,7 @@ var dockerVersions = []packageVersion{ { PackageVersion: "18.06.2", Name: "docker-ce", - Distros: []distros.Distribution{distros.DistributionBionic}, + Distros: []distributions.Distribution{distributions.DistributionBionic}, Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.06.2~ce~3-0~ubuntu", Source: "https://download.docker.com/linux/ubuntu/dists/bionic/pool/stable/amd64/docker-ce_18.06.2~ce~3-0~ubuntu_amd64.deb", @@ -171,7 +171,7 @@ var dockerVersions = []packageVersion{ { PackageVersion: "18.06.1", Name: "docker-ce", - Distros: []distros.Distribution{distros.DistributionDebian9}, + Distros: []distributions.Distribution{distributions.DistributionDebian9}, Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.06.1~ce~3-0~debian", Source: "https://download.docker.com/linux/debian/dists/stretch/pool/stable/amd64/docker-ce_18.06.1~ce~3-0~debian_amd64.deb", @@ -183,7 +183,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "18.06.2", Name: "docker-ce", - Distros: []distros.Distribution{distros.DistributionDebian9}, + Distros: []distributions.Distribution{distributions.DistributionDebian9}, Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.06.2~ce~3-0~debian", Source: "https://download.docker.com/linux/debian/dists/stretch/pool/stable/amd64/docker-ce_18.06.2~ce~3-0~debian_amd64.deb", @@ -194,7 +194,7 @@ var dockerVersions = []packageVersion{ { PackageVersion: "18.06.1", Name: "docker-ce", - Distros: []distros.Distribution{distros.DistributionRhel7, distros.DistributionCentos7, distros.DistributionAmazonLinux2}, + Distros: []distributions.Distribution{distributions.DistributionRhel7, distributions.DistributionCentos7, distributions.DistributionAmazonLinux2}, Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.06.1.ce", Source: "https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.06.1.ce-3.el7.x86_64.rpm", @@ -205,7 +205,7 @@ var dockerVersions = []packageVersion{ { PackageVersion: "18.09.3", Name: "docker-ce", - Distros: []distros.Distribution{distros.DistributionDebian9}, + Distros: []distributions.Distribution{distributions.DistributionDebian9}, Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "5:18.09.3~3-0~debian-stretch", Source: "https://download.docker.com/linux/debian/dists/stretch/pool/stable/amd64/docker-ce_18.09.3~3-0~debian-stretch_amd64.deb", @@ -223,7 +223,7 @@ var dockerVersions = []packageVersion{ { PackageVersion: "18.06.2", Name: "docker-ce", - Distros: []distros.Distribution{distros.DistributionRhel7, distros.DistributionCentos7, distros.DistributionAmazonLinux2}, + Distros: []distributions.Distribution{distributions.DistributionRhel7, distributions.DistributionCentos7, distributions.DistributionAmazonLinux2}, Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.06.2.ce", Source: "https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.06.2.ce-3.el7.x86_64.rpm", @@ -236,7 +236,7 @@ var dockerVersions = []packageVersion{ { PackageVersion: "18.06.3", Name: "docker-ce", - Distros: []distros.Distribution{distros.DistributionXenial}, + Distros: []distributions.Distribution{distributions.DistributionXenial}, Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.06.3~ce~3-0~ubuntu", Source: "https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_18.06.3~ce~3-0~ubuntu_amd64.deb", @@ -247,9 +247,9 @@ var dockerVersions = []packageVersion{ { PackageVersion: "18.06.3", Name: "docker-ce", - Distros: []distros.Distribution{ - distros.DistributionBionic, - distros.DistributionFocal, + Distros: []distributions.Distribution{ + distributions.DistributionBionic, + distributions.DistributionFocal, }, Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.06.3~ce~3-0~ubuntu", @@ -261,7 +261,7 @@ var dockerVersions = []packageVersion{ { PackageVersion: "18.06.3", Name: "docker-ce", - Distros: []distros.Distribution{distros.DistributionDebian9}, + Distros: []distributions.Distribution{distributions.DistributionDebian9}, Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.06.3~ce~3-0~debian", Source: "https://download.docker.com/linux/debian/dists/stretch/pool/stable/amd64/docker-ce_18.06.3~ce~3-0~debian_amd64.deb", @@ -272,7 +272,7 @@ var dockerVersions = []packageVersion{ { PackageVersion: "18.06.3", Name: "docker-ce", - Distros: []distros.Distribution{distros.DistributionDebian10}, + Distros: []distributions.Distribution{distributions.DistributionDebian10}, Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.06.3~ce~3-0~debian", Source: "https://download.docker.com/linux/debian/dists/buster/pool/stable/amd64/docker-ce_18.06.3~ce~3-0~debian_amd64.deb", @@ -283,12 +283,12 @@ var dockerVersions = []packageVersion{ { PackageVersion: "18.06.3", Name: "docker-ce", - Distros: []distros.Distribution{ - distros.DistributionAmazonLinux2, - distros.DistributionCentos7, - distros.DistributionCentos8, - distros.DistributionRhel7, - distros.DistributionRhel8, + Distros: []distributions.Distribution{ + distributions.DistributionAmazonLinux2, + distributions.DistributionCentos7, + distributions.DistributionCentos8, + distributions.DistributionRhel7, + distributions.DistributionRhel8, }, Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.06.3.ce", @@ -381,14 +381,14 @@ func (b *DockerBuilder) Build(c *fi.ModelBuilderContext) error { // @check: neither flatcar nor containeros need provision docker.service, just the docker daemon options switch b.Distribution { - case distros.DistributionFlatcar: + case distributions.DistributionFlatcar: klog.Infof("Detected Flatcar; won't install Docker") if err := b.buildContainerOSConfigurationDropIn(c); err != nil { return err } return nil - case distros.DistributionContainerOS: + case distributions.DistributionContainerOS: klog.Infof("Detected ContainerOS; won't install Docker") if err := b.buildContainerOSConfigurationDropIn(c); err != nil { return err @@ -708,7 +708,7 @@ func (b *DockerBuilder) buildSysconfig(c *fi.ModelBuilderContext) error { } // ContainerOS now sets the storage flag in /etc/docker/daemon.json, and it is an error to set it twice - if b.Distribution == distros.DistributionContainerOS { + if b.Distribution == distributions.DistributionContainerOS { // So that we can support older COS images though, we do check for /etc/docker/daemon.json if b, err := ioutil.ReadFile("/etc/docker/daemon.json"); err != nil { if os.IsNotExist(err) { diff --git a/nodeup/pkg/model/docker_test.go b/nodeup/pkg/model/docker_test.go index 8c9ce66e8b..6453aa5c3d 100644 --- a/nodeup/pkg/model/docker_test.go +++ b/nodeup/pkg/model/docker_test.go @@ -25,11 +25,11 @@ import ( "strings" "testing" - "k8s.io/kops/nodeup/pkg/distros" "k8s.io/kops/pkg/apis/kops" "k8s.io/kops/pkg/flagbuilder" "k8s.io/kops/pkg/testutils" "k8s.io/kops/upup/pkg/fi" + "k8s.io/kops/util/pkg/distributions" "k8s.io/kops/util/pkg/hashing" ) @@ -250,7 +250,7 @@ func runDockerBuilderTest(t *testing.T, key string) { basedir := path.Join("tests/dockerbuilder/", key) nodeUpModelContext, err := BuildNodeupModelContext(basedir) - nodeUpModelContext.Distribution = distros.DistributionXenial + nodeUpModelContext.Distribution = distributions.DistributionXenial if err != nil { t.Fatalf("error parsing cluster yaml %q: %v", basedir, err) return diff --git a/nodeup/pkg/model/etcd.go b/nodeup/pkg/model/etcd.go index d6d0d3bf0d..8b830b7b91 100644 --- a/nodeup/pkg/model/etcd.go +++ b/nodeup/pkg/model/etcd.go @@ -17,10 +17,10 @@ limitations under the License. package model import ( - "k8s.io/kops/nodeup/pkg/distros" "k8s.io/kops/pkg/wellknownusers" "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" + "k8s.io/kops/util/pkg/distributions" "k8s.io/klog/v2" ) @@ -39,11 +39,11 @@ func (b *EtcdBuilder) Build(c *fi.ModelBuilderContext) error { } switch b.Distribution { - case distros.DistributionFlatcar: + case distributions.DistributionFlatcar: klog.Infof("Detected Flatcar; skipping etcd user installation") return nil - case distros.DistributionContainerOS: + case distributions.DistributionContainerOS: klog.Infof("Detected ContainerOS; skipping etcd user installation") return nil } diff --git a/nodeup/pkg/model/kube_controller_manager.go b/nodeup/pkg/model/kube_controller_manager.go index d61b327471..a7312cef6b 100644 --- a/nodeup/pkg/model/kube_controller_manager.go +++ b/nodeup/pkg/model/kube_controller_manager.go @@ -21,7 +21,6 @@ import ( "path/filepath" "strings" - "k8s.io/kops/nodeup/pkg/distros" "k8s.io/kops/pkg/flagbuilder" "k8s.io/kops/pkg/k8scodecs" "k8s.io/kops/pkg/kubemanifest" @@ -29,6 +28,7 @@ import ( "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" "k8s.io/kops/util/pkg/architectures" + "k8s.io/kops/util/pkg/distributions" "k8s.io/kops/util/pkg/exec" "k8s.io/kops/util/pkg/proxy" @@ -146,11 +146,11 @@ func (b *KubeControllerManagerBuilder) buildPod() (*v1.Pod, error) { // Ensure the Volume Plugin dir is mounted on the same path as the host machine so DaemonSet deployment is possible if volumePluginDir == "" { switch b.Distribution { - case distros.DistributionContainerOS: + case distributions.DistributionContainerOS: // Default is different on ContainerOS, see https://github.com/kubernetes/kubernetes/pull/58171 volumePluginDir = "/home/kubernetes/flexvolume/" - case distros.DistributionFlatcar: + case distributions.DistributionFlatcar: // The /usr directory is read-only for Flatcar volumePluginDir = "/var/lib/kubelet/volumeplugins/" diff --git a/nodeup/pkg/model/kubectl.go b/nodeup/pkg/model/kubectl.go index 63a0c88d58..adffd6ccf6 100644 --- a/nodeup/pkg/model/kubectl.go +++ b/nodeup/pkg/model/kubectl.go @@ -19,10 +19,10 @@ package model import ( "fmt" - "k8s.io/kops/nodeup/pkg/distros" "k8s.io/kops/pkg/rbac" "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" + "k8s.io/kops/util/pkg/distributions" "k8s.io/klog/v2" ) @@ -106,15 +106,15 @@ func (b *KubectlBuilder) Build(c *fi.ModelBuilderContext) error { func (b *KubectlBuilder) findKubeconfigUser() (*fi.User, *fi.Group, error) { var users []string switch b.Distribution { - case distros.DistributionDebian9, distros.DistributionDebian10: + case distributions.DistributionDebian9, distributions.DistributionDebian10: users = []string{"admin", "root"} - case distros.DistributionXenial, distros.DistributionBionic, distros.DistributionFocal: + case distributions.DistributionXenial, distributions.DistributionBionic, distributions.DistributionFocal: users = []string{"ubuntu"} - case distros.DistributionCentos7, distros.DistributionCentos8: + case distributions.DistributionCentos7, distributions.DistributionCentos8: users = []string{"centos"} - case distros.DistributionAmazonLinux2, distros.DistributionRhel7, distros.DistributionRhel8: + case distributions.DistributionAmazonLinux2, distributions.DistributionRhel7, distributions.DistributionRhel8: users = []string{"ec2-user"} - case distros.DistributionFlatcar: + case distributions.DistributionFlatcar: users = []string{"core"} default: klog.Warningf("Unknown distro; won't write kubeconfig to homedir %s", b.Distribution) diff --git a/nodeup/pkg/model/kubelet.go b/nodeup/pkg/model/kubelet.go index 4da336a277..dc764d461c 100644 --- a/nodeup/pkg/model/kubelet.go +++ b/nodeup/pkg/model/kubelet.go @@ -28,7 +28,6 @@ import ( v1 "k8s.io/api/core/v1" "k8s.io/klog/v2" - "k8s.io/kops/nodeup/pkg/distros" "k8s.io/kops/pkg/apis/kops" "k8s.io/kops/pkg/flagbuilder" "k8s.io/kops/pkg/nodelabels" @@ -37,6 +36,7 @@ import ( "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/cloudup/awsup" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" + "k8s.io/kops/util/pkg/distributions" ) const ( @@ -145,10 +145,10 @@ func (b *KubeletBuilder) Build(c *fi.ModelBuilderContext) error { // kubeletPath returns the path of the kubelet based on distro func (b *KubeletBuilder) kubeletPath() string { kubeletCommand := "/usr/local/bin/kubelet" - if b.Distribution == distros.DistributionFlatcar { + if b.Distribution == distributions.DistributionFlatcar { kubeletCommand = "/opt/kubernetes/bin/kubelet" } - if b.Distribution == distros.DistributionContainerOS { + if b.Distribution == distributions.DistributionContainerOS { kubeletCommand = "/home/kubernetes/bin/kubelet" } return kubeletCommand @@ -299,7 +299,7 @@ func (b *KubeletBuilder) buildKubeletConfig() (*kops.KubeletConfigSpec, error) { // usesContainerizedMounter returns true if we use the containerized mounter func (b *KubeletBuilder) usesContainerizedMounter() bool { switch b.Distribution { - case distros.DistributionContainerOS: + case distributions.DistributionContainerOS: return true default: return false @@ -482,11 +482,11 @@ func (b *KubeletBuilder) buildKubeletConfigSpec() (*kops.KubeletConfigSpec, erro if c.VolumePluginDirectory == "" { switch b.Distribution { - case distros.DistributionContainerOS: + case distributions.DistributionContainerOS: // Default is different on ContainerOS, see https://github.com/kubernetes/kubernetes/pull/58171 c.VolumePluginDirectory = "/home/kubernetes/flexvolume/" - case distros.DistributionFlatcar: + case distributions.DistributionFlatcar: // The /usr directory is read-only for Flatcar c.VolumePluginDirectory = "/var/lib/kubelet/volumeplugins/" @@ -498,7 +498,7 @@ func (b *KubeletBuilder) buildKubeletConfigSpec() (*kops.KubeletConfigSpec, erro // In certain configurations systemd-resolved will put the loopback address 127.0.0.53 as a nameserver into /etc/resolv.conf // https://github.com/coredns/coredns/blob/master/plugin/loop/README.md#troubleshooting-loops-in-kubernetes-clusters if c.ResolverConfig == nil { - if b.Distribution == distros.DistributionBionic || b.Distribution == distros.DistributionFocal { + if b.Distribution == distributions.DistributionBionic || b.Distribution == distributions.DistributionFocal { c.ResolverConfig = s("/run/systemd/resolve/resolv.conf") } } diff --git a/nodeup/pkg/model/logrotate.go b/nodeup/pkg/model/logrotate.go index 129efbd9df..7f36706a47 100644 --- a/nodeup/pkg/model/logrotate.go +++ b/nodeup/pkg/model/logrotate.go @@ -20,11 +20,11 @@ import ( "fmt" "strings" - "k8s.io/kops/nodeup/pkg/distros" "k8s.io/kops/pkg/apis/kops/util" "k8s.io/kops/pkg/systemd" "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" + "k8s.io/kops/util/pkg/distributions" "k8s.io/klog/v2" ) @@ -40,10 +40,10 @@ var _ fi.ModelBuilder = &LogrotateBuilder{} func (b *LogrotateBuilder) Build(c *fi.ModelBuilderContext) error { switch b.Distribution { - case distros.DistributionContainerOS: + case distributions.DistributionContainerOS: klog.Infof("Detected ContainerOS; won't install logrotate") return nil - case distros.DistributionFlatcar: + case distributions.DistributionFlatcar: klog.Infof("Detected Flatcar; won't install logrotate") default: c.AddTask(&nodetasks.Package{Name: "logrotate"}) @@ -90,7 +90,7 @@ func (b *LogrotateBuilder) Build(c *fi.ModelBuilderContext) error { // addLogrotateService creates a logrotate systemd task to act as target for the timer, if one is needed func (b *LogrotateBuilder) addLogrotateService(c *fi.ModelBuilderContext) error { switch b.Distribution { - case distros.DistributionFlatcar, distros.DistributionContainerOS: + case distributions.DistributionFlatcar, distributions.DistributionContainerOS: // logrotate service already exists return nil } @@ -121,7 +121,7 @@ func (b *LogrotateBuilder) addLogRotate(c *fi.ModelBuilderContext, name, path st // Flatcar sets "dateext" options, and maxsize-based rotation will fail if // the file has been previously rotated on the same calendar date. - if b.Distribution == distros.DistributionFlatcar { + if b.Distribution == distributions.DistributionFlatcar { options.DateFormat = "-%Y%m%d-%s" } diff --git a/nodeup/pkg/model/miscutils.go b/nodeup/pkg/model/miscutils.go index c6cdf28471..aedbbbfba5 100644 --- a/nodeup/pkg/model/miscutils.go +++ b/nodeup/pkg/model/miscutils.go @@ -18,9 +18,9 @@ package model import ( "k8s.io/klog/v2" - "k8s.io/kops/nodeup/pkg/distros" "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" + "k8s.io/kops/util/pkg/distributions" ) // MiscUtilsBuilder ensures that some system packages that are @@ -34,10 +34,10 @@ var _ fi.ModelBuilder = &MiscUtilsBuilder{} // Build is responsible for configuring the miscellaneous packages we want installed func (b *MiscUtilsBuilder) Build(c *fi.ModelBuilderContext) error { switch b.Distribution { - case distros.DistributionContainerOS: + case distributions.DistributionContainerOS: klog.V(2).Infof("Detected ContainerOS; won't install misc. utils") return nil - case distros.DistributionFlatcar: + case distributions.DistributionFlatcar: klog.V(2).Infof("Detected Flatcar; won't install misc. utils") return nil } diff --git a/nodeup/pkg/model/ntp.go b/nodeup/pkg/model/ntp.go index 2abdd85e75..df773f685c 100644 --- a/nodeup/pkg/model/ntp.go +++ b/nodeup/pkg/model/ntp.go @@ -18,9 +18,9 @@ package model import ( "k8s.io/klog/v2" - "k8s.io/kops/nodeup/pkg/distros" "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" + "k8s.io/kops/util/pkg/distributions" ) // NTPBuilder installs and starts NTP, to ensure accurate clock times. @@ -35,10 +35,10 @@ var _ fi.ModelBuilder = &NTPBuilder{} // Build is responsible for configuring NTP func (b *NTPBuilder) Build(c *fi.ModelBuilderContext) error { switch b.Distribution { - case distros.DistributionContainerOS: + case distributions.DistributionContainerOS: klog.Infof("Detected ContainerOS; won't install ntp") return nil - case distros.DistributionFlatcar: + case distributions.DistributionFlatcar: klog.Infof("Detected Flatcar; won't install ntp") return nil } diff --git a/nodeup/pkg/model/packages.go b/nodeup/pkg/model/packages.go index e8c59b23d8..2f3c08d8a2 100644 --- a/nodeup/pkg/model/packages.go +++ b/nodeup/pkg/model/packages.go @@ -17,9 +17,9 @@ limitations under the License. package model import ( - "k8s.io/kops/nodeup/pkg/distros" "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" + "k8s.io/kops/util/pkg/distributions" "k8s.io/klog/v2" ) @@ -64,14 +64,14 @@ func (b *PackagesBuilder) Build(c *fi.ModelBuilderContext) error { c.AddTask(&nodetasks.Package{Name: "util-linux"}) // Handle some packages differently for each distro switch b.Distribution { - case distros.DistributionRhel7: + case distributions.DistributionRhel7: // Easier to install container-selinux from CentOS than extras c.AddTask(&nodetasks.Package{ Name: "container-selinux", Source: s("http://vault.centos.org/7.6.1810/extras/x86_64/Packages/container-selinux-2.107-1.el7_6.noarch.rpm"), Hash: s("7de4211fa0dfd240d8827b93763e1eb5f0d56411"), }) - case distros.DistributionAmazonLinux2: + case distributions.DistributionAmazonLinux2: // Amazon Linux 2 doesn't have SELinux enabled by default default: c.AddTask(&nodetasks.Package{Name: "container-selinux"}) diff --git a/nodeup/pkg/model/sysctls.go b/nodeup/pkg/model/sysctls.go index 2d853f830d..8e3ed7976e 100644 --- a/nodeup/pkg/model/sysctls.go +++ b/nodeup/pkg/model/sysctls.go @@ -20,10 +20,10 @@ import ( "fmt" "strings" - "k8s.io/kops/nodeup/pkg/distros" "k8s.io/kops/pkg/apis/kops" "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" + "k8s.io/kops/util/pkg/distributions" ) // SysctlBuilder set up our sysctls @@ -125,7 +125,7 @@ func (b *SysctlBuilder) Build(c *fi.ModelBuilderContext) error { proxyMode = "iptables" } - if proxyMode == "iptables" && (b.Distribution == distros.DistributionCentos7 || b.Distribution == distros.DistributionRhel7) { + if proxyMode == "iptables" && (b.Distribution == distributions.DistributionCentos7 || b.Distribution == distributions.DistributionRhel7) { sysctls = append(sysctls, "# Flannel settings on CentOS 7", "# Issue https://github.com/coreos/flannel/issues/902", diff --git a/nodeup/pkg/model/update_service.go b/nodeup/pkg/model/update_service.go index 8d204be2d4..ae249fd6b8 100644 --- a/nodeup/pkg/model/update_service.go +++ b/nodeup/pkg/model/update_service.go @@ -17,11 +17,11 @@ limitations under the License. package model import ( - "k8s.io/kops/nodeup/pkg/distros" "k8s.io/kops/pkg/apis/kops" "k8s.io/kops/pkg/systemd" "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" + "k8s.io/kops/util/pkg/distributions" "k8s.io/klog/v2" ) @@ -39,7 +39,7 @@ var _ fi.ModelBuilder = &UpdateServiceBuilder{} // Build is responsible for configuring automatic updates based on the OS. func (b *UpdateServiceBuilder) Build(c *fi.ModelBuilderContext) error { - if b.Distribution == distros.DistributionFlatcar { + if b.Distribution == distributions.DistributionFlatcar { b.buildFlatcarSystemdService(c) } else if b.Distribution.IsDebianFamily() { b.buildDebianPackage(c) diff --git a/upup/pkg/fi/nodeup/BUILD.bazel b/upup/pkg/fi/nodeup/BUILD.bazel index d832e625aa..f560747563 100644 --- a/upup/pkg/fi/nodeup/BUILD.bazel +++ b/upup/pkg/fi/nodeup/BUILD.bazel @@ -9,7 +9,6 @@ go_library( importpath = "k8s.io/kops/upup/pkg/fi/nodeup", visibility = ["//visibility:public"], deps = [ - "//nodeup/pkg/distros:go_default_library", "//nodeup/pkg/model:go_default_library", "//nodeup/pkg/model/networking:go_default_library", "//pkg/apis/kops:go_default_library", @@ -23,6 +22,7 @@ go_library( "//upup/pkg/fi/secrets:go_default_library", "//upup/pkg/fi/utils:go_default_library", "//util/pkg/architectures:go_default_library", + "//util/pkg/distributions:go_default_library", "//util/pkg/vfs:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/session:go_default_library", diff --git a/upup/pkg/fi/nodeup/command.go b/upup/pkg/fi/nodeup/command.go index f30923af91..f62946757c 100644 --- a/upup/pkg/fi/nodeup/command.go +++ b/upup/pkg/fi/nodeup/command.go @@ -27,7 +27,6 @@ import ( "strings" "time" - "k8s.io/kops/nodeup/pkg/distros" "k8s.io/kops/nodeup/pkg/model" "k8s.io/kops/nodeup/pkg/model/networking" api "k8s.io/kops/pkg/apis/kops" @@ -41,6 +40,7 @@ import ( "k8s.io/kops/upup/pkg/fi/secrets" "k8s.io/kops/upup/pkg/fi/utils" "k8s.io/kops/util/pkg/architectures" + "k8s.io/kops/util/pkg/distributions" "k8s.io/kops/util/pkg/vfs" "github.com/aws/aws-sdk-go/aws" @@ -157,7 +157,7 @@ func (c *NodeUpCommand) Run(out io.Writer) error { return fmt.Errorf("error determining OS architecture: %v", err) } - distribution, err := distros.FindDistribution("/") + distribution, err := distributions.FindDistribution("/") if err != nil { return fmt.Errorf("error determining OS distribution: %v", err) } diff --git a/upup/pkg/fi/nodeup/nodetasks/BUILD.bazel b/upup/pkg/fi/nodeup/nodetasks/BUILD.bazel index 545f0ff084..ef24661abb 100644 --- a/upup/pkg/fi/nodeup/nodetasks/BUILD.bazel +++ b/upup/pkg/fi/nodeup/nodetasks/BUILD.bazel @@ -21,7 +21,6 @@ go_library( importpath = "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks", visibility = ["//visibility:public"], deps = [ - "//nodeup/pkg/distros:go_default_library", "//pkg/apis/kops:go_default_library", "//pkg/apis/nodeup:go_default_library", "//pkg/backoff:go_default_library", @@ -32,6 +31,7 @@ go_library( "//upup/pkg/fi/nodeup/cloudinit:go_default_library", "//upup/pkg/fi/nodeup/local:go_default_library", "//upup/pkg/fi/utils:go_default_library", + "//util/pkg/distributions:go_default_library", "//util/pkg/hashing:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/klog/v2:go_default_library", diff --git a/upup/pkg/fi/nodeup/nodetasks/package.go b/upup/pkg/fi/nodeup/nodetasks/package.go index d4a9d079c3..f00a4f6712 100644 --- a/upup/pkg/fi/nodeup/nodetasks/package.go +++ b/upup/pkg/fi/nodeup/nodetasks/package.go @@ -26,11 +26,11 @@ import ( "sync" "k8s.io/klog/v2" - "k8s.io/kops/nodeup/pkg/distros" "k8s.io/kops/pkg/apis/kops" "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/nodeup/cloudinit" "k8s.io/kops/upup/pkg/fi/nodeup/local" + "k8s.io/kops/util/pkg/distributions" "k8s.io/kops/util/pkg/hashing" ) @@ -129,7 +129,7 @@ func (p *Package) String() string { } func (e *Package) Find(c *fi.Context) (*Package, error) { - d, err := distros.FindDistribution("/") + d, err := distributions.FindDistribution("/") if err != nil { return nil, fmt.Errorf("unknown or unsupported distro: %v", err) } @@ -273,7 +273,7 @@ func (_ *Package) RenderLocal(t *local.LocalTarget, a, e, changes *Package) erro packageManagerLock.Lock() defer packageManagerLock.Unlock() - d, err := distros.FindDistribution("/") + d, err := distributions.FindDistribution("/") if err != nil { return fmt.Errorf("unknown or unsupported distro: %v", err) } @@ -327,7 +327,7 @@ func (_ *Package) RenderLocal(t *local.LocalTarget, a, e, changes *Package) erro args = []string{"apt-get", "install", "--yes", "--no-install-recommends"} env = append(env, "DEBIAN_FRONTEND=noninteractive") } else if d.IsRHELFamily() { - if d == distros.DistributionCentos8 || d == distros.DistributionRhel8 { + if d == distributions.DistributionCentos8 || d == distributions.DistributionRhel8 { args = []string{"/usr/bin/dnf", "install", "-y", "--setopt=install_weak_deps=False"} } else { args = []string{"/usr/bin/yum", "install", "-y"} diff --git a/upup/pkg/fi/nodeup/nodetasks/service.go b/upup/pkg/fi/nodeup/nodetasks/service.go index 433f4e0c04..2165097a4f 100644 --- a/upup/pkg/fi/nodeup/nodetasks/service.go +++ b/upup/pkg/fi/nodeup/nodetasks/service.go @@ -26,10 +26,10 @@ import ( "time" "k8s.io/klog/v2" - "k8s.io/kops/nodeup/pkg/distros" "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/nodeup/cloudinit" "k8s.io/kops/upup/pkg/fi/nodeup/local" + "k8s.io/kops/util/pkg/distributions" ) const ( @@ -127,7 +127,7 @@ func getSystemdStatus(name string) (map[string]string, error) { } func (e *Service) systemdSystemPath() (string, error) { - d, err := distros.FindDistribution("/") + d, err := distributions.FindDistribution("/") if err != nil { return "", fmt.Errorf("unknown or unsupported distro: %v", err) } @@ -136,9 +136,9 @@ func (e *Service) systemdSystemPath() (string, error) { return debianSystemdSystemPath, nil } else if d.IsRHELFamily() { return centosSystemdSystemPath, nil - } else if d == distros.DistributionFlatcar { + } else if d == distributions.DistributionFlatcar { return flatcarSystemdSystemPath, nil - } else if d == distros.DistributionContainerOS { + } else if d == distributions.DistributionContainerOS { return containerosSystemdSystemPath, nil } else { return "", fmt.Errorf("unsupported systemd system") diff --git a/upup/pkg/fi/nodeup/nodetasks/update_packages.go b/upup/pkg/fi/nodeup/nodetasks/update_packages.go index 6d4b1d35de..d0d03e4453 100644 --- a/upup/pkg/fi/nodeup/nodetasks/update_packages.go +++ b/upup/pkg/fi/nodeup/nodetasks/update_packages.go @@ -23,10 +23,10 @@ import ( "syscall" "k8s.io/klog/v2" - "k8s.io/kops/nodeup/pkg/distros" "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/nodeup/cloudinit" "k8s.io/kops/upup/pkg/fi/nodeup/local" + "k8s.io/kops/util/pkg/distributions" ) type UpdatePackages struct { @@ -65,7 +65,7 @@ func (_ *UpdatePackages) RenderLocal(t *local.LocalTarget, a, e, changes *Update klog.Infof("SKIP_PACKAGE_UPDATE was set; skipping package update") return nil } - d, err := distros.FindDistribution("/") + d, err := distributions.FindDistribution("/") if err != nil { return fmt.Errorf("unknown or unsupported distro: %v", err) } diff --git a/nodeup/pkg/distros/BUILD.bazel b/util/pkg/distributions/BUILD.bazel similarity index 74% rename from nodeup/pkg/distros/BUILD.bazel rename to util/pkg/distributions/BUILD.bazel index ac2cbad2e8..89dacc25b0 100644 --- a/nodeup/pkg/distros/BUILD.bazel +++ b/util/pkg/distributions/BUILD.bazel @@ -3,10 +3,10 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library") go_library( name = "go_default_library", srcs = [ - "distribution.go", + "distributions.go", "identify.go", ], - importpath = "k8s.io/kops/nodeup/pkg/distros", + importpath = "k8s.io/kops/util/pkg/distributions", visibility = ["//visibility:public"], deps = ["//vendor/k8s.io/klog/v2:go_default_library"], ) diff --git a/nodeup/pkg/distros/distribution.go b/util/pkg/distributions/distributions.go similarity index 99% rename from nodeup/pkg/distros/distribution.go rename to util/pkg/distributions/distributions.go index db09c5a9eb..cf937991dd 100644 --- a/nodeup/pkg/distros/distribution.go +++ b/util/pkg/distributions/distributions.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package distros +package distributions import ( "k8s.io/klog/v2" diff --git a/nodeup/pkg/distros/identify.go b/util/pkg/distributions/identify.go similarity index 99% rename from nodeup/pkg/distros/identify.go rename to util/pkg/distributions/identify.go index 7510a18121..8e521f142f 100644 --- a/nodeup/pkg/distros/identify.go +++ b/util/pkg/distributions/identify.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package distros +package distributions import ( "fmt"