diff --git a/nodeup/pkg/model/context.go b/nodeup/pkg/model/context.go index 86013dde62..0f8198fe74 100644 --- a/nodeup/pkg/model/context.go +++ b/nodeup/pkg/model/context.go @@ -589,32 +589,18 @@ func (c *NodeupModelContext) NodeName() (string, error) { return strings.ToLower(strings.TrimSpace(nodeName)), nil } -func (b *NodeupModelContext) AddCNIBinAssets(c *fi.NodeupModelBuilderContext, assetNames []string) error { - for _, assetName := range assetNames { - re, err := regexp.Compile(fmt.Sprintf("^%s$", regexp.QuoteMeta(assetName))) - if err != nil { - return err - } - if err := b.addCNIBinAsset(c, re); err != nil { - return err - } - } - return nil -} +func (b *NodeupModelContext) AddCNIBinAssets(c *fi.NodeupModelBuilderContext) error { + f := b.Assets.FindMatches(regexp.MustCompile(".*")) -func (b *NodeupModelContext) addCNIBinAsset(c *fi.NodeupModelBuilderContext, assetPath *regexp.Regexp) error { - name, res, err := b.Assets.FindMatch(assetPath) - if err != nil { - return err + for name, res := range f { + c.AddTask(&nodetasks.File{ + Path: filepath.Join(b.CNIBinDir(), name), + Contents: res, + Type: nodetasks.FileType_File, + Mode: fi.PtrTo("0755"), + }) } - c.AddTask(&nodetasks.File{ - Path: filepath.Join(b.CNIBinDir(), name), - Contents: res, - Type: nodetasks.FileType_File, - Mode: fi.PtrTo("0755"), - }) - return nil } diff --git a/nodeup/pkg/model/networking/common.go b/nodeup/pkg/model/networking/common.go index 0f3b170fc5..517895c1cc 100644 --- a/nodeup/pkg/model/networking/common.go +++ b/nodeup/pkg/model/networking/common.go @@ -30,27 +30,7 @@ var _ fi.NodeupModelBuilder = &CommonBuilder{} // Build is responsible for copying the common CNI binaries func (b *CommonBuilder) Build(c *fi.NodeupModelBuilderContext) error { - // Based on https://github.com/containernetworking/plugins/releases/tag/v0.7.5 - assets := []string{ - "bridge", - "dhcp", - "flannel", - "host-device", - "host-local", - "ipvlan", - "loopback", - "macvlan", - "portmap", - "ptp", - "tuning", - "vlan", - "bandwidth", - "firewall", - "sbr", - "static", - } - - if err := b.AddCNIBinAssets(c, assets); err != nil { + if err := b.AddCNIBinAssets(c); err != nil { return err } diff --git a/upup/pkg/fi/cloudup/networking.go b/upup/pkg/fi/cloudup/networking.go index 4481e4c365..4775638929 100644 --- a/upup/pkg/fi/cloudup/networking.go +++ b/upup/pkg/fi/cloudup/networking.go @@ -34,10 +34,14 @@ import ( // https://github.com/kubernetes/kubernetes/issues/30338 const ( - // defaultCNIAssetAmd64K8s_22 is the CNI tarball for k8s >= 1.22 + // CNI tarball for k8s >= 1.22 defaultCNIAssetAmd64K8s_22 = "https://storage.googleapis.com/k8s-artifacts-cni/release/v0.9.1/cni-plugins-linux-amd64-v0.9.1.tgz" defaultCNIAssetArm64K8s_22 = "https://storage.googleapis.com/k8s-artifacts-cni/release/v0.9.1/cni-plugins-linux-arm64-v0.9.1.tgz" + // CNI tarball for k8s >= 1.27 + defaultCNIAssetAmd64K8s_27 = "https://storage.googleapis.com/k8s-artifacts-cni/release/v1.2.0/cni-plugins-linux-amd64-v1.2.0.tgz" + defaultCNIAssetArm64K8s_27 = "https://storage.googleapis.com/k8s-artifacts-cni/release/v1.2.0/cni-plugins-linux-arm64-v1.2.0.tgz" + // Environment variable for overriding CNI url ENV_VAR_CNI_ASSET_URL = "CNI_VERSION_URL" ENV_VAR_CNI_ASSET_HASH = "CNI_ASSET_HASH_STRING" @@ -72,10 +76,18 @@ func findCNIAssets(c *kopsapi.Cluster, assetBuilder *assets.AssetBuilder, arch a switch arch { case architectures.ArchitectureAmd64: - cniAssetURL = defaultCNIAssetAmd64K8s_22 + if c.IsKubernetesLT("1.27") { + cniAssetURL = defaultCNIAssetAmd64K8s_22 + } else { + cniAssetURL = defaultCNIAssetAmd64K8s_27 + } klog.V(2).Infof("Adding default ARM64 CNI plugin binaries asset: %s", cniAssetURL) case architectures.ArchitectureArm64: - cniAssetURL = defaultCNIAssetArm64K8s_22 + if c.IsKubernetesLT("1.27") { + cniAssetURL = defaultCNIAssetArm64K8s_22 + } else { + cniAssetURL = defaultCNIAssetArm64K8s_27 + } klog.V(2).Infof("Adding default AMD64 CNI plugin binaries asset: %s", cniAssetURL) default: return nil, nil, fmt.Errorf("unknown arch for CNI plugin binaries asset: %s", arch)