Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions pkg/model/components/etcd.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ type EtcdOptionsBuilder struct {
var _ loader.ClusterOptionsBuilder = &EtcdOptionsBuilder{}

const (
DefaultEtcd3Version_1_22 = "3.5.25"
DefaultEtcd3Version_1_34 = "3.6.6"
DefaultEtcd3Version_1_22 = "3.5.30"
DefaultEtcd3Version_1_34 = "3.6.11"
)

// BuildOptions is responsible for filling in the defaults for the etcd cluster model
Expand Down
42 changes: 21 additions & 21 deletions pkg/model/components/etcdmanager/options.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import (
"sort"
"strings"

"github.com/blang/semver/v4"
"k8s.io/klog/v2"
"k8s.io/kops/pkg/apis/kops"
"k8s.io/kops/pkg/featureflag"
Expand Down Expand Up @@ -89,36 +90,35 @@ type etcdVersion struct {
SymlinkToVersion string
}

var etcdSupportedImages = []etcdVersion{
{Version: "3.4.3", SymlinkToVersion: "3.4.13"},
{Version: "3.4.13", Image: "registry.k8s.io/etcd:v3.4.13"},
{Version: "3.5.0", SymlinkToVersion: "3.5.25"},
{Version: "3.5.1", SymlinkToVersion: "3.5.25"},
{Version: "3.5.3", SymlinkToVersion: "3.5.25"},
{Version: "3.5.4", SymlinkToVersion: "3.5.25"},
{Version: "3.5.6", SymlinkToVersion: "3.5.25"},
{Version: "3.5.7", SymlinkToVersion: "3.5.25"},
{Version: "3.5.9", SymlinkToVersion: "3.5.25"},
{Version: "3.5.13", SymlinkToVersion: "3.5.25"},
{Version: "3.5.17", SymlinkToVersion: "3.5.25"},
{Version: "3.5.21", SymlinkToVersion: "3.5.25"},
{Version: "3.5.23", SymlinkToVersion: "3.5.25"},
{Version: "3.5.24", SymlinkToVersion: "3.5.25"},
{Version: "3.5.25", Image: "registry.k8s.io/etcd:v3.5.25"},
{Version: "3.6.5", SymlinkToVersion: "3.6.6"},
{Version: "3.6.6", Image: "registry.k8s.io/etcd:v3.6.6"},
// etcdLatestImages lists the latest etcd patch image bundled by kops for each
// supported minor. All earlier patch versions within the same minor are
// generated as SymlinkToVersion entries by etcdSupportedVersions.
var etcdLatestImages = []etcdVersion{
{Version: "3.5.30", Image: "registry.k8s.io/etcd:v3.5.30"},
{Version: "3.6.11", Image: "registry.k8s.io/etcd:v3.6.11"},
}

func etcdSupportedVersions() []etcdVersion {
var versions []etcdVersion
versions = append(versions, etcdSupportedImages...)
sort.Slice(versions, func(i, j int) bool { return versions[i].Version < versions[j].Version })
for _, latest := range etcdLatestImages {
sv := semver.MustParse(latest.Version)
versions = append(versions, latest)
for patch := uint64(0); patch < sv.Patch; patch++ {
versions = append(versions, etcdVersion{
Version: fmt.Sprintf("%d.%d.%d", sv.Major, sv.Minor, patch),
SymlinkToVersion: latest.Version,
})
}
}
sort.Slice(versions, func(i, j int) bool {
return semver.MustParse(versions[i].Version).LT(semver.MustParse(versions[j].Version))
})
return versions
}

func etcdVersionIsSupported(version string) bool {
version = strings.TrimPrefix(version, "v")
for _, etcdVersion := range etcdSupportedImages {
for _, etcdVersion := range etcdSupportedVersions() {
if etcdVersion.Version == version {
return true
}
Expand Down
154 changes: 80 additions & 74 deletions pkg/model/components/etcdmanager/tests/interval/tasks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -119,50 +119,25 @@ Contents: |
- mountPath: /opt
name: opt
- args:
- --target-dir=/opt/etcd-v3.4.13
- --target-dir=/opt/etcd-v3.5.30
- --src=/usr/local/bin/etcd
- --src=/usr/local/bin/etcdctl
command:
- /opt/kops-utils/kops-utils-cp
image: registry.k8s.io/etcd:v3.4.13
name: init-etcd-3-4-13
image: registry.k8s.io/etcd:v3.5.30
name: init-etcd-3-5-30
resources: {}
volumeMounts:
- mountPath: /opt
name: opt
- args:
- --target-dir=/opt/etcd-v3.5.25
- --src=/usr/local/bin/etcd
- --src=/usr/local/bin/etcdctl
command:
- /opt/kops-utils/kops-utils-cp
image: registry.k8s.io/etcd:v3.5.25
name: init-etcd-3-5-25
resources: {}
volumeMounts:
- mountPath: /opt
name: opt
- args:
- --target-dir=/opt/etcd-v3.6.6
- --target-dir=/opt/etcd-v3.6.11
- --src=/usr/local/bin/etcd
- --src=/usr/local/bin/etcdctl
command:
- /opt/kops-utils/kops-utils-cp
image: registry.k8s.io/etcd:v3.6.6
name: init-etcd-3-6-6
resources: {}
volumeMounts:
- mountPath: /opt
name: opt
- args:
- --symlink
- --target-dir=/opt/etcd-v3.4.3
- --src=/opt/etcd-v3.4.13/etcd
- --src=/opt/etcd-v3.4.13/etcdctl
command:
- /opt/kops-utils/kops-utils-cp
image: registry.k8s.io/kops/kops-utils-cp:1.35.0-beta.1
name: init-etcd-symlinks-3-4-13
image: registry.k8s.io/etcd:v3.6.11
name: init-etcd-3-6-11
resources: {}
volumeMounts:
- mountPath: /opt
Expand All @@ -171,35 +146,63 @@ Contents: |
- --symlink
- --target-dir=/opt/etcd-v3.5.0
- --target-dir=/opt/etcd-v3.5.1
- --target-dir=/opt/etcd-v3.5.10
- --target-dir=/opt/etcd-v3.5.11
- --target-dir=/opt/etcd-v3.5.12
- --target-dir=/opt/etcd-v3.5.13
- --target-dir=/opt/etcd-v3.5.14
- --target-dir=/opt/etcd-v3.5.15
- --target-dir=/opt/etcd-v3.5.16
- --target-dir=/opt/etcd-v3.5.17
- --target-dir=/opt/etcd-v3.5.18
- --target-dir=/opt/etcd-v3.5.19
- --target-dir=/opt/etcd-v3.5.2
- --target-dir=/opt/etcd-v3.5.20
- --target-dir=/opt/etcd-v3.5.21
- --target-dir=/opt/etcd-v3.5.22
- --target-dir=/opt/etcd-v3.5.23
- --target-dir=/opt/etcd-v3.5.24
- --target-dir=/opt/etcd-v3.5.25
- --target-dir=/opt/etcd-v3.5.26
- --target-dir=/opt/etcd-v3.5.27
- --target-dir=/opt/etcd-v3.5.28
- --target-dir=/opt/etcd-v3.5.29
- --target-dir=/opt/etcd-v3.5.3
- --target-dir=/opt/etcd-v3.5.4
- --target-dir=/opt/etcd-v3.5.5
- --target-dir=/opt/etcd-v3.5.6
- --target-dir=/opt/etcd-v3.5.7
- --target-dir=/opt/etcd-v3.5.8
- --target-dir=/opt/etcd-v3.5.9
- --src=/opt/etcd-v3.5.25/etcd
- --src=/opt/etcd-v3.5.25/etcdctl
- --src=/opt/etcd-v3.5.30/etcd
- --src=/opt/etcd-v3.5.30/etcdctl
command:
- /opt/kops-utils/kops-utils-cp
image: registry.k8s.io/kops/kops-utils-cp:1.35.0-beta.1
name: init-etcd-symlinks-3-5-25
name: init-etcd-symlinks-3-5-30
resources: {}
volumeMounts:
- mountPath: /opt
name: opt
- args:
- --symlink
- --target-dir=/opt/etcd-v3.6.0
- --target-dir=/opt/etcd-v3.6.1
- --target-dir=/opt/etcd-v3.6.10
- --target-dir=/opt/etcd-v3.6.2
- --target-dir=/opt/etcd-v3.6.3
- --target-dir=/opt/etcd-v3.6.4
- --target-dir=/opt/etcd-v3.6.5
- --src=/opt/etcd-v3.6.6/etcd
- --src=/opt/etcd-v3.6.6/etcdctl
- --target-dir=/opt/etcd-v3.6.6
- --target-dir=/opt/etcd-v3.6.7
- --target-dir=/opt/etcd-v3.6.8
- --target-dir=/opt/etcd-v3.6.9
- --src=/opt/etcd-v3.6.11/etcd
- --src=/opt/etcd-v3.6.11/etcdctl
command:
- /opt/kops-utils/kops-utils-cp
image: registry.k8s.io/kops/kops-utils-cp:1.35.0-beta.1
name: init-etcd-symlinks-3-6-6
name: init-etcd-symlinks-3-6-11
resources: {}
volumeMounts:
- mountPath: /opt
Expand Down Expand Up @@ -289,50 +292,25 @@ Contents: |
- mountPath: /opt
name: opt
- args:
- --target-dir=/opt/etcd-v3.4.13
- --target-dir=/opt/etcd-v3.5.30
- --src=/usr/local/bin/etcd
- --src=/usr/local/bin/etcdctl
command:
- /opt/kops-utils/kops-utils-cp
image: registry.k8s.io/etcd:v3.4.13
name: init-etcd-3-4-13
image: registry.k8s.io/etcd:v3.5.30
name: init-etcd-3-5-30
resources: {}
volumeMounts:
- mountPath: /opt
name: opt
- args:
- --target-dir=/opt/etcd-v3.5.25
- --src=/usr/local/bin/etcd
- --src=/usr/local/bin/etcdctl
command:
- /opt/kops-utils/kops-utils-cp
image: registry.k8s.io/etcd:v3.5.25
name: init-etcd-3-5-25
resources: {}
volumeMounts:
- mountPath: /opt
name: opt
- args:
- --target-dir=/opt/etcd-v3.6.6
- --target-dir=/opt/etcd-v3.6.11
- --src=/usr/local/bin/etcd
- --src=/usr/local/bin/etcdctl
command:
- /opt/kops-utils/kops-utils-cp
image: registry.k8s.io/etcd:v3.6.6
name: init-etcd-3-6-6
resources: {}
volumeMounts:
- mountPath: /opt
name: opt
- args:
- --symlink
- --target-dir=/opt/etcd-v3.4.3
- --src=/opt/etcd-v3.4.13/etcd
- --src=/opt/etcd-v3.4.13/etcdctl
command:
- /opt/kops-utils/kops-utils-cp
image: registry.k8s.io/kops/kops-utils-cp:1.35.0-beta.1
name: init-etcd-symlinks-3-4-13
image: registry.k8s.io/etcd:v3.6.11
name: init-etcd-3-6-11
resources: {}
volumeMounts:
- mountPath: /opt
Expand All @@ -341,35 +319,63 @@ Contents: |
- --symlink
- --target-dir=/opt/etcd-v3.5.0
- --target-dir=/opt/etcd-v3.5.1
- --target-dir=/opt/etcd-v3.5.10
- --target-dir=/opt/etcd-v3.5.11
- --target-dir=/opt/etcd-v3.5.12
- --target-dir=/opt/etcd-v3.5.13
- --target-dir=/opt/etcd-v3.5.14
- --target-dir=/opt/etcd-v3.5.15
- --target-dir=/opt/etcd-v3.5.16
- --target-dir=/opt/etcd-v3.5.17
- --target-dir=/opt/etcd-v3.5.18
- --target-dir=/opt/etcd-v3.5.19
- --target-dir=/opt/etcd-v3.5.2
- --target-dir=/opt/etcd-v3.5.20
- --target-dir=/opt/etcd-v3.5.21
- --target-dir=/opt/etcd-v3.5.22
- --target-dir=/opt/etcd-v3.5.23
- --target-dir=/opt/etcd-v3.5.24
- --target-dir=/opt/etcd-v3.5.25
- --target-dir=/opt/etcd-v3.5.26
- --target-dir=/opt/etcd-v3.5.27
- --target-dir=/opt/etcd-v3.5.28
- --target-dir=/opt/etcd-v3.5.29
- --target-dir=/opt/etcd-v3.5.3
- --target-dir=/opt/etcd-v3.5.4
- --target-dir=/opt/etcd-v3.5.5
- --target-dir=/opt/etcd-v3.5.6
- --target-dir=/opt/etcd-v3.5.7
- --target-dir=/opt/etcd-v3.5.8
- --target-dir=/opt/etcd-v3.5.9
- --src=/opt/etcd-v3.5.25/etcd
- --src=/opt/etcd-v3.5.25/etcdctl
- --src=/opt/etcd-v3.5.30/etcd
- --src=/opt/etcd-v3.5.30/etcdctl
command:
- /opt/kops-utils/kops-utils-cp
image: registry.k8s.io/kops/kops-utils-cp:1.35.0-beta.1
name: init-etcd-symlinks-3-5-25
name: init-etcd-symlinks-3-5-30
resources: {}
volumeMounts:
- mountPath: /opt
name: opt
- args:
- --symlink
- --target-dir=/opt/etcd-v3.6.0
- --target-dir=/opt/etcd-v3.6.1
- --target-dir=/opt/etcd-v3.6.10
- --target-dir=/opt/etcd-v3.6.2
- --target-dir=/opt/etcd-v3.6.3
- --target-dir=/opt/etcd-v3.6.4
- --target-dir=/opt/etcd-v3.6.5
- --src=/opt/etcd-v3.6.6/etcd
- --src=/opt/etcd-v3.6.6/etcdctl
- --target-dir=/opt/etcd-v3.6.6
- --target-dir=/opt/etcd-v3.6.7
- --target-dir=/opt/etcd-v3.6.8
- --target-dir=/opt/etcd-v3.6.9
- --src=/opt/etcd-v3.6.11/etcd
- --src=/opt/etcd-v3.6.11/etcdctl
command:
- /opt/kops-utils/kops-utils-cp
image: registry.k8s.io/kops/kops-utils-cp:1.35.0-beta.1
name: init-etcd-symlinks-3-6-6
name: init-etcd-symlinks-3-6-11
resources: {}
volumeMounts:
- mountPath: /opt
Expand Down
Loading
Loading