Recognize ubuntu 20.10

Teach nodeup about ubuntu 20.10, including the unusual
/etc/resolv.conf configuration.
This commit is contained in:
Justin SB 2020-11-20 09:44:14 -05:00 committed by Justin Santa Barbara
parent 2e202badc5
commit b17e44b709
7 changed files with 35 additions and 7 deletions

View File

@ -108,7 +108,7 @@ func (b *KubectlBuilder) findKubeconfigUser() (*fi.User, *fi.Group, error) {
switch b.Distribution {
case distributions.DistributionDebian9, distributions.DistributionDebian10:
users = []string{"admin", "root"}
case distributions.DistributionUbuntu1604, distributions.DistributionUbuntu1804, distributions.DistributionUbuntu2004:
case distributions.DistributionUbuntu1604, distributions.DistributionUbuntu1804, distributions.DistributionUbuntu2004, distributions.DistributionUbuntu2010:
users = []string{"ubuntu"}
case distributions.DistributionCentos7, distributions.DistributionCentos8:
users = []string{"centos"}

View File

@ -513,7 +513,8 @@ 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 == distributions.DistributionUbuntu1804 || b.Distribution == distributions.DistributionUbuntu2004 {
switch b.Distribution {
case distributions.DistributionUbuntu1804, distributions.DistributionUbuntu2004, distributions.DistributionUbuntu2010:
c.ResolverConfig = s("/run/systemd/resolve/resolv.conf")
}
}

View File

@ -48,8 +48,15 @@ func (b *MiscUtilsBuilder) Build(c *fi.ModelBuilderContext) error {
packages = append(packages, "curl")
packages = append(packages, "wget")
packages = append(packages, "perl")
packages = append(packages, "python-apt")
packages = append(packages, "apt-transport-https")
// TODO: Do we really need python-apt?
switch b.Distribution {
case distributions.DistributionUbuntu2010:
// python-apt not available (though python3-apt is)
default:
packages = append(packages, "python-apt")
}
}
} else if b.Distribution.IsRHELFamily() {
// TODO: These packages have been auto-installed for a long time, and likely we don't need all of them any longer

View File

@ -28,6 +28,7 @@ const (
DistributionUbuntu1604 Distribution = "xenial"
DistributionUbuntu1804 Distribution = "bionic"
DistributionUbuntu2004 Distribution = "focal"
DistributionUbuntu2010 Distribution = "groovy"
DistributionAmazonLinux2 Distribution = "amazonlinux2"
DistributionRhel7 Distribution = "rhel7"
DistributionCentos7 Distribution = "centos7"
@ -41,7 +42,7 @@ func (d Distribution) IsDebianFamily() bool {
switch d {
case DistributionDebian9, DistributionDebian10:
return true
case DistributionUbuntu1604, DistributionUbuntu1804, DistributionUbuntu2004:
case DistributionUbuntu1604, DistributionUbuntu1804, DistributionUbuntu2004, DistributionUbuntu2010:
return true
case DistributionCentos7, DistributionRhel7, DistributionCentos8, DistributionRhel8, DistributionAmazonLinux2:
return false
@ -57,7 +58,7 @@ func (d Distribution) IsUbuntu() bool {
switch d {
case DistributionDebian9, DistributionDebian10:
return false
case DistributionUbuntu1604, DistributionUbuntu1804, DistributionUbuntu2004:
case DistributionUbuntu1604, DistributionUbuntu1804, DistributionUbuntu2004, DistributionUbuntu2010:
return true
case DistributionCentos7, DistributionRhel7, DistributionCentos8, DistributionRhel8, DistributionAmazonLinux2:
return false
@ -73,7 +74,7 @@ func (d Distribution) IsRHELFamily() bool {
switch d {
case DistributionCentos7, DistributionRhel7, DistributionCentos8, DistributionRhel8, DistributionAmazonLinux2:
return true
case DistributionUbuntu1604, DistributionUbuntu1804, DistributionUbuntu2004, DistributionDebian9, DistributionDebian10:
case DistributionUbuntu1604, DistributionUbuntu1804, DistributionUbuntu2004, DistributionUbuntu2010, DistributionDebian9, DistributionDebian10:
return false
case DistributionFlatcar, DistributionContainerOS:
return false
@ -85,7 +86,7 @@ func (d Distribution) IsRHELFamily() bool {
func (d Distribution) IsSystemd() bool {
switch d {
case DistributionUbuntu1604, DistributionUbuntu1804, DistributionUbuntu2004, DistributionDebian9, DistributionDebian10:
case DistributionUbuntu1604, DistributionUbuntu1804, DistributionUbuntu2004, DistributionUbuntu2010, DistributionDebian9, DistributionDebian10:
return true
case DistributionCentos7, DistributionRhel7, DistributionCentos8, DistributionRhel8, DistributionAmazonLinux2:
return true

View File

@ -64,6 +64,8 @@ func FindDistribution(rootfs string) (Distribution, error) {
return DistributionUbuntu1804, nil
case "ubuntu-20.04":
return DistributionUbuntu2004, nil
case "ubuntu-20.10":
return DistributionUbuntu2010, nil
}
// Some distros have a more verbose VERSION_ID

View File

@ -99,6 +99,11 @@ func TestFindDistribution(t *testing.T) {
err: nil,
expected: DistributionUbuntu2004,
},
{
rootfs: "ubuntu2010",
err: nil,
expected: DistributionUbuntu2010,
},
{
rootfs: "notfound",
err: fmt.Errorf("reading /etc/os-release: open tests/notfound/etc/os-release: no such file or directory"),

View File

@ -0,0 +1,12 @@
NAME="Ubuntu"
VERSION="20.10 (Groovy Gorilla)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.10"
VERSION_ID="20.10"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=groovy
UBUNTU_CODENAME=groovy