From 982539ca7fec33c7b28042e23ef2051d955d5fe5 Mon Sep 17 00:00:00 2001 From: liujian Date: Tue, 17 Jun 2025 15:26:54 +0800 Subject: [PATCH] feat: add more default kubernetes version (#2618) Signed-off-by: joyceliu --- .../precheck/env_check/defaults/main.yaml | 2 +- builtin/core/defaults/config/v1.23.yaml | 93 +++++++++++++++++++ builtin/core/defaults/config/v1.24.yaml | 93 +++++++++++++++++++ builtin/core/defaults/config/v1.25.yaml | 93 +++++++++++++++++++ builtin/core/defaults/config/v1.26.yaml | 93 +++++++++++++++++++ builtin/core/defaults/config/v1.27.yaml | 93 +++++++++++++++++++ .../config/{v1.31.2.yaml => v1.28.yaml} | 80 ++++++++-------- .../config/{v1.23.15.yaml => v1.29.yaml} | 53 ++++++++--- builtin/core/defaults/config/v1.30.yaml | 93 +++++++++++++++++++ builtin/core/defaults/config/v1.31.yaml | 93 +++++++++++++++++++ builtin/core/defaults/config/v1.32.yaml | 93 +++++++++++++++++++ builtin/core/defaults/config/v1.33.yaml | 93 +++++++++++++++++++ .../precheck/env_check/defaults/main.yaml | 2 +- cmd/kk/app/options/builtin/builtin.go | 37 +++++--- cmd/kk/app/options/builtin/create.go | 6 +- 15 files changed, 947 insertions(+), 70 deletions(-) create mode 100644 builtin/core/defaults/config/v1.23.yaml create mode 100644 builtin/core/defaults/config/v1.24.yaml create mode 100644 builtin/core/defaults/config/v1.25.yaml create mode 100644 builtin/core/defaults/config/v1.26.yaml create mode 100644 builtin/core/defaults/config/v1.27.yaml rename builtin/core/defaults/config/{v1.31.2.yaml => v1.28.yaml} (53%) rename builtin/core/defaults/config/{v1.23.15.yaml => v1.29.yaml} (50%) create mode 100644 builtin/core/defaults/config/v1.30.yaml create mode 100644 builtin/core/defaults/config/v1.31.yaml create mode 100644 builtin/core/defaults/config/v1.32.yaml create mode 100644 builtin/core/defaults/config/v1.33.yaml diff --git a/builtin/capkk/roles/precheck/env_check/defaults/main.yaml b/builtin/capkk/roles/precheck/env_check/defaults/main.yaml index 50438854..61275658 100644 --- a/builtin/capkk/roles/precheck/env_check/defaults/main.yaml +++ b/builtin/capkk/roles/precheck/env_check/defaults/main.yaml @@ -10,7 +10,7 @@ cluster_require: - '"centos"' require_network_plugin: ['calico', 'flannel', 'cilium', 'hybridnet', 'kube-ovn'] # the minimal version of kubernetes to be installed. - kube_version_min_required: v1.19.10 + kube_version_min_required: v1.23.0 # memory size for each kube_control_plane node.(unit kB) # should be greater than or equal to minimal_master_memory_mb. minimal_master_memory_mb: 10 diff --git a/builtin/core/defaults/config/v1.23.yaml b/builtin/core/defaults/config/v1.23.yaml new file mode 100644 index 00000000..18b24611 --- /dev/null +++ b/builtin/core/defaults/config/v1.23.yaml @@ -0,0 +1,93 @@ +apiVersion: kubekey.kubesphere.io/v1 +kind: Config +spec: + # zone for kk. how to download files + # kkzone: cn + # work_dir is the directory where the artifact is extracted. + # work_dir: /var/lib/kubekey/ + # the version of kubernetes to be installed. + # should be greater than or equal to kube_version_min_required. + kube_version: {{ .kube_version }} + # helm binary + helm_version: v3.8.2 + # etcd binary + etcd_version: v3.5.4 + # ========== image registry ========== + # keepalived image tag. Used for load balancing when there are multiple image registry nodes. + # keepalived_version: stable + # ========== image registry: harbor ========== + # harbor image tag + # harbor_version: v2.6.3 + # docker-compose binary + # dockercompose_version: v2.12.2 + # ========== image registry: registry ========== + # registry image tag + # registry_version: 2.8.3 + # ========== cri ========== + # crictl binary + crictl_version: v1.23.0 + # ========== cri: docker ========== + # docker binary + docker_version: 20.10.18 + # cridockerd. Required when kube_version is greater than 1.24 + # cridockerd_version: v0.3.10 + # ========== cri: containerd ========== + # containerd binary + # containerd_version: v1.6.8 + # runc binary + # runc_version: v1.1.4 + # ========== cni ========== + # cni_plugins binary + # cni_plugins_version: v1.1.1 + # ========== cni: calico ========== + # calicoctl binary + calico_version: v3.24.5 + # ========== cni: cilium ========== + # cilium helm + # cilium_version: 1.12.6 + # ========== cni: kubeovn ========== + # kubeovn helm + # kubeovn_version: 1.10.0 + # ========== cni: hybridnet ========== + # hybridnet helm + # hybridnet_version: 0.6.8 + # ========== storageclass ========== + # ========== storageclass: nfs ========== + # nfs provisioner helm version + # nfs_provisioner_version: 4.0.18 + kubernetes: + controller_manager: + extra_args: + cluster-signing-duration: 87600h + cri: + sandbox_image: + tag: "3.6" + # support: containerd,docker + container_manager: docker + + # image_manifests: + # - docker.io/calico/apiserver:v3.24.5 + # - docker.io/calico/cni:v3.24.5 + # - docker.io/calico/csi:v3.24.5 + # - docker.io/calico/kube-controllers:v3.24.5 + # - docker.io/calico/node-driver-registrar:v3.24.5 + # - docker.io/calico/node:v3.24.5 + # - docker.io/calico/pod2daemon-flexvol:v3.24.5 + # - docker.io/kubesphere/k8s-dns-node-cache:1.22.20 + # - docker.io/openebs/provisioner-localpv:3.3.0 + # - docker.io/coredns/coredns:1.8.6 + # - docker.io/kubesphere/kube-apiserver:{{ .kube_version }} + # - docker.io/kubesphere/kube-controller-manager:{{ .kube_version }} + # - docker.io/kubesphere/kube-proxy:{{ .kube_version }} + # - docker.io/kubesphere/kube-scheduler:{{ .kube_version }} + # - docker.io/kubesphere/pause:3.6 + # - quay.io/tigera/operator:v1.36.5 + # - docker.io/calico/ctl:v3.24.5 + # - docker.io/calico/typha:v3.24.5 + # - docker.io/calico/apiserver:v3.24.5 + # - docker.io/calico/kube-controllers:v3.24.5 + # - docker.io/calico/node:v3.24.5 + # - docker.io/calico/pod2daemon-flexvol:v3.24.5 + # - docker.io/calico/cni:v3.24.5 + # - docker.io/calico/node-driver-registrar:v3.24.5 + # - docker.io/calico/csi:v3.24.5 diff --git a/builtin/core/defaults/config/v1.24.yaml b/builtin/core/defaults/config/v1.24.yaml new file mode 100644 index 00000000..ddfab449 --- /dev/null +++ b/builtin/core/defaults/config/v1.24.yaml @@ -0,0 +1,93 @@ +apiVersion: kubekey.kubesphere.io/v1 +kind: Config +spec: + # zone for kk. how to download files + # kkzone: cn + # work_dir is the directory where the artifact is extracted. + # work_dir: /var/lib/kubekey/ + # the version of kubernetes to be installed. + # should be greater than or equal to kube_version_min_required. + kube_version: {{ .kube_version }} + # helm binary + helm_version: v3.10.3 + # etcd binary + etcd_version: v3.5.6 + # ========== image registry ========== + # keepalived image tag. Used for load balancing when there are multiple image registry nodes. + # keepalived_version: stable + # ========== image registry: harbor ========== + # harbor image tag + # harbor_version: v2.7.1 + # docker-compose binary + # dockercompose_version: v2.14.0 + # ========== image registry: registry ========== + # registry image tag + # registry_version: 2.8.3 + # ========== cri ========== + # crictl binary + crictl_version: v1.24.0 + # ========== cri: docker ========== + # docker binary + # docker_version: 20.10.24 + # cridockerd. Required when kube_version is greater than 1.24 + # cridockerd_version: v0.3.1 + # ========== cri: containerd ========== + # containerd binary + containerd_version: v1.6.16 + # runc binary + runc_version: v1.1.4 + # ========== cni ========== + # cni_plugins binary + # cni_plugins_version: v1.1.1 + # ========== cni: calico ========== + # calicoctl binary + calico_version: v3.25.1 + # ========== cni: cilium ========== + # cilium helm + # cilium_version: 1.13.5 + # ========== cni: kubeovn ========== + # kubeovn helm + # kubeovn_version: 1.10.0 + # ========== cni: hybridnet ========== + # hybridnet helm + # hybridnet_version: 0.6.8 + # ========== storageclass ========== + # ========== storageclass: nfs ========== + # nfs provisioner helm version + # nfs_provisioner_version: 4.0.18 + kubernetes: + controller_manager: + extra_args: + cluster-signing-duration: 87600h + cri: + sandbox_image: + tag: "3.6" + # support: containerd,docker + container_manager: containerd + + # image_manifests: + # - docker.io/calico/apiserver:v3.25.1 + # - docker.io/calico/cni:v3.25.1 + # - docker.io/calico/csi:v3.25.1 + # - docker.io/calico/kube-controllers:v3.25.1 + # - docker.io/calico/node-driver-registrar:v3.25.1 + # - docker.io/calico/node:v3.25.1 + # - docker.io/calico/pod2daemon-flexvol:v3.25.1 + # - docker.io/kubesphere/k8s-dns-node-cache:1.22.20 + # - docker.io/openebs/provisioner-localpv:3.3.0 + # - docker.io/coredns/coredns:1.8.6 + # - docker.io/kubesphere/kube-apiserver:{{ .kube_version }} + # - docker.io/kubesphere/kube-controller-manager:{{ .kube_version }} + # - docker.io/kubesphere/kube-proxy:{{ .kube_version }} + # - docker.io/kubesphere/kube-scheduler:{{ .kube_version }} + # - docker.io/kubesphere/pause:3.6 + # - quay.io/tigera/operator:v1.36.5 + # - docker.io/calico/ctl:v3.25.1 + # - docker.io/calico/typha:v3.25.1 + # - docker.io/calico/apiserver:v3.25.1 + # - docker.io/calico/kube-controllers:v3.25.1 + # - docker.io/calico/node:v3.25.1 + # - docker.io/calico/pod2daemon-flexvol:v3.25.1 + # - docker.io/calico/cni:v3.25.1 + # - docker.io/calico/node-driver-registrar:v3.25.1 + # - docker.io/calico/csi:v3.25.1 diff --git a/builtin/core/defaults/config/v1.25.yaml b/builtin/core/defaults/config/v1.25.yaml new file mode 100644 index 00000000..77501b75 --- /dev/null +++ b/builtin/core/defaults/config/v1.25.yaml @@ -0,0 +1,93 @@ +apiVersion: kubekey.kubesphere.io/v1 +kind: Config +spec: + # zone for kk. how to download files + # kkzone: cn + # work_dir is the directory where the artifact is extracted. + # work_dir: /var/lib/kubekey/ + # the version of kubernetes to be installed. + # should be greater than or equal to kube_version_min_required. + kube_version: {{ .kube_version }} + # helm binary + helm_version: v3.10.3 + # etcd binary + etcd_version: v3.5.7 + # ========== image registry ========== + # keepalived image tag. Used for load balancing when there are multiple image registry nodes. + # keepalived_version: stable + # ========== image registry: harbor ========== + # harbor image tag + # harbor_version: v2.8.1 + # docker-compose binary + # dockercompose_version: v2.15.1 + # ========== image registry: registry ========== + # registry image tag + # registry_version: 2.8.3 + # ========== cri ========== + # crictl binary + crictl_version: v1.25.0 + # ========== cri: docker ========== + # docker binary + # docker_version: 20.10.24 + # cridockerd. Required when kube_version is greater than 1.24 + # cridockerd_version: v0.3.1 + # ========== cri: containerd ========== + # containerd binary + containerd_version: v1.6.19 + # runc binary + runc_version: v1.1.4 + # ========== cni ========== + # cni_plugins binary + # cni_plugins_version: v1.1.1 + # ========== cni: calico ========== + # calicoctl binary + calico_version: v3.25.1 + # ========== cni: cilium ========== + # cilium helm + # cilium_version: 1.13.5 + # ========== cni: kubeovn ========== + # kubeovn helm + # kubeovn_version: 1.10.0 + # ========== cni: hybridnet ========== + # hybridnet helm + # hybridnet_version: 0.6.8 + # ========== storageclass ========== + # ========== storageclass: nfs ========== + # nfs provisioner helm version + # nfs_provisioner_version: 4.0.18 + kubernetes: + controller_manager: + extra_args: + cluster-signing-duration: 87600h + cri: + sandbox_image: + tag: "3.6" + # support: containerd,docker + container_manager: containerd + + # image_manifests: + # - docker.io/calico/apiserver:v3.25.1 + # - docker.io/calico/cni:v3.25.1 + # - docker.io/calico/csi:v3.25.1 + # - docker.io/calico/kube-controllers:v3.25.1 + # - docker.io/calico/node-driver-registrar:v3.25.1 + # - docker.io/calico/node:v3.25.1 + # - docker.io/calico/pod2daemon-flexvol:v3.25.1 + # - docker.io/kubesphere/k8s-dns-node-cache:1.22.20 + # - docker.io/openebs/provisioner-localpv:3.3.0 + # - docker.io/coredns/coredns:1.8.6 + # - docker.io/kubesphere/kube-apiserver:{{ .kube_version }} + # - docker.io/kubesphere/kube-controller-manager:{{ .kube_version }} + # - docker.io/kubesphere/kube-proxy:{{ .kube_version }} + # - docker.io/kubesphere/kube-scheduler:{{ .kube_version }} + # - docker.io/kubesphere/pause:3.6 + # - quay.io/tigera/operator:v1.36.5 + # - docker.io/calico/ctl:v3.25.1 + # - docker.io/calico/typha:v3.25.1 + # - docker.io/calico/apiserver:v3.25.1 + # - docker.io/calico/kube-controllers:v3.25.1 + # - docker.io/calico/node:v3.25.1 + # - docker.io/calico/pod2daemon-flexvol:v3.25.1 + # - docker.io/calico/cni:v3.25.1 + # - docker.io/calico/node-driver-registrar:v3.25.1 + # - docker.io/calico/csi:v3.25.1 diff --git a/builtin/core/defaults/config/v1.26.yaml b/builtin/core/defaults/config/v1.26.yaml new file mode 100644 index 00000000..5a3e227a --- /dev/null +++ b/builtin/core/defaults/config/v1.26.yaml @@ -0,0 +1,93 @@ +apiVersion: kubekey.kubesphere.io/v1 +kind: Config +spec: + # zone for kk. how to download files + # kkzone: cn + # work_dir is the directory where the artifact is extracted. + # work_dir: /var/lib/kubekey/ + # the version of kubernetes to be installed. + # should be greater than or equal to kube_version_min_required. + kube_version: {{ .kube_version }} + # helm binary + helm_version: v3.11.2 + # etcd binary + etcd_version: v3.5.8 + # ========== image registry ========== + # keepalived image tag. Used for load balancing when there are multiple image registry nodes. + # keepalived_version: stable + # ========== image registry: harbor ========== + # harbor image tag + # harbor_version: v2.9.1 + # docker-compose binary + # dockercompose_version: v2.16.0 + # ========== image registry: registry ========== + # registry image tag + # registry_version: 2.8.3 + # ========== cri ========== + # crictl binary + crictl_version: v1.26.0 + # ========== cri: docker ========== + # docker binary + # docker_version: 23.0.6 + # cridockerd. Required when kube_version is greater than 1.24 + # cridockerd_version: v0.3.1 + # ========== cri: containerd ========== + # containerd binary + containerd_version: v1.6.21 + # runc binary + runc_version: v1.1.5 + # ========== cni ========== + # cni_plugins binary + # cni_plugins_version: v1.2.0 + # ========== cni: calico ========== + # calicoctl binary + calico_version: v3.26.1 + # ========== cni: cilium ========== + # cilium helm + # cilium_version: 1.13.5 + # ========== cni: kubeovn ========== + # kubeovn helm + # kubeovn_version: 1.10.0 + # ========== cni: hybridnet ========== + # hybridnet helm + # hybridnet_version: 0.6.8 + # ========== storageclass ========== + # ========== storageclass: nfs ========== + # nfs provisioner helm version + # nfs_provisioner_version: 4.0.18 + kubernetes: + controller_manager: + extra_args: + cluster-signing-duration: 87600h + cri: + sandbox_image: + tag: "3.7" + # support: containerd,docker + container_manager: containerd + + # image_manifests: + # - docker.io/calico/apiserver:v3.26.1 + # - docker.io/calico/cni:v3.26.1 + # - docker.io/calico/csi:v3.26.1 + # - docker.io/calico/kube-controllers:v3.26.1 + # - docker.io/calico/node-driver-registrar:v3.26.1 + # - docker.io/calico/node:v3.26.1 + # - docker.io/calico/pod2daemon-flexvol:v3.26.1 + # - docker.io/kubesphere/k8s-dns-node-cache:1.22.20 + # - docker.io/openebs/provisioner-localpv:3.3.0 + # - docker.io/coredns/coredns:1.8.6 + # - docker.io/kubesphere/kube-apiserver:{{ .kube_version }} + # - docker.io/kubesphere/kube-controller-manager:{{ .kube_version }} + # - docker.io/kubesphere/kube-proxy:{{ .kube_version }} + # - docker.io/kubesphere/kube-scheduler:{{ .kube_version }} + # - docker.io/kubesphere/pause:3.7 + # - quay.io/tigera/operator:v1.36.5 + # - docker.io/calico/ctl:v3.26.1 + # - docker.io/calico/typha:v3.26.1 + # - docker.io/calico/apiserver:v3.26.1 + # - docker.io/calico/kube-controllers:v3.26.1 + # - docker.io/calico/node:v3.26.1 + # - docker.io/calico/pod2daemon-flexvol:v3.26.1 + # - docker.io/calico/cni:v3.26.1 + # - docker.io/calico/node-driver-registrar:v3.26.1 + # - docker.io/calico/csi:v3.26.1 diff --git a/builtin/core/defaults/config/v1.27.yaml b/builtin/core/defaults/config/v1.27.yaml new file mode 100644 index 00000000..321f6f66 --- /dev/null +++ b/builtin/core/defaults/config/v1.27.yaml @@ -0,0 +1,93 @@ +apiVersion: kubekey.kubesphere.io/v1 +kind: Config +spec: + # zone for kk. how to download files + # kkzone: cn + # work_dir is the directory where the artifact is extracted. + # work_dir: /var/lib/kubekey/ + # the version of kubernetes to be installed. + # should be greater than or equal to kube_version_min_required. + kube_version: {{ .kube_version }} + # helm binary + helm_version: v3.12.1 + # etcd binary + etcd_version: v3.5.9 + # ========== image registry ========== + # keepalived image tag. Used for load balancing when there are multiple image registry nodes. + # keepalived_version: stable + # ========== image registry: harbor ========== + # harbor image tag + # harbor_version: v2.10.1 + # docker-compose binary + # dockercompose_version: v2.20.3 + # ========== image registry: registry ========== + # registry image tag + # registry_version: 2.8.3 + # ========== cri ========== + # crictl binary + crictl_version: v1.27.0 + # ========== cri: docker ========== + # docker binary + # docker_version: 23.0.6 + # cridockerd. Required when kube_version is greater than 1.24 + # cridockerd_version: v0.3.1 + # ========== cri: containerd ========== + # containerd binary + containerd_version: v1.7.2 + # runc binary + runc_version: v1.1.7 + # ========== cni ========== + # cni_plugins binary + # cni_plugins_version: v1.2.0 + # ========== cni: calico ========== + # calicoctl binary + calico_version: v3.26.1 + # ========== cni: cilium ========== + # cilium helm + # cilium_version: 1.14.2 + # ========== cni: kubeovn ========== + # kubeovn helm + # kubeovn_version: 1.11.0 + # ========== cni: hybridnet ========== + # hybridnet helm + # hybridnet_version: 0.6.8 + # ========== storageclass ========== + # ========== storageclass: nfs ========== + # nfs provisioner helm version + # nfs_provisioner_version: 4.0.20 + kubernetes: + controller_manager: + extra_args: + cluster-signing-duration: 87600h + cri: + sandbox_image: + tag: "3.7" + # support: containerd,docker + container_manager: containerd + + # image_manifests: + # - docker.io/calico/apiserver:v3.26.1 + # - docker.io/calico/cni:v3.26.1 + # - docker.io/calico/csi:v3.26.1 + # - docker.io/calico/kube-controllers:v3.26.1 + # - docker.io/calico/node-driver-registrar:v3.26.1 + # - docker.io/calico/node:v3.26.1 + # - docker.io/calico/pod2daemon-flexvol:v3.26.1 + # - docker.io/kubesphere/k8s-dns-node-cache:1.22.20 + # - docker.io/openebs/provisioner-localpv:3.3.0 + # - docker.io/coredns/coredns:1.8.6 + # - docker.io/kubesphere/kube-apiserver:{{ .kube_version }} + # - docker.io/kubesphere/kube-controller-manager:{{ .kube_version }} + # - docker.io/kubesphere/kube-proxy:{{ .kube_version }} + # - docker.io/kubesphere/kube-scheduler:{{ .kube_version }} + # - docker.io/kubesphere/pause:3.7 + # - quay.io/tigera/operator:v1.36.5 + # - docker.io/calico/ctl:v3.26.1 + # - docker.io/calico/typha:v3.26.1 + # - docker.io/calico/apiserver:v3.26.1 + # - docker.io/calico/kube-controllers:v3.26.1 + # - docker.io/calico/node:v3.26.1 + # - docker.io/calico/pod2daemon-flexvol:v3.26.1 + # - docker.io/calico/cni:v3.26.1 + # - docker.io/calico/node-driver-registrar:v3.26.1 + # - docker.io/calico/csi:v3.26.1 diff --git a/builtin/core/defaults/config/v1.31.2.yaml b/builtin/core/defaults/config/v1.28.yaml similarity index 53% rename from builtin/core/defaults/config/v1.31.2.yaml rename to builtin/core/defaults/config/v1.28.yaml index 81341ead..cb9abbbc 100644 --- a/builtin/core/defaults/config/v1.31.2.yaml +++ b/builtin/core/defaults/config/v1.28.yaml @@ -7,89 +7,87 @@ spec: # work_dir: /var/lib/kubekey/ # the version of kubernetes to be installed. # should be greater than or equal to kube_version_min_required. - kube_version: v1.31.2 + kube_version: {{ .kube_version }} # helm binary - helm_version: v3.16.4 + helm_version: v3.12.1 # etcd binary - etcd_version: v3.5.16 + etcd_version: v3.5.9 # ========== image registry ========== # keepalived image tag. Used for load balancing when there are multiple image registry nodes. - # keepalived_version: stable + # keepalived_version: stable # ========== image registry: harbor ========== # harbor image tag - # harbor_version: v2.10.1 + # harbor_version: v2.10.1 # docker-compose binary - # dockercompose_version: v2.24.6 + # dockercompose_version: v2.20.3 # ========== image registry: registry ========== # registry image tag - # registry_version: 2.8.3 + # registry_version: 2.8.3 # ========== cri ========== # crictl binary - crictl_version: v1.31.1 + crictl_version: v1.28.0 # ========== cri: docker ========== # docker binary - # docker_version: 27.3.1 + # docker_version: 24.0.6 # cridockerd. Required when kube_version is greater than 1.24 - # cridockerd_version: v0.3.15 + # cridockerd_version: v0.3.1 # ========== cri: containerd ========== # containerd binary - containerd_version: v1.7.24 + containerd_version: v1.7.3 # runc binary - runc_version: v1.2.3 + runc_version: v1.1.7 # ========== cni ========== # cni_plugins binary - # cni_plugins_version: v1.5.1 + # cni_plugins_version: v1.2.0 # ========== cni: calico ========== # calicoctl binary - calico_version: v3.29.2 + calico_version: v3.28.2 # ========== cni: cilium ========== # cilium helm - # cilium_version: 1.16.0 + # cilium_version: 1.15.0 # ========== cni: kubeovn ========== # kubeovn helm - # kubeovn_version: 0.1.0 + # kubeovn_version: 1.12.0 # ========== cni: hybridnet ========== # hybridnet helm # hybridnet_version: 0.6.8 # ========== storageclass ========== # ========== storageclass: nfs ========== # nfs provisioner helm version - # nfs_provisioner_version: 4.0.18 + # nfs_provisioner_version: 4.0.20 kubernetes: controller_manager: extra_args: cluster-signing-duration: 87600h cri: sandbox_image: - tag: 3.10 + tag: "3.8" # support: containerd,docker container_manager: containerd # image_manifests: - # - docker.io/calico/apiserver:v3.29.2 - # - docker.io/calico/cni:v3.29.2 - # - docker.io/calico/csi:v3.29.2 - # - docker.io/calico/kube-controllers:v3.29.2 - # - docker.io/calico/node-driver-registrar:v3.29.2 - # - docker.io/calico/node:v3.29.2 - # - docker.io/calico/pod2daemon-flexvol:v3.29.2 + # - docker.io/calico/apiserver:v3.28.2 + # - docker.io/calico/cni:v3.28.2 + # - docker.io/calico/csi:v3.28.2 + # - docker.io/calico/kube-controllers:v3.28.2 + # - docker.io/calico/node-driver-registrar:v3.28.2 + # - docker.io/calico/node:v3.28.2 + # - docker.io/calico/pod2daemon-flexvol:v3.28.2 # - docker.io/kubesphere/k8s-dns-node-cache:1.22.20 # - docker.io/openebs/provisioner-localpv:3.3.0 # - docker.io/coredns/coredns:1.8.6 - # - docker.io/kubesphere/kube-apiserver:v1.31.2 - # - docker.io/kubesphere/kube-controller-manager:v1.31.2 - # - docker.io/kubesphere/kube-proxy:v1.31.2 - # - docker.io/kubesphere/kube-scheduler:v1.31.2 - # - docker.io/kubesphere/pause:3.10 + # - docker.io/kubesphere/kube-apiserver:{{ .kube_version }} + # - docker.io/kubesphere/kube-controller-manager:{{ .kube_version }} + # - docker.io/kubesphere/kube-proxy:{{ .kube_version }} + # - docker.io/kubesphere/kube-scheduler:{{ .kube_version }} + # - docker.io/kubesphere/pause:3.8 # - quay.io/tigera/operator:v1.36.5 - # - docker.io/kubesphere/pause:3.1 - # - docker.io/calico/ctl:v3.29.2 - # - docker.io/calico/typha:v3.29.2 - # - docker.io/calico/apiserver:v3.29.2 - # - docker.io/calico/kube-controllers:v3.29.2 - # - docker.io/calico/node:v3.29.2 - # - docker.io/calico/pod2daemon-flexvol:v3.29.2 - # - docker.io/calico/cni:v3.29.2 - # - docker.io/calico/node-driver-registrar:v3.29.2 - # - docker.io/calico/csi:v3.29.2 - + # - docker.io/calico/ctl:v3.28.2 + # - docker.io/calico/typha:v3.28.2 + # - docker.io/calico/apiserver:v3.28.2 + # - docker.io/calico/kube-controllers:v3.28.2 + # - docker.io/calico/node:v3.28.2 + # - docker.io/calico/pod2daemon-flexvol:v3.28.2 + # - docker.io/calico/cni:v3.28.2 + # - docker.io/calico/node-driver-registrar:v3.28.2 + # - docker.io/calico/csi:v3.28.2 diff --git a/builtin/core/defaults/config/v1.23.15.yaml b/builtin/core/defaults/config/v1.29.yaml similarity index 50% rename from builtin/core/defaults/config/v1.23.15.yaml rename to builtin/core/defaults/config/v1.29.yaml index 672083f1..be8eea3f 100644 --- a/builtin/core/defaults/config/v1.23.15.yaml +++ b/builtin/core/defaults/config/v1.29.yaml @@ -7,11 +7,11 @@ spec: # work_dir: /var/lib/kubekey/ # the version of kubernetes to be installed. # should be greater than or equal to kube_version_min_required. - kube_version: v1.23.15 + kube_version: {{ .kube_version }} # helm binary - helm_version: v3.14.2 + helm_version: v3.13.3 # etcd binary - etcd_version: v3.5.6 + etcd_version: v3.5.10 # ========== image registry ========== # keepalived image tag. Used for load balancing when there are multiple image registry nodes. # keepalived_version: stable @@ -19,23 +19,23 @@ spec: # harbor image tag # harbor_version: v2.10.1 # docker-compose binary - # dockercompose_version: v2.24.6 + # dockercompose_version: v2.20.3 # ========== image registry: registry ========== # registry image tag # registry_version: 2.8.3 # ========== cri ========== # crictl binary - crictl_version: v1.23.0 + crictl_version: v1.29.0 # ========== cri: docker ========== # docker binary - docker_version: 24.0.6 + # docker_version: 24.0.7 # cridockerd. Required when kube_version is greater than 1.24 - # cridockerd_version: v0.3.10 + # cridockerd_version: v0.3.1 # ========== cri: containerd ========== # containerd binary - # containerd_version: v1.7.0 + containerd_version: v1.7.6 # runc binary - # runc_version: v1.1.11 + runc_version: v1.1.7 # ========== cni ========== # cni_plugins binary # cni_plugins_version: v1.2.0 @@ -47,18 +47,47 @@ spec: # cilium_version: 1.15.4 # ========== cni: kubeovn ========== # kubeovn helm - # kubeovn_version: 0.1.0 + # kubeovn_version: 1.13.0 # ========== cni: hybridnet ========== # hybridnet helm # hybridnet_version: 0.6.8 # ========== storageclass ========== # ========== storageclass: nfs ========== # nfs provisioner helm version - # nfs_provisioner_version: 4.0.18 + # nfs_provisioner_version: 4.0.20 kubernetes: controller_manager: extra_args: cluster-signing-duration: 87600h cri: sandbox_image: - tag: 3.5 \ No newline at end of file + tag: "3.8" + # support: containerd,docker + container_manager: containerd + + # image_manifests: + # - docker.io/calico/apiserver:v3.28.2 + # - docker.io/calico/cni:v3.28.2 + # - docker.io/calico/csi:v3.28.2 + # - docker.io/calico/kube-controllers:v3.28.2 + # - docker.io/calico/node-driver-registrar:v3.28.2 + # - docker.io/calico/node:v3.28.2 + # - docker.io/calico/pod2daemon-flexvol:v3.28.2 + # - docker.io/kubesphere/k8s-dns-node-cache:1.22.20 + # - docker.io/openebs/provisioner-localpv:3.3.0 + # - docker.io/coredns/coredns:1.8.6 + # - docker.io/kubesphere/kube-apiserver:{{ .kube_version }} + # - docker.io/kubesphere/kube-controller-manager:{{ .kube_version }} + # - docker.io/kubesphere/kube-proxy:{{ .kube_version }} + # - docker.io/kubesphere/kube-scheduler:{{ .kube_version }} + # - docker.io/kubesphere/pause:3.8 + # - quay.io/tigera/operator:v1.36.5 + # - docker.io/calico/ctl:v3.28.2 + # - docker.io/calico/typha:v3.28.2 + # - docker.io/calico/apiserver:v3.28.2 + # - docker.io/calico/kube-controllers:v3.28.2 + # - docker.io/calico/node:v3.28.2 + # - docker.io/calico/pod2daemon-flexvol:v3.28.2 + # - docker.io/calico/cni:v3.28.2 + # - docker.io/calico/node-driver-registrar:v3.28.2 + # - docker.io/calico/csi:v3.28.2 diff --git a/builtin/core/defaults/config/v1.30.yaml b/builtin/core/defaults/config/v1.30.yaml new file mode 100644 index 00000000..453f6345 --- /dev/null +++ b/builtin/core/defaults/config/v1.30.yaml @@ -0,0 +1,93 @@ +apiVersion: kubekey.kubesphere.io/v1 +kind: Config +spec: + # zone for kk. how to download files + # kkzone: cn + # work_dir is the directory where the artifact is extracted. + # work_dir: /var/lib/kubekey/ + # the version of kubernetes to be installed. + # should be greater than or equal to kube_version_min_required. + kube_version: {{ .kube_version }} + # helm binary + helm_version: v3.13.3 + # etcd binary + etcd_version: v3.5.10 + # ========== image registry ========== + # keepalived image tag. Used for load balancing when there are multiple image registry nodes. + # keepalived_version: stable + # ========== image registry: harbor ========== + # harbor image tag + # harbor_version: v2.10.1 + # docker-compose binary + # dockercompose_version: v2.20.3 + # ========== image registry: registry ========== + # registry image tag + # registry_version: 2.8.3 + # ========== cri ========== + # crictl binary + crictl_version: v1.30.0 + # ========== cri: docker ========== + # docker binary + # docker_version: 24.0.7 + # cridockerd. Required when kube_version is greater than 1.24 + # cridockerd_version: v0.3.1 + # ========== cri: containerd ========== + # containerd binary + containerd_version: v1.7.6 + # runc binary + runc_version: v1.1.7 + # ========== cni ========== + # cni_plugins binary + # cni_plugins_version: v1.2.0 + # ========== cni: calico ========== + # calicoctl binary + calico_version: v3.28.2 + # ========== cni: cilium ========== + # cilium helm + # cilium_version: 1.15.4 + # ========== cni: kubeovn ========== + # kubeovn helm + # kubeovn_version: 1.13.0 + # ========== cni: hybridnet ========== + # hybridnet helm + # hybridnet_version: 0.6.8 + # ========== storageclass ========== + # ========== storageclass: nfs ========== + # nfs provisioner helm version + # nfs_provisioner_version: 4.0.20 + kubernetes: + controller_manager: + extra_args: + cluster-signing-duration: 87600h + cri: + sandbox_image: + tag: "3.8" + # support: containerd,docker + container_manager: containerd + + # image_manifests: + # - docker.io/calico/apiserver:v3.28.2 + # - docker.io/calico/cni:v3.28.2 + # - docker.io/calico/csi:v3.28.2 + # - docker.io/calico/kube-controllers:v3.28.2 + # - docker.io/calico/node-driver-registrar:v3.28.2 + # - docker.io/calico/node:v3.28.2 + # - docker.io/calico/pod2daemon-flexvol:v3.28.2 + # - docker.io/kubesphere/k8s-dns-node-cache:1.22.20 + # - docker.io/openebs/provisioner-localpv:3.3.0 + # - docker.io/coredns/coredns:1.8.6 + # - docker.io/kubesphere/kube-apiserver:{{ .kube_version }} + # - docker.io/kubesphere/kube-controller-manager:{{ .kube_version }} + # - docker.io/kubesphere/kube-proxy:{{ .kube_version }} + # - docker.io/kubesphere/kube-scheduler:{{ .kube_version }} + # - docker.io/kubesphere/pause:3.8 + # - quay.io/tigera/operator:v1.36.5 + # - docker.io/calico/ctl:v3.28.2 + # - docker.io/calico/typha:v3.28.2 + # - docker.io/calico/apiserver:v3.28.2 + # - docker.io/calico/kube-controllers:v3.28.2 + # - docker.io/calico/node:v3.28.2 + # - docker.io/calico/pod2daemon-flexvol:v3.28.2 + # - docker.io/calico/cni:v3.28.2 + # - docker.io/calico/node-driver-registrar:v3.28.2 + # - docker.io/calico/csi:v3.28.2 diff --git a/builtin/core/defaults/config/v1.31.yaml b/builtin/core/defaults/config/v1.31.yaml new file mode 100644 index 00000000..1ed5a61e --- /dev/null +++ b/builtin/core/defaults/config/v1.31.yaml @@ -0,0 +1,93 @@ +apiVersion: kubekey.kubesphere.io/v1 +kind: Config +spec: + # zone for kk. how to download files + # kkzone: cn + # work_dir is the directory where the artifact is extracted. + # work_dir: /var/lib/kubekey/ + # the version of kubernetes to be installed. + # should be greater than or equal to kube_version_min_required. + kube_version: {{ .kube_version }} + # helm binary + helm_version: v3.13.3 + # etcd binary + etcd_version: v3.5.11 + # ========== image registry ========== + # keepalived image tag. Used for load balancing when there are multiple image registry nodes. + # keepalived_version: stable + # ========== image registry: harbor ========== + # harbor image tag + # harbor_version: v2.10.1 + # docker-compose binary + # dockercompose_version: v2.20.3 + # ========== image registry: registry ========== + # registry image tag + # registry_version: 2.8.3 + # ========== cri ========== + # crictl binary + crictl_version: v1.31.0 + # ========== cri: docker ========== + # docker binary + # docker_version: 24.0.7 + # cridockerd. Required when kube_version is greater than 1.24 + # cridockerd_version: v0.3.1 + # ========== cri: containerd ========== + # containerd binary + containerd_version: v1.7.6 + # runc binary + runc_version: v1.1.7 + # ========== cni ========== + # cni_plugins binary + # cni_plugins_version: v1.2.0 + # ========== cni: calico ========== + # calicoctl binary + calico_version: v3.28.2 + # ========== cni: cilium ========== + # cilium helm + # cilium_version: 1.15.4 + # ========== cni: kubeovn ========== + # kubeovn helm + # kubeovn_version: 1.13.0 + # ========== cni: hybridnet ========== + # hybridnet helm + # hybridnet_version: 0.6.8 + # ========== storageclass ========== + # ========== storageclass: nfs ========== + # nfs provisioner helm version + # nfs_provisioner_version: 4.0.20 + kubernetes: + controller_manager: + extra_args: + cluster-signing-duration: 87600h + cri: + sandbox_image: + tag: "3.8" + # support: containerd,docker + container_manager: containerd + + # image_manifests: + # - docker.io/calico/apiserver:v3.28.2 + # - docker.io/calico/cni:v3.28.2 + # - docker.io/calico/csi:v3.28.2 + # - docker.io/calico/kube-controllers:v3.28.2 + # - docker.io/calico/node-driver-registrar:v3.28.2 + # - docker.io/calico/node:v3.28.2 + # - docker.io/calico/pod2daemon-flexvol:v3.28.2 + # - docker.io/kubesphere/k8s-dns-node-cache:1.22.20 + # - docker.io/openebs/provisioner-localpv:3.3.0 + # - docker.io/coredns/coredns:1.8.6 + # - docker.io/kubesphere/kube-apiserver:{{ .kube_version }} + # - docker.io/kubesphere/kube-controller-manager:{{ .kube_version }} + # - docker.io/kubesphere/kube-proxy:{{ .kube_version }} + # - docker.io/kubesphere/kube-scheduler:{{ .kube_version }} + # - docker.io/kubesphere/pause:3.8 + # - quay.io/tigera/operator:v1.36.5 + # - docker.io/calico/ctl:v3.28.2 + # - docker.io/calico/typha:v3.28.2 + # - docker.io/calico/apiserver:v3.28.2 + # - docker.io/calico/kube-controllers:v3.28.2 + # - docker.io/calico/node:v3.28.2 + # - docker.io/calico/pod2daemon-flexvol:v3.28.2 + # - docker.io/calico/cni:v3.28.2 + # - docker.io/calico/node-driver-registrar:v3.28.2 + # - docker.io/calico/csi:v3.28.2 diff --git a/builtin/core/defaults/config/v1.32.yaml b/builtin/core/defaults/config/v1.32.yaml new file mode 100644 index 00000000..3f931275 --- /dev/null +++ b/builtin/core/defaults/config/v1.32.yaml @@ -0,0 +1,93 @@ +apiVersion: kubekey.kubesphere.io/v1 +kind: Config +spec: + # zone for kk. how to download files + # kkzone: cn + # work_dir is the directory where the artifact is extracted. + # work_dir: /var/lib/kubekey/ + # the version of kubernetes to be installed. + # should be greater than or equal to kube_version_min_required. + kube_version: {{ .kube_version }} + # helm binary + helm_version: v3.13.3 + # etcd binary + etcd_version: v3.5.11 + # ========== image registry ========== + # keepalived image tag. Used for load balancing when there are multiple image registry nodes. + # keepalived_version: stable + # ========== image registry: harbor ========== + # harbor image tag + # harbor_version: v2.10.1 + # docker-compose binary + # dockercompose_version: v2.20.3 + # ========== image registry: registry ========== + # registry image tag + # registry_version: 2.8.3 + # ========== cri ========== + # crictl binary + crictl_version: v1.32.0 + # ========== cri: docker ========== + # docker binary + # docker_version: 24.0.7 + # cridockerd. Required when kube_version is greater than 1.24 + # cridockerd_version: v0.3.1 + # ========== cri: containerd ========== + # containerd binary + containerd_version: v1.7.6 + # runc binary + runc_version: v1.1.7 + # ========== cni ========== + # cni_plugins binary + # cni_plugins_version: v1.2.0 + # ========== cni: calico ========== + # calicoctl binary + calico_version: v3.28.2 + # ========== cni: cilium ========== + # cilium helm + # cilium_version: 1.15.4 + # ========== cni: kubeovn ========== + # kubeovn helm + # kubeovn_version: 1.13.0 + # ========== cni: hybridnet ========== + # hybridnet helm + # hybridnet_version: 0.6.8 + # ========== storageclass ========== + # ========== storageclass: nfs ========== + # nfs provisioner helm version + # nfs_provisioner_version: 4.0.20 + kubernetes: + controller_manager: + extra_args: + cluster-signing-duration: 87600h + cri: + sandbox_image: + tag: "3.8" + # support: containerd,docker + container_manager: containerd + + # image_manifests: + # - docker.io/calico/apiserver:v3.28.2 + # - docker.io/calico/cni:v3.28.2 + # - docker.io/calico/csi:v3.28.2 + # - docker.io/calico/kube-controllers:v3.28.2 + # - docker.io/calico/node-driver-registrar:v3.28.2 + # - docker.io/calico/node:v3.28.2 + # - docker.io/calico/pod2daemon-flexvol:v3.28.2 + # - docker.io/kubesphere/k8s-dns-node-cache:1.22.20 + # - docker.io/openebs/provisioner-localpv:3.3.0 + # - docker.io/coredns/coredns:1.8.6 + # - docker.io/kubesphere/kube-apiserver:{{ .kube_version }} + # - docker.io/kubesphere/kube-controller-manager:{{ .kube_version }} + # - docker.io/kubesphere/kube-proxy:{{ .kube_version }} + # - docker.io/kubesphere/kube-scheduler:{{ .kube_version }} + # - docker.io/kubesphere/pause:3.8 + # - quay.io/tigera/operator:v1.36.5 + # - docker.io/calico/ctl:v3.28.2 + # - docker.io/calico/typha:v3.28.2 + # - docker.io/calico/apiserver:v3.28.2 + # - docker.io/calico/kube-controllers:v3.28.2 + # - docker.io/calico/node:v3.28.2 + # - docker.io/calico/pod2daemon-flexvol:v3.28.2 + # - docker.io/calico/cni:v3.28.2 + # - docker.io/calico/node-driver-registrar:v3.28.2 + # - docker.io/calico/csi:v3.28.2 diff --git a/builtin/core/defaults/config/v1.33.yaml b/builtin/core/defaults/config/v1.33.yaml new file mode 100644 index 00000000..400c1a16 --- /dev/null +++ b/builtin/core/defaults/config/v1.33.yaml @@ -0,0 +1,93 @@ +apiVersion: kubekey.kubesphere.io/v1 +kind: Config +spec: + # zone for kk. how to download files + # kkzone: cn + # work_dir is the directory where the artifact is extracted. + # work_dir: /var/lib/kubekey/ + # the version of kubernetes to be installed. + # should be greater than or equal to kube_version_min_required. + kube_version: {{ .kube_version }} + # helm binary + helm_version: v3.13.3 + # etcd binary + etcd_version: v3.5.11 + # ========== image registry ========== + # keepalived image tag. Used for load balancing when there are multiple image registry nodes. + # keepalived_version: stable + # ========== image registry: harbor ========== + # harbor image tag + # harbor_version: v2.10.1 + # docker-compose binary + # dockercompose_version: v2.20.3 + # ========== image registry: registry ========== + # registry image tag + # registry_version: 2.8.3 + # ========== cri ========== + # crictl binary + crictl_version: v1.33.0 + # ========== cri: docker ========== + # docker binary + # docker_version: 24.0.7 + # cridockerd. Required when kube_version is greater than 1.24 + # cridockerd_version: v0.3.1 + # ========== cri: containerd ========== + # containerd binary + containerd_version: v1.7.6 + # runc binary + runc_version: v1.1.7 + # ========== cni ========== + # cni_plugins binary + # cni_plugins_version: v1.2.0 + # ========== cni: calico ========== + # calicoctl binary + calico_version: v3.28.2 + # ========== cni: cilium ========== + # cilium helm + # cilium_version: 1.15.4 + # ========== cni: kubeovn ========== + # kubeovn helm + # kubeovn_version: 1.13.0 + # ========== cni: hybridnet ========== + # hybridnet helm + # hybridnet_version: 0.6.8 + # ========== storageclass ========== + # ========== storageclass: nfs ========== + # nfs provisioner helm version + # nfs_provisioner_version: 4.0.20 + kubernetes: + controller_manager: + extra_args: + cluster-signing-duration: 87600h + cri: + sandbox_image: + tag: "3.9" + # support: containerd,docker + container_manager: containerd + + # image_manifests: + # - docker.io/calico/apiserver:v3.28.2 + # - docker.io/calico/cni:v3.28.2 + # - docker.io/calico/csi:v3.28.2 + # - docker.io/calico/kube-controllers:v3.28.2 + # - docker.io/calico/node-driver-registrar:v3.28.2 + # - docker.io/calico/node:v3.28.2 + # - docker.io/calico/pod2daemon-flexvol:v3.28.2 + # - docker.io/kubesphere/k8s-dns-node-cache:1.22.20 + # - docker.io/openebs/provisioner-localpv:3.3.0 + # - docker.io/coredns/coredns:1.8.6 + # - docker.io/kubesphere/kube-apiserver:{{ .kube_version }} + # - docker.io/kubesphere/kube-controller-manager:{{ .kube_version }} + # - docker.io/kubesphere/kube-proxy:{{ .kube_version }} + # - docker.io/kubesphere/kube-scheduler:{{ .kube_version }} + # - docker.io/kubesphere/pause:3.9 + # - quay.io/tigera/operator:v1.36.5 + # - docker.io/calico/ctl:v3.28.2 + # - docker.io/calico/typha:v3.28.2 + # - docker.io/calico/apiserver:v3.28.2 + # - docker.io/calico/kube-controllers:v3.28.2 + # - docker.io/calico/node:v3.28.2 + # - docker.io/calico/pod2daemon-flexvol:v3.28.2 + # - docker.io/calico/cni:v3.28.2 + # - docker.io/calico/node-driver-registrar:v3.28.2 + # - docker.io/calico/csi:v3.28.2 diff --git a/builtin/core/roles/precheck/env_check/defaults/main.yaml b/builtin/core/roles/precheck/env_check/defaults/main.yaml index 3c9ff231..2c085aa0 100644 --- a/builtin/core/roles/precheck/env_check/defaults/main.yaml +++ b/builtin/core/roles/precheck/env_check/defaults/main.yaml @@ -10,7 +10,7 @@ cluster_require: - '"centos"' require_network_plugin: ['calico', 'flannel', 'cilium', 'hybridnet', 'kube-ovn'] # the minimal version of kubernetes to be installed. - kube_version_min_required: v1.19.10 + kube_version_min_required: v1.23.0 # memory size for each kube_control_plane node.(unit kB) # should be greater than or equal to minimal_master_memory_mb. minimal_master_memory_mb: 10 diff --git a/cmd/kk/app/options/builtin/builtin.go b/cmd/kk/app/options/builtin/builtin.go index 09a115e6..87c91445 100644 --- a/cmd/kk/app/options/builtin/builtin.go +++ b/cmd/kk/app/options/builtin/builtin.go @@ -20,8 +20,10 @@ limitations under the License. package builtin import ( + "bytes" "fmt" "os" + "text/template" "github.com/cockroachdb/errors" kkcorev1 "github.com/kubesphere/kubekey/api/core/v1" @@ -31,7 +33,7 @@ import ( ) const ( - defaultKubeVersion = "v1.23.15" + defaultKubeVersion = "v1.33.1" ) const ( @@ -56,18 +58,31 @@ func completeInventory(inventoryFile string, inventory *kkcorev1.Inventory) erro } func completeConfig(kubeVersion string, configFile string, config *kkcorev1.Config) error { - if configFile != "" { - data, err := os.ReadFile(configFile) - if err != nil { - return errors.Wrapf(err, "failed to get configFile %q", configFile) - } - - return errors.Wrapf(yaml.Unmarshal(data, config), "failed to unmarshal configFile %q", configFile) - } - data, err := core.Defaults.ReadFile(fmt.Sprintf("defaults/config/%s.yaml", kubeVersion)) + data, err := getConfig(kubeVersion, configFile) if err != nil { - return errors.Wrapf(err, "failed to get local configFile for kube_version: %q. Please set it by \"--config\"", kubeVersion) + return err } return errors.Wrapf(yaml.Unmarshal(data, config), "failed to unmarshal local configFile for kube_version: %q.", kubeVersion) } + +func getConfig(kubeVersion string, configFile string) ([]byte, error) { + if configFile != "" { + data, err := os.ReadFile(configFile) + if err != nil { + return nil, errors.Wrapf(err, "failed to get configFile %q", configFile) + } + + return data, nil + } + t, err := template.ParseFS(core.Defaults, fmt.Sprintf("defaults/config/%s.yaml", kubeVersion[:5])) + if err != nil { + return nil, errors.Wrapf(err, "failed to get local configFile template for kube_version: %q. Please set it by \"--config\"", kubeVersion) + } + data := bytes.NewBuffer(nil) + if err := t.Execute(data, map[string]string{"kube_version": kubeVersion}); err != nil { + return nil, errors.Wrapf(err, "failed to parse local configFile template for kube_version: %q. Please set it by \"--config\"", kubeVersion) + } + + return data.Bytes(), nil +} diff --git a/cmd/kk/app/options/builtin/create.go b/cmd/kk/app/options/builtin/create.go index 3d178423..c35a6447 100644 --- a/cmd/kk/app/options/builtin/create.go +++ b/cmd/kk/app/options/builtin/create.go @@ -31,7 +31,6 @@ import ( "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" cliflag "k8s.io/component-base/cli/flag" - "github.com/kubesphere/kubekey/v4/builtin/core" "github.com/kubesphere/kubekey/v4/cmd/kk/app/options" ) @@ -145,11 +144,10 @@ func (o *CreateConfigOptions) Flags() cliflag.NamedFlagSets { // If an output directory is specified, it creates a config file named "config-.yaml". func (o *CreateConfigOptions) Run() error { // Read the default config file for the specified Kubernetes version - data, err := core.Defaults.ReadFile(fmt.Sprintf("defaults/config/%s.yaml", o.Kubernetes)) + data, err := getConfig(o.Kubernetes, "") if err != nil { - return errors.Wrapf(err, "failed to get local configFile for kube_version: %q.") + return err } - if o.OutputDir != "" { // Write config to file if output directory is specified filename := filepath.Join(o.OutputDir, fmt.Sprintf("config-%s.yaml", o.Kubernetes))