Update CNI plugins to v1.2.0 for K8s 1.27+

This commit is contained in:
Ciprian Hacman 2023-05-20 10:44:13 +03:00
parent 35cc07324d
commit cd59ed1a56
3 changed files with 25 additions and 47 deletions

View File

@ -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
}

View File

@ -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
}

View File

@ -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)