mirror of
https://github.com/kubesphere/kubekey.git
synced 2025-12-25 17:12:50 +00:00
fix: change builtin/core architectures (#2718)
Signed-off-by: redscholar <blacktiledhouse@gmail.com>
This commit is contained in:
parent
a8e533e608
commit
3885b443ac
|
|
@ -28,8 +28,7 @@ type Base struct {
|
||||||
RemoteUser string `yaml:"remote_user,omitempty"`
|
RemoteUser string `yaml:"remote_user,omitempty"`
|
||||||
|
|
||||||
// variables
|
// variables
|
||||||
Vars []yaml.Node `yaml:"-"`
|
Vars Vars `yaml:"vars,omitempty"`
|
||||||
VarsFromMarshal yaml.Node `yaml:"vars,omitempty"`
|
|
||||||
|
|
||||||
// module default params
|
// module default params
|
||||||
//ModuleDefaults []map[string]map[string]any `yaml:"module_defaults,omitempty"`
|
//ModuleDefaults []map[string]map[string]any `yaml:"module_defaults,omitempty"`
|
||||||
|
|
@ -55,3 +54,16 @@ type Base struct {
|
||||||
BecomeFlags string `yaml:"become_flags,omitempty"`
|
BecomeFlags string `yaml:"become_flags,omitempty"`
|
||||||
BecomeExe string `yaml:"become_exe,omitempty"`
|
BecomeExe string `yaml:"become_exe,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Vars is a custom type to hold a list of YAML nodes representing variables.
|
||||||
|
// This allows for flexible unmarshalling of various YAML structures into Vars.
|
||||||
|
type Vars struct {
|
||||||
|
Nodes []yaml.Node
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalYAML implements the yaml.Unmarshaler interface for Vars.
|
||||||
|
// It appends the unmarshalled YAML node to the Vars.Nodes slice.
|
||||||
|
func (v *Vars) UnmarshalYAML(node *yaml.Node) error {
|
||||||
|
v.Nodes = append(v.Nodes, *node)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -72,10 +72,6 @@ func (t Taggable) IsEnabled(onlyTags []string, skipTags []string) bool {
|
||||||
// JoinTag the child block should inherit tag for parent block
|
// JoinTag the child block should inherit tag for parent block
|
||||||
func JoinTag(child, parent Taggable) Taggable {
|
func JoinTag(child, parent Taggable) Taggable {
|
||||||
for _, tag := range parent.Tags {
|
for _, tag := range parent.Tags {
|
||||||
if tag == AlwaysTag { // skip inherit "always" tag
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
if !slices.Contains(child.Tags, tag) {
|
if !slices.Contains(child.Tags, tag) {
|
||||||
child.Tags = append(child.Tags, tag)
|
child.Tags = append(child.Tags, tag)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,70 +1,80 @@
|
||||||
apiVersion: kubekey.kubesphere.io/v1
|
apiVersion: kubekey.kubesphere.io/v1
|
||||||
kind: Config
|
kind: Config
|
||||||
spec:
|
spec:
|
||||||
# zone for kk. how to download files
|
download:
|
||||||
# kkzone: cn
|
# if set as "cn", so that online downloads will try to use available domestic sources whenever possible.
|
||||||
# work_dir is the directory where the artifact is extracted.
|
zone: ""
|
||||||
# work_dir: /var/lib/kubekey/
|
kubernetes:
|
||||||
# the version of kubernetes to be installed.
|
kube_version: {{ .kube_version }}
|
||||||
# should be greater than or equal to kube_version_min_required.
|
# helm binary
|
||||||
kube_version: {{ .kube_version }}
|
helm_version: v3.8.2
|
||||||
# helm binary
|
etcd:
|
||||||
helm_version: v3.8.2
|
# etcd binary
|
||||||
# etcd binary
|
etcd_version: v3.5.4
|
||||||
etcd_version: v3.5.4
|
image_registry:
|
||||||
# ========== image registry ==========
|
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
||||||
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
keepalived_version: 2.0.20
|
||||||
# keepalived_version: 2.0.20
|
# ========== image registry: harbor ==========
|
||||||
# ========== image registry: harbor ==========
|
# harbor image tag
|
||||||
# harbor image tag
|
harbor_version: v2.6.3
|
||||||
# harbor_version: v2.6.3
|
# docker-compose binary
|
||||||
# docker-compose binary
|
dockercompose_version: v2.12.2
|
||||||
# dockercompose_version: v2.12.2
|
# ========== image registry: docker-registry ==========
|
||||||
# ========== image registry: docker-registry ==========
|
# docker-registry image tag
|
||||||
# docker-registry image tag
|
docker_registry_version: 2.8.3
|
||||||
# docker_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:
|
cri:
|
||||||
sandbox_image:
|
|
||||||
tag: "3.6"
|
|
||||||
# support: containerd,docker
|
# support: containerd,docker
|
||||||
container_manager: docker
|
container_manager: docker
|
||||||
|
sandbox_image:
|
||||||
|
tag: "3.6"
|
||||||
|
# ========== 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:
|
||||||
|
multus:
|
||||||
|
image:
|
||||||
|
tag: v3.9.3
|
||||||
|
# ========== cni ==========
|
||||||
|
# cni_plugins binary (optional)
|
||||||
|
# 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
|
||||||
|
storage_class:
|
||||||
|
# ========== storageclass ==========
|
||||||
|
# ========== storageclass: local ==========
|
||||||
|
local:
|
||||||
|
provisioner_image:
|
||||||
|
tag: 3.3.0
|
||||||
|
linux_utils_image:
|
||||||
|
tag: 3.3.0
|
||||||
|
# ========== storageclass: nfs ==========
|
||||||
|
# nfs provisioner helm version
|
||||||
|
nfs_provisioner_version: 4.0.2
|
||||||
|
dns:
|
||||||
|
dns_image:
|
||||||
|
tag: v1.8.6
|
||||||
|
dns_cache_image:
|
||||||
|
tag: 1.21.1
|
||||||
# image_manifests:
|
# image_manifests:
|
||||||
# - docker.io/calico/apiserver:v3.24.5
|
# - docker.io/calico/apiserver:v3.24.5
|
||||||
# - docker.io/calico/cni:v3.24.5
|
# - docker.io/calico/cni:v3.24.5
|
||||||
|
|
|
||||||
|
|
@ -1,70 +1,81 @@
|
||||||
apiVersion: kubekey.kubesphere.io/v1
|
apiVersion: kubekey.kubesphere.io/v1
|
||||||
kind: Config
|
kind: Config
|
||||||
spec:
|
spec:
|
||||||
# zone for kk. how to download files
|
download:
|
||||||
# kkzone: cn
|
# if set as "cn", so that online downloads will try to use available domestic sources whenever possible.
|
||||||
# work_dir is the directory where the artifact is extracted.
|
zone: ""
|
||||||
# work_dir: /var/lib/kubekey/
|
kubernetes:
|
||||||
# the version of kubernetes to be installed.
|
kube_version: {{ .kube_version }}
|
||||||
# should be greater than or equal to kube_version_min_required.
|
# helm binary
|
||||||
kube_version: {{ .kube_version }}
|
helm_version: v3.10.3
|
||||||
# helm binary
|
etcd:
|
||||||
helm_version: v3.10.3
|
# etcd binary
|
||||||
# etcd binary
|
etcd_version: v3.5.6
|
||||||
etcd_version: v3.5.6
|
image_registry:
|
||||||
# ========== image registry ==========
|
# ========== image registry ==========
|
||||||
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
||||||
# keepalived_version: v2.0.20
|
keepalived_version: v2.0.20
|
||||||
# ========== image registry: harbor ==========
|
# ========== image registry: harbor ==========
|
||||||
# harbor image tag
|
# harbor image tag
|
||||||
# harbor_version: v2.7.1
|
harbor_version: v2.7.1
|
||||||
# docker-compose binary
|
# docker-compose binary
|
||||||
# dockercompose_version: v2.14.0
|
dockercompose_version: v2.14.0
|
||||||
# ========== image registry: docker-registry ==========
|
# ========== image registry: docker-registry ==========
|
||||||
# docker-registry image tag
|
# docker-registry image tag
|
||||||
# docker_registry_version: 2.8.3
|
docker_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:
|
cri:
|
||||||
sandbox_image:
|
|
||||||
tag: "3.6"
|
|
||||||
# support: containerd,docker
|
# support: containerd,docker
|
||||||
container_manager: containerd
|
container_manager: containerd
|
||||||
|
sandbox_image:
|
||||||
|
tag: "3.6"
|
||||||
|
# ========== 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:
|
||||||
|
multus:
|
||||||
|
image:
|
||||||
|
tag: v3.10.1
|
||||||
|
# ========== cni ==========
|
||||||
|
# cni_plugins binary (optional)
|
||||||
|
# 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
|
||||||
|
storage_class:
|
||||||
|
# ========== storageclass ==========
|
||||||
|
# ========== storageclass: local ==========
|
||||||
|
local:
|
||||||
|
provisioner_image:
|
||||||
|
tag: 3.4.0
|
||||||
|
linux_utils_image:
|
||||||
|
tag: 3.4.0
|
||||||
|
# ========== storageclass: nfs ==========
|
||||||
|
# nfs provisioner helm version
|
||||||
|
nfs_provisioner_version: 4.0.2
|
||||||
|
dns:
|
||||||
|
dns_image:
|
||||||
|
tag: v1.8.6
|
||||||
|
dns_cache_image:
|
||||||
|
tag: 1.22.20
|
||||||
# image_manifests:
|
# image_manifests:
|
||||||
# - docker.io/calico/apiserver:v3.25.1
|
# - docker.io/calico/apiserver:v3.25.1
|
||||||
# - docker.io/calico/cni:v3.25.1
|
# - docker.io/calico/cni:v3.25.1
|
||||||
|
|
|
||||||
|
|
@ -1,70 +1,81 @@
|
||||||
apiVersion: kubekey.kubesphere.io/v1
|
apiVersion: kubekey.kubesphere.io/v1
|
||||||
kind: Config
|
kind: Config
|
||||||
spec:
|
spec:
|
||||||
# zone for kk. how to download files
|
download:
|
||||||
# kkzone: cn
|
# if set as "cn", so that online downloads will try to use available domestic sources whenever possible.
|
||||||
# work_dir is the directory where the artifact is extracted.
|
zone: ""
|
||||||
# work_dir: /var/lib/kubekey/
|
kubernetes:
|
||||||
# the version of kubernetes to be installed.
|
kube_version: {{ .kube_version }}
|
||||||
# should be greater than or equal to kube_version_min_required.
|
# helm binary
|
||||||
kube_version: {{ .kube_version }}
|
helm_version: v3.10.3
|
||||||
# helm binary
|
etcd:
|
||||||
helm_version: v3.10.3
|
# etcd binary
|
||||||
# etcd binary
|
etcd_version: v3.5.7
|
||||||
etcd_version: v3.5.7
|
image_registry:
|
||||||
# ========== image registry ==========
|
# ========== image registry ==========
|
||||||
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
||||||
# keepalived_version: 2.0.20
|
keepalived_version: 2.0.20
|
||||||
# ========== image registry: harbor ==========
|
# ========== image registry: harbor ==========
|
||||||
# harbor image tag
|
# harbor image tag
|
||||||
# harbor_version: v2.8.1
|
harbor_version: v2.8.1
|
||||||
# docker-compose binary
|
# docker-compose binary
|
||||||
# dockercompose_version: v2.15.1
|
dockercompose_version: v2.15.1
|
||||||
# ========== image registry: docker-registry ==========
|
# ========== image registry: docker-registry ==========
|
||||||
# docker-registry image tag
|
# docker-registry image tag
|
||||||
# docker_registry_version: 2.8.3
|
docker_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:
|
cri:
|
||||||
sandbox_image:
|
|
||||||
tag: "3.6"
|
|
||||||
# support: containerd,docker
|
# support: containerd,docker
|
||||||
container_manager: containerd
|
container_manager: containerd
|
||||||
|
sandbox_image:
|
||||||
|
tag: "3.6"
|
||||||
|
# ========== 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:
|
||||||
|
multus:
|
||||||
|
image:
|
||||||
|
tag: v3.11.3
|
||||||
|
# ========== cni ==========
|
||||||
|
# cni_plugins binary (optional)
|
||||||
|
# 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
|
||||||
|
storage_class:
|
||||||
|
# ========== storageclass ==========
|
||||||
|
# ========== storageclass: local ==========
|
||||||
|
local:
|
||||||
|
provisioner_image:
|
||||||
|
tag: 3.5.0
|
||||||
|
linux_utils_image:
|
||||||
|
tag: 3.5.0
|
||||||
|
# ========== storageclass: nfs ==========
|
||||||
|
# nfs provisioner helm version
|
||||||
|
nfs_provisioner_version: 4.0.8
|
||||||
|
dns:
|
||||||
|
dns_image:
|
||||||
|
tag: v1.9.3
|
||||||
|
dns_cache_image:
|
||||||
|
tag: 1.22.20
|
||||||
# image_manifests:
|
# image_manifests:
|
||||||
# - docker.io/calico/apiserver:v3.25.1
|
# - docker.io/calico/apiserver:v3.25.1
|
||||||
# - docker.io/calico/cni:v3.25.1
|
# - docker.io/calico/cni:v3.25.1
|
||||||
|
|
|
||||||
|
|
@ -1,70 +1,81 @@
|
||||||
apiVersion: kubekey.kubesphere.io/v1
|
apiVersion: kubekey.kubesphere.io/v1
|
||||||
kind: Config
|
kind: Config
|
||||||
spec:
|
spec:
|
||||||
# zone for kk. how to download files
|
download:
|
||||||
# kkzone: cn
|
# if set as "cn", so that online downloads will try to use available domestic sources whenever possible.
|
||||||
# work_dir is the directory where the artifact is extracted.
|
zone: ""
|
||||||
# work_dir: /var/lib/kubekey/
|
kubernetes:
|
||||||
# the version of kubernetes to be installed.
|
kube_version: {{ .kube_version }}
|
||||||
# should be greater than or equal to kube_version_min_required.
|
# helm binary
|
||||||
kube_version: {{ .kube_version }}
|
helm_version: v3.11.2
|
||||||
# helm binary
|
etcd:
|
||||||
helm_version: v3.11.2
|
# etcd binary
|
||||||
# etcd binary
|
etcd_version: v3.5.8
|
||||||
etcd_version: v3.5.8
|
image_registry:
|
||||||
# ========== image registry ==========
|
# ========== image registry ==========
|
||||||
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
||||||
# keepalived_version: 2.0.20
|
keepalived_version: 2.0.20
|
||||||
# ========== image registry: harbor ==========
|
# ========== image registry: harbor ==========
|
||||||
# harbor image tag
|
# harbor image tag
|
||||||
# harbor_version: v2.9.1
|
harbor_version: v2.9.1
|
||||||
# docker-compose binary
|
# docker-compose binary
|
||||||
# dockercompose_version: v2.16.0
|
dockercompose_version: v2.16.0
|
||||||
# ========== image registry: docker-registry ==========
|
# ========== image registry: docker-registry ==========
|
||||||
# docker-registry image tag
|
# docker-registry image tag
|
||||||
# docker_registry_version: 2.8.3
|
docker_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:
|
cri:
|
||||||
sandbox_image:
|
|
||||||
tag: "3.7"
|
|
||||||
# support: containerd,docker
|
# support: containerd,docker
|
||||||
container_manager: containerd
|
container_manager: containerd
|
||||||
|
sandbox_image:
|
||||||
|
tag: "3.7"
|
||||||
|
# ========== 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:
|
||||||
|
multus:
|
||||||
|
image:
|
||||||
|
tag: v4.0.2
|
||||||
|
# ========== cni ==========
|
||||||
|
# cni_plugins binary (optional)
|
||||||
|
# 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
|
||||||
|
storage_class:
|
||||||
|
# ========== storageclass ==========
|
||||||
|
# ========== storageclass: local ==========
|
||||||
|
local:
|
||||||
|
provisioner_image:
|
||||||
|
tag: 3.6.0
|
||||||
|
linux_utils_image:
|
||||||
|
tag: 3.6.0
|
||||||
|
# ========== storageclass: nfs ==========
|
||||||
|
# nfs provisioner helm version
|
||||||
|
nfs_provisioner_version: 4.0.8
|
||||||
|
dns:
|
||||||
|
dns_image:
|
||||||
|
tag: v1.9.3
|
||||||
|
dns_cache_image:
|
||||||
|
tag: 1.22.20
|
||||||
# image_manifests:
|
# image_manifests:
|
||||||
# - docker.io/calico/apiserver:v3.26.1
|
# - docker.io/calico/apiserver:v3.26.1
|
||||||
# - docker.io/calico/cni:v3.26.1
|
# - docker.io/calico/cni:v3.26.1
|
||||||
|
|
|
||||||
|
|
@ -1,70 +1,81 @@
|
||||||
apiVersion: kubekey.kubesphere.io/v1
|
apiVersion: kubekey.kubesphere.io/v1
|
||||||
kind: Config
|
kind: Config
|
||||||
spec:
|
spec:
|
||||||
# zone for kk. how to download files
|
download:
|
||||||
# kkzone: cn
|
# if set as "cn", so that online downloads will try to use available domestic sources whenever possible.
|
||||||
# work_dir is the directory where the artifact is extracted.
|
zone: ""
|
||||||
# work_dir: /var/lib/kubekey/
|
kubernetes:
|
||||||
# the version of kubernetes to be installed.
|
kube_version: {{ .kube_version }}
|
||||||
# should be greater than or equal to kube_version_min_required.
|
# helm binary
|
||||||
kube_version: {{ .kube_version }}
|
helm_version: v3.12.1
|
||||||
# helm binary
|
etcd:
|
||||||
helm_version: v3.12.1
|
# etcd binary
|
||||||
# etcd binary
|
etcd_version: v3.5.9
|
||||||
etcd_version: v3.5.9
|
image_registry:
|
||||||
# ========== image registry ==========
|
# ========== image registry ==========
|
||||||
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
||||||
# keepalived_version: 2.0.20
|
keepalived_version: 2.0.20
|
||||||
# ========== image registry: harbor ==========
|
# ========== image registry: harbor ==========
|
||||||
# harbor image tag
|
# harbor image tag
|
||||||
# harbor_version: v2.10.1
|
harbor_version: v2.10.1
|
||||||
# docker-compose binary
|
# docker-compose binary
|
||||||
# dockercompose_version: v2.20.3
|
dockercompose_version: v2.20.3
|
||||||
# ========== image registry: docker-registry ==========
|
# ========== image registry: docker-registry ==========
|
||||||
# docker-registry image tag
|
# docker-registry image tag
|
||||||
# docker_registry_version: 2.8.3
|
docker_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:
|
cri:
|
||||||
sandbox_image:
|
|
||||||
tag: "3.7"
|
|
||||||
# support: containerd,docker
|
# support: containerd,docker
|
||||||
container_manager: containerd
|
container_manager: containerd
|
||||||
|
sandbox_image:
|
||||||
|
tag: "3.7"
|
||||||
|
# ========== 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:
|
||||||
|
multus:
|
||||||
|
image:
|
||||||
|
tag: v4.0.2
|
||||||
|
# ========== cni ==========
|
||||||
|
# cni_plugins binary (optional)
|
||||||
|
# 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
|
||||||
|
storage_class:
|
||||||
|
# ========== storageclass ==========
|
||||||
|
# ========== storageclass: local ==========
|
||||||
|
local:
|
||||||
|
provisioner_image:
|
||||||
|
tag: 3.7.0
|
||||||
|
linux_utils_image:
|
||||||
|
tag: 3.7.0
|
||||||
|
# ========== storageclass: nfs ==========
|
||||||
|
# nfs provisioner helm version
|
||||||
|
nfs_provisioner_version: 4.0.10
|
||||||
|
dns:
|
||||||
|
dns_image:
|
||||||
|
tag: v1.10.1
|
||||||
|
dns_cache_image:
|
||||||
|
tag: 1.22.20
|
||||||
# image_manifests:
|
# image_manifests:
|
||||||
# - docker.io/calico/apiserver:v3.26.1
|
# - docker.io/calico/apiserver:v3.26.1
|
||||||
# - docker.io/calico/cni:v3.26.1
|
# - docker.io/calico/cni:v3.26.1
|
||||||
|
|
|
||||||
|
|
@ -1,70 +1,81 @@
|
||||||
apiVersion: kubekey.kubesphere.io/v1
|
apiVersion: kubekey.kubesphere.io/v1
|
||||||
kind: Config
|
kind: Config
|
||||||
spec:
|
spec:
|
||||||
# zone for kk. how to download files
|
download:
|
||||||
# kkzone: cn
|
# if set as "cn", so that online downloads will try to use available domestic sources whenever possible.
|
||||||
# work_dir is the directory where the artifact is extracted.
|
zone: ""
|
||||||
# work_dir: /var/lib/kubekey/
|
kubernetes:
|
||||||
# the version of kubernetes to be installed.
|
kube_version: {{ .kube_version }}
|
||||||
# should be greater than or equal to kube_version_min_required.
|
# helm binary
|
||||||
kube_version: {{ .kube_version }}
|
helm_version: v3.12.1
|
||||||
# helm binary
|
etcd:
|
||||||
helm_version: v3.12.1
|
# etcd binary
|
||||||
# etcd binary
|
etcd_version: v3.5.9
|
||||||
etcd_version: v3.5.9
|
image_registry:
|
||||||
# ========== image registry ==========
|
# ========== image registry ==========
|
||||||
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
||||||
# keepalived_version: 2.0.20
|
keepalived_version: 2.0.20
|
||||||
# ========== image registry: harbor ==========
|
# ========== image registry: harbor ==========
|
||||||
# harbor image tag
|
# harbor image tag
|
||||||
# harbor_version: v2.10.1
|
harbor_version: v2.10.1
|
||||||
# docker-compose binary
|
# docker-compose binary
|
||||||
# dockercompose_version: v2.20.3
|
dockercompose_version: v2.20.3
|
||||||
# ========== image registry: docker-registry ==========
|
# ========== image registry: docker-registry ==========
|
||||||
# docker-registry image tag
|
# docker-registry image tag
|
||||||
# docker_registry_version: 2.8.3
|
docker_registry_version: 2.8.3
|
||||||
# ========== cri ==========
|
|
||||||
# crictl binary
|
|
||||||
crictl_version: v1.28.0
|
|
||||||
# ========== cri: docker ==========
|
|
||||||
# docker binary
|
|
||||||
# docker_version: 24.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.3
|
|
||||||
# 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.0
|
|
||||||
# ========== cni: kubeovn ==========
|
|
||||||
# kubeovn helm
|
|
||||||
# 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.20
|
|
||||||
kubernetes:
|
|
||||||
controller_manager:
|
|
||||||
extra_args:
|
|
||||||
cluster-signing-duration: 87600h
|
|
||||||
cri:
|
cri:
|
||||||
sandbox_image:
|
|
||||||
tag: "3.8"
|
|
||||||
# support: containerd,docker
|
# support: containerd,docker
|
||||||
container_manager: containerd
|
container_manager: containerd
|
||||||
|
sandbox_image:
|
||||||
|
tag: "3.8"
|
||||||
|
# ========== cri ==========
|
||||||
|
# crictl binary
|
||||||
|
crictl_version: v1.28.0
|
||||||
|
# ========== cri: docker ==========
|
||||||
|
# docker binary
|
||||||
|
docker_version: 24.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.3
|
||||||
|
# runc binary
|
||||||
|
runc_version: v1.1.7
|
||||||
|
cni:
|
||||||
|
multus:
|
||||||
|
image:
|
||||||
|
tag: v4.1.0
|
||||||
|
# ========== cni ==========
|
||||||
|
# cni_plugins binary (optional)
|
||||||
|
# cni_plugins_version: v1.2.0
|
||||||
|
# ========== cni: calico ==========
|
||||||
|
# calicoctl binary
|
||||||
|
calico_version: v3.28.2
|
||||||
|
# ========== cni: cilium ==========
|
||||||
|
# cilium helm
|
||||||
|
cilium_version: 1.15.0
|
||||||
|
# ========== cni: kubeovn ==========
|
||||||
|
# kubeovn helm
|
||||||
|
kubeovn_version: 1.12.0
|
||||||
|
# ========== cni: hybridnet ==========
|
||||||
|
# hybridnet helm
|
||||||
|
hybridnet_version: 0.6.8
|
||||||
|
storage_class:
|
||||||
|
# ========== storageclass ==========
|
||||||
|
# ========== storageclass: local ==========
|
||||||
|
local:
|
||||||
|
provisioner_image:
|
||||||
|
tag: 3.8.0
|
||||||
|
linux_utils_image:
|
||||||
|
tag: 3.8.0
|
||||||
|
# ========== storageclass: nfs ==========
|
||||||
|
# nfs provisioner helm version
|
||||||
|
nfs_provisioner_version: 4.0.10
|
||||||
|
dns:
|
||||||
|
dns_image:
|
||||||
|
tag: v1.10.1
|
||||||
|
dns_cache_image:
|
||||||
|
tag: 1.22.20
|
||||||
# image_manifests:
|
# image_manifests:
|
||||||
# - docker.io/calico/apiserver:v3.28.2
|
# - docker.io/calico/apiserver:v3.28.2
|
||||||
# - docker.io/calico/cni:v3.28.2
|
# - docker.io/calico/cni:v3.28.2
|
||||||
|
|
|
||||||
|
|
@ -1,70 +1,81 @@
|
||||||
apiVersion: kubekey.kubesphere.io/v1
|
apiVersion: kubekey.kubesphere.io/v1
|
||||||
kind: Config
|
kind: Config
|
||||||
spec:
|
spec:
|
||||||
# zone for kk. how to download files
|
download:
|
||||||
# kkzone: cn
|
# if set as "cn", so that online downloads will try to use available domestic sources whenever possible.
|
||||||
# work_dir is the directory where the artifact is extracted.
|
zone: ""
|
||||||
# work_dir: /var/lib/kubekey/
|
kubernetes:
|
||||||
# the version of kubernetes to be installed.
|
kube_version: {{ .kube_version }}
|
||||||
# should be greater than or equal to kube_version_min_required.
|
# helm binary
|
||||||
kube_version: {{ .kube_version }}
|
helm_version: v3.13.3
|
||||||
# helm binary
|
etcd:
|
||||||
helm_version: v3.13.3
|
# etcd binary
|
||||||
# etcd binary
|
etcd_version: v3.5.10
|
||||||
etcd_version: v3.5.10
|
image_registry:
|
||||||
# ========== image registry ==========
|
# ========== image registry ==========
|
||||||
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
||||||
# keepalived_version: 2.0.20
|
keepalived_version: 2.0.20
|
||||||
# ========== image registry: harbor ==========
|
# ========== image registry: harbor ==========
|
||||||
# harbor image tag
|
# harbor image tag
|
||||||
# harbor_version: v2.10.1
|
harbor_version: v2.10.1
|
||||||
# docker-compose binary
|
# docker-compose binary
|
||||||
# dockercompose_version: v2.20.3
|
dockercompose_version: v2.20.3
|
||||||
# ========== image registry: docker-registry ==========
|
# ========== image registry: docker-registry ==========
|
||||||
# docker-registry image tag
|
# docker-registry image tag
|
||||||
# docker_registry_version: 2.8.3
|
docker_registry_version: 2.8.3
|
||||||
# ========== cri ==========
|
|
||||||
# crictl binary
|
|
||||||
crictl_version: v1.29.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:
|
cri:
|
||||||
sandbox_image:
|
|
||||||
tag: "3.8"
|
|
||||||
# support: containerd,docker
|
# support: containerd,docker
|
||||||
container_manager: containerd
|
container_manager: containerd
|
||||||
|
sandbox_image:
|
||||||
|
tag: "3.8"
|
||||||
|
# ========== cri ==========
|
||||||
|
# crictl binary
|
||||||
|
crictl_version: v1.29.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:
|
||||||
|
multus:
|
||||||
|
image:
|
||||||
|
tag: v4.1.1
|
||||||
|
# ========== cni ==========
|
||||||
|
# cni_plugins binary (optional)
|
||||||
|
# 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
|
||||||
|
storage_class:
|
||||||
|
# ========== storageclass ==========
|
||||||
|
# ========== storageclass: local ==========
|
||||||
|
local:
|
||||||
|
provisioner_image:
|
||||||
|
tag: 3.9.0
|
||||||
|
linux_utils_image:
|
||||||
|
tag: 3.9.0
|
||||||
|
# ========== storageclass: nfs ==========
|
||||||
|
# nfs provisioner helm version
|
||||||
|
nfs_provisioner_version: 4.1.0
|
||||||
|
dns:
|
||||||
|
dns_image:
|
||||||
|
tag: v1.11.1
|
||||||
|
dns_cache_image:
|
||||||
|
tag: 1.23.1
|
||||||
# image_manifests:
|
# image_manifests:
|
||||||
# - docker.io/calico/apiserver:v3.28.2
|
# - docker.io/calico/apiserver:v3.28.2
|
||||||
# - docker.io/calico/cni:v3.28.2
|
# - docker.io/calico/cni:v3.28.2
|
||||||
|
|
|
||||||
|
|
@ -1,70 +1,81 @@
|
||||||
apiVersion: kubekey.kubesphere.io/v1
|
apiVersion: kubekey.kubesphere.io/v1
|
||||||
kind: Config
|
kind: Config
|
||||||
spec:
|
spec:
|
||||||
# zone for kk. how to download files
|
download:
|
||||||
# kkzone: cn
|
# if set as "cn", so that online downloads will try to use available domestic sources whenever possible.
|
||||||
# work_dir is the directory where the artifact is extracted.
|
zone: ""
|
||||||
# work_dir: /var/lib/kubekey/
|
kubernetes:
|
||||||
# the version of kubernetes to be installed.
|
kube_version: {{ .kube_version }}
|
||||||
# should be greater than or equal to kube_version_min_required.
|
# helm binary
|
||||||
kube_version: {{ .kube_version }}
|
helm_version: v3.13.3
|
||||||
# helm binary
|
etcd:
|
||||||
helm_version: v3.13.3
|
# etcd binary
|
||||||
# etcd binary
|
etcd_version: v3.5.10
|
||||||
etcd_version: v3.5.10
|
image_registry:
|
||||||
# ========== image registry ==========
|
# ========== image registry ==========
|
||||||
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
||||||
# keepalived_version: 2.0.20
|
keepalived_version: 2.0.20
|
||||||
# ========== image registry: harbor ==========
|
# ========== image registry: harbor ==========
|
||||||
# harbor image tag
|
# harbor image tag
|
||||||
# harbor_version: v2.10.1
|
harbor_version: v2.10.1
|
||||||
# docker-compose binary
|
# docker-compose binary
|
||||||
# dockercompose_version: v2.20.3
|
dockercompose_version: v2.20.3
|
||||||
# ========== image registry: docker-registry ==========
|
# ========== image registry: docker-registry ==========
|
||||||
# docker-registry image tag
|
# docker-registry image tag
|
||||||
# docker_registry_version: 2.8.3
|
docker_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:
|
cri:
|
||||||
sandbox_image:
|
|
||||||
tag: "3.8"
|
|
||||||
# support: containerd,docker
|
# support: containerd,docker
|
||||||
container_manager: containerd
|
container_manager: containerd
|
||||||
|
sandbox_image:
|
||||||
|
tag: "3.8"
|
||||||
|
# ========== 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:
|
||||||
|
multus:
|
||||||
|
image:
|
||||||
|
tag: v4.2.1
|
||||||
|
# ========== cni ==========
|
||||||
|
# cni_plugins binary (optional)
|
||||||
|
# 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
|
||||||
|
storage_class:
|
||||||
|
# ========== storageclass ==========
|
||||||
|
# ========== storageclass: local ==========
|
||||||
|
local:
|
||||||
|
provisioner_image:
|
||||||
|
tag: 4.0.0
|
||||||
|
linux_utils_image:
|
||||||
|
tag: 4.0.0
|
||||||
|
# ========== storageclass: nfs ==========
|
||||||
|
# nfs provisioner helm version
|
||||||
|
nfs_provisioner_version: 4.1.0
|
||||||
|
dns:
|
||||||
|
dns_image:
|
||||||
|
tag: v1.11.1
|
||||||
|
dns_cache_image:
|
||||||
|
tag: 1.23.1
|
||||||
# image_manifests:
|
# image_manifests:
|
||||||
# - docker.io/calico/apiserver:v3.28.2
|
# - docker.io/calico/apiserver:v3.28.2
|
||||||
# - docker.io/calico/cni:v3.28.2
|
# - docker.io/calico/cni:v3.28.2
|
||||||
|
|
|
||||||
|
|
@ -1,70 +1,81 @@
|
||||||
apiVersion: kubekey.kubesphere.io/v1
|
apiVersion: kubekey.kubesphere.io/v1
|
||||||
kind: Config
|
kind: Config
|
||||||
spec:
|
spec:
|
||||||
# zone for kk. how to download files
|
download:
|
||||||
# kkzone: cn
|
# if set as "cn", so that online downloads will try to use available domestic sources whenever possible.
|
||||||
# work_dir is the directory where the artifact is extracted.
|
zone: ""
|
||||||
# work_dir: /var/lib/kubekey/
|
kubernetes:
|
||||||
# the version of kubernetes to be installed.
|
kube_version: {{ .kube_version }}
|
||||||
# should be greater than or equal to kube_version_min_required.
|
# helm binary
|
||||||
kube_version: {{ .kube_version }}
|
helm_version: v3.13.3
|
||||||
# helm binary
|
etcd:
|
||||||
helm_version: v3.13.3
|
# etcd binary
|
||||||
# etcd binary
|
etcd_version: v3.5.11
|
||||||
etcd_version: v3.5.11
|
image_registry:
|
||||||
# ========== image registry ==========
|
# ========== image registry ==========
|
||||||
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
||||||
# keepalived_version: 2.0.20
|
keepalived_version: 2.0.20
|
||||||
# ========== image registry: harbor ==========
|
# ========== image registry: harbor ==========
|
||||||
# harbor image tag
|
# harbor image tag
|
||||||
# harbor_version: v2.10.1
|
harbor_version: v2.10.1
|
||||||
# docker-compose binary
|
# docker-compose binary
|
||||||
# dockercompose_version: v2.20.3
|
dockercompose_version: v2.20.3
|
||||||
# ========== image registry: docker-registry ==========
|
# ========== image registry: docker-registry ==========
|
||||||
# docker-registry image tag
|
# docker-registry image tag
|
||||||
# docker_registry_version: 2.8.3
|
docker_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:
|
cri:
|
||||||
sandbox_image:
|
|
||||||
tag: "3.8"
|
|
||||||
# support: containerd,docker
|
# support: containerd,docker
|
||||||
container_manager: containerd
|
container_manager: containerd
|
||||||
|
sandbox_image:
|
||||||
|
tag: "3.8"
|
||||||
|
# ========== 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:
|
||||||
|
multus:
|
||||||
|
image:
|
||||||
|
tag: v4.2.1
|
||||||
|
# ========== cni ==========
|
||||||
|
# cni_plugins binary (optional)
|
||||||
|
# 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
|
||||||
|
storage_class:
|
||||||
|
# ========== storageclass ==========
|
||||||
|
# ========== storageclass: local ==========
|
||||||
|
local:
|
||||||
|
provisioner_image:
|
||||||
|
tag: 4.1.0
|
||||||
|
linux_utils_image:
|
||||||
|
tag: 4.1.0
|
||||||
|
# ========== storageclass: nfs ==========
|
||||||
|
# nfs provisioner helm version
|
||||||
|
nfs_provisioner_version: 4.2.0
|
||||||
|
dns:
|
||||||
|
dns_image:
|
||||||
|
tag: v1.12.0
|
||||||
|
dns_cache_image:
|
||||||
|
tag: 1.23.1
|
||||||
# image_manifests:
|
# image_manifests:
|
||||||
# - docker.io/calico/apiserver:v3.28.2
|
# - docker.io/calico/apiserver:v3.28.2
|
||||||
# - docker.io/calico/cni:v3.28.2
|
# - docker.io/calico/cni:v3.28.2
|
||||||
|
|
|
||||||
|
|
@ -1,70 +1,81 @@
|
||||||
apiVersion: kubekey.kubesphere.io/v1
|
apiVersion: kubekey.kubesphere.io/v1
|
||||||
kind: Config
|
kind: Config
|
||||||
spec:
|
spec:
|
||||||
# zone for kk. how to download files
|
download:
|
||||||
# kkzone: cn
|
# if set as "cn", so that online downloads will try to use available domestic sources whenever possible.
|
||||||
# work_dir is the directory where the artifact is extracted.
|
zone: ""
|
||||||
# work_dir: /var/lib/kubekey/
|
kubernetes:
|
||||||
# the version of kubernetes to be installed.
|
kube_version: {{ .kube_version }}
|
||||||
# should be greater than or equal to kube_version_min_required.
|
# helm binary
|
||||||
kube_version: {{ .kube_version }}
|
helm_version: v3.14.3
|
||||||
# helm binary
|
etcd:
|
||||||
helm_version: v3.14.3
|
# etcd binary
|
||||||
# etcd binary
|
etcd_version: v3.5.11
|
||||||
etcd_version: v3.5.11
|
image_registry:
|
||||||
# ========== image registry ==========
|
# ========== image registry ==========
|
||||||
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
||||||
# keepalived_version: 2.0.20
|
keepalived_version: 2.0.20
|
||||||
# ========== image registry: harbor ==========
|
# ========== image registry: harbor ==========
|
||||||
# harbor image tag
|
# harbor image tag
|
||||||
# harbor_version: v2.10.1
|
harbor_version: v2.10.1
|
||||||
# docker-compose binary
|
# docker-compose binary
|
||||||
# dockercompose_version: v2.20.3
|
dockercompose_version: v2.20.3
|
||||||
# ========== image registry: docker-registry ==========
|
# ========== image registry: docker-registry ==========
|
||||||
# docker-registry image tag
|
# docker-registry image tag
|
||||||
# docker_registry_version: 2.8.3
|
docker_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:
|
cri:
|
||||||
sandbox_image:
|
|
||||||
tag: "3.8"
|
|
||||||
# support: containerd,docker
|
# support: containerd,docker
|
||||||
container_manager: containerd
|
container_manager: containerd
|
||||||
|
sandbox_image:
|
||||||
|
tag: "3.8"
|
||||||
|
# ========== 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:
|
||||||
|
multus:
|
||||||
|
image:
|
||||||
|
tag: v4.3.0
|
||||||
|
# ========== cni ==========
|
||||||
|
# cni_plugins binary (optional)
|
||||||
|
# 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
|
||||||
|
storage_class:
|
||||||
|
# ========== storageclass ==========
|
||||||
|
# ========== storageclass: local ==========
|
||||||
|
local:
|
||||||
|
provisioner_image:
|
||||||
|
tag: 4.2.0
|
||||||
|
linux_utils_image:
|
||||||
|
tag: 4.2.0
|
||||||
|
# ========== storageclass: nfs ==========
|
||||||
|
# nfs provisioner helm version
|
||||||
|
nfs_provisioner_version: 4.2.0
|
||||||
|
dns:
|
||||||
|
dns_image:
|
||||||
|
tag: v1.12.0
|
||||||
|
dns_cache_image:
|
||||||
|
tag: 1.24.0
|
||||||
# image_manifests:
|
# image_manifests:
|
||||||
# - docker.io/calico/apiserver:v3.28.2
|
# - docker.io/calico/apiserver:v3.28.2
|
||||||
# - docker.io/calico/cni:v3.28.2
|
# - docker.io/calico/cni:v3.28.2
|
||||||
|
|
|
||||||
|
|
@ -1,70 +1,81 @@
|
||||||
apiVersion: kubekey.kubesphere.io/v1
|
apiVersion: kubekey.kubesphere.io/v1
|
||||||
kind: Config
|
kind: Config
|
||||||
spec:
|
spec:
|
||||||
# zone for kk. how to download files
|
download:
|
||||||
# kkzone: cn
|
# if set as "cn", so that online downloads will try to use available domestic sources whenever possible.
|
||||||
# work_dir is the directory where the artifact is extracted.
|
zone: ""
|
||||||
# work_dir: /var/lib/kubekey/
|
kubernetes:
|
||||||
# the version of kubernetes to be installed.
|
kube_version: {{ .kube_version }}
|
||||||
# should be greater than or equal to kube_version_min_required.
|
# helm binary
|
||||||
kube_version: {{ .kube_version }}
|
helm_version: v3.18.5
|
||||||
# helm binary
|
etcd:
|
||||||
helm_version: v3.18.5
|
# etcd binary
|
||||||
# etcd binary
|
etcd_version: v3.5.11
|
||||||
etcd_version: v3.5.11
|
image_registry:
|
||||||
# ========== image registry ==========
|
# ========== image registry ==========
|
||||||
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
||||||
# keepalived_version: 2.0.20
|
keepalived_version: 2.0.20
|
||||||
# ========== image registry: harbor ==========
|
# ========== image registry: harbor ==========
|
||||||
# harbor image tag
|
# harbor image tag
|
||||||
# harbor_version: v2.10.1
|
harbor_version: v2.10.1
|
||||||
# docker-compose binary
|
# docker-compose binary
|
||||||
# dockercompose_version: v2.20.3
|
dockercompose_version: v2.20.3
|
||||||
# ========== image registry: docker-registry ==========
|
# ========== image registry: docker-registry ==========
|
||||||
# docker-registry image tag
|
# docker-registry image tag
|
||||||
# docker_registry_version: 2.8.3
|
docker_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:
|
cri:
|
||||||
sandbox_image:
|
|
||||||
tag: "3.9"
|
|
||||||
# support: containerd,docker
|
# support: containerd,docker
|
||||||
container_manager: containerd
|
container_manager: containerd
|
||||||
|
sandbox_image:
|
||||||
|
tag: "3.9"
|
||||||
|
# ========== 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:
|
||||||
|
multus:
|
||||||
|
image:
|
||||||
|
tag: v4.3.0
|
||||||
|
# ========== cni ==========
|
||||||
|
# cni_plugins binary (optional)
|
||||||
|
# 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
|
||||||
|
storage_class:
|
||||||
|
# ========== storageclass ==========
|
||||||
|
# ========== storageclass: local ==========
|
||||||
|
local:
|
||||||
|
provisioner_image:
|
||||||
|
tag: 4.3.0
|
||||||
|
linux_utils_image:
|
||||||
|
tag: 4.3.0
|
||||||
|
# ========== storageclass: nfs ==========
|
||||||
|
# nfs provisioner helm version
|
||||||
|
nfs_provisioner_version: 4.3.0
|
||||||
|
dns:
|
||||||
|
dns_image:
|
||||||
|
tag: v1.13.0
|
||||||
|
dns_cache_image:
|
||||||
|
tag: 1.24.0
|
||||||
# image_manifests:
|
# image_manifests:
|
||||||
# - docker.io/calico/apiserver:v3.28.2
|
# - docker.io/calico/apiserver:v3.28.2
|
||||||
# - docker.io/calico/cni:v3.28.2
|
# - docker.io/calico/cni:v3.28.2
|
||||||
|
|
|
||||||
|
|
@ -1,97 +1,47 @@
|
||||||
---
|
---
|
||||||
- import_playbook: hook/default.yaml
|
- import_playbook: hook/pre_install.yaml
|
||||||
|
|
||||||
# load defaults vars
|
# Load default variables and perform prechecks on all hosts
|
||||||
- hosts:
|
- hosts:
|
||||||
- all
|
- all
|
||||||
vars_files:
|
gather_facts: true
|
||||||
- vars/common.yaml
|
roles:
|
||||||
- vars/kubernetes.yaml
|
- defaults
|
||||||
|
- precheck
|
||||||
|
|
||||||
# precheck
|
# Download all required software and generate certificates on the localhost
|
||||||
- hosts:
|
- hosts:
|
||||||
- localhost
|
- localhost
|
||||||
|
gather_facts: true
|
||||||
roles:
|
roles:
|
||||||
- role: precheck/artifact_check
|
- certs/init
|
||||||
when: .artifact.artifact_file | empty | not
|
- download
|
||||||
|
|
||||||
|
# Initialize all nodes and install necessary software packages
|
||||||
- hosts:
|
- hosts:
|
||||||
- k8s_cluster
|
|
||||||
- etcd
|
- etcd
|
||||||
|
- k8s_cluster
|
||||||
- image_registry
|
- image_registry
|
||||||
- nfs
|
- nfs
|
||||||
gather_facts: true
|
|
||||||
roles:
|
roles:
|
||||||
- precheck/env_check
|
- native
|
||||||
|
|
||||||
- hosts:
|
# Install the etcd cluster
|
||||||
- localhost
|
|
||||||
gather_facts: true
|
|
||||||
roles:
|
|
||||||
- init/init-artifact
|
|
||||||
|
|
||||||
# init os
|
|
||||||
- hosts:
|
- hosts:
|
||||||
- etcd
|
- etcd
|
||||||
- k8s_cluster
|
gather_facts: true
|
||||||
- registry
|
|
||||||
- nfs
|
|
||||||
roles:
|
roles:
|
||||||
- init/init-os
|
- etcd
|
||||||
|
|
||||||
- hosts:
|
|
||||||
- kube_control_plane
|
|
||||||
tasks:
|
|
||||||
- name: select init node
|
|
||||||
run_once: true
|
|
||||||
add_hostvars:
|
|
||||||
hosts: k8s_cluster
|
|
||||||
vars:
|
|
||||||
init_kubernetes_node: >-
|
|
||||||
{{- $initNodes := list -}}
|
|
||||||
{{- range .groups.kube_control_plane -}}
|
|
||||||
{{- if index $.hostvars . "kubernetes_install_LoadState" "stdout" | eq "loaded" -}}
|
|
||||||
{{- $initNodes = append $initNodes . -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- if $initNodes | len | eq 1 -}}
|
|
||||||
{{ $initNodes | first }}
|
|
||||||
{{- else if $initNodes | len | lt 1 -}}
|
|
||||||
{{ index $initNodes (randInt 0 ((sub ($initNodes | len) 1) | int)) }}
|
|
||||||
{{- end -}}
|
|
||||||
- name: init node
|
|
||||||
when: eq .inventory_hostname .init_kubernetes_node
|
|
||||||
block:
|
|
||||||
- name: Generate certificate key by kubeadm
|
|
||||||
command: |
|
|
||||||
if [ ! -f /etc/kubernetes/kubeadm-config.yaml ]; then
|
|
||||||
kubectl get cm kubeadm-config -n kube-system -o=jsonpath='{.data.ClusterConfiguration}' > /etc/kubernetes/kubeadm-config.yaml
|
|
||||||
fi
|
|
||||||
/usr/local/bin/kubeadm init phase upload-certs --upload-certs --config /etc/kubernetes/kubeadm-config.yaml 2>&1 \
|
|
||||||
| awk '/Using certificate key:/{getline; print}'
|
|
||||||
register: kubeadm_cert_result
|
|
||||||
- name: add certificate key to all hosts
|
|
||||||
add_hostvars:
|
|
||||||
hosts: k8s_cluster
|
|
||||||
vars:
|
|
||||||
kubeadm_cert: >-
|
|
||||||
{{ .kubeadm_cert_result.stdout }}
|
|
||||||
- name: Generate token by kubeadm
|
|
||||||
command: /usr/local/bin/kubeadm token create
|
|
||||||
register: kubeadm_token_result
|
|
||||||
- name: add token to all hosts
|
|
||||||
add_hostvars:
|
|
||||||
hosts: k8s_cluster
|
|
||||||
vars:
|
|
||||||
kubeadm_token: >-
|
|
||||||
{{ .kubeadm_token_result.stdout }}
|
|
||||||
|
|
||||||
- hosts:
|
- hosts:
|
||||||
- k8s_cluster
|
- k8s_cluster
|
||||||
roles:
|
roles:
|
||||||
- role: install/cri
|
- role: cri
|
||||||
|
when: or (.add_nodes | default list | empty) (.add_nodes | default list | has .inventory_hostname)
|
||||||
|
- role: kubernetes/init-kubernetes
|
||||||
when: or (.add_nodes | default list | empty) (.add_nodes | default list | has .inventory_hostname)
|
when: or (.add_nodes | default list | empty) (.add_nodes | default list | has .inventory_hostname)
|
||||||
- role: kubernetes/pre-kubernetes
|
- role: kubernetes/pre-kubernetes
|
||||||
when: or (.add_nodes | default list | empty) (.add_nodes | default list | has .inventory_hostname)
|
when: or (.add_nodes | default list | empty) (.add_nodes | default list | has .inventory_hostname)
|
||||||
- role: kubernetes/join-kubernetes
|
- role: kubernetes/join-kubernetes
|
||||||
when: or (.add_nodes | default list | empty) (.add_nodes | default list | has .inventory_hostname)
|
when: or (.add_nodes | default list | empty) (.add_nodes | default list | has .inventory_hostname)
|
||||||
- role: kubernetes/certs
|
- role: kubernetes/certs
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,16 @@
|
||||||
---
|
---
|
||||||
- import_playbook: hook/default.yaml
|
# Load default variables and perform prechecks on all hosts
|
||||||
|
- hosts:
|
||||||
|
- all
|
||||||
|
gather_facts: true
|
||||||
|
roles:
|
||||||
|
- defaults
|
||||||
|
|
||||||
|
# Download all required software and generate certificates on the localhost
|
||||||
- hosts:
|
- hosts:
|
||||||
- localhost
|
- localhost
|
||||||
roles:
|
roles:
|
||||||
- init/init-artifact
|
- download
|
||||||
- init/init-cert
|
|
||||||
tasks:
|
tasks:
|
||||||
- name: Export artifact
|
- name: Export artifact
|
||||||
command: |
|
command: |
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,17 @@
|
||||||
---
|
---
|
||||||
- import_playbook: hook/default.yaml
|
# Load default variables and perform prechecks on all hosts
|
||||||
|
- hosts:
|
||||||
|
- all
|
||||||
|
tags: ["always"]
|
||||||
|
gather_facts: true
|
||||||
|
roles:
|
||||||
|
- defaults
|
||||||
|
|
||||||
- hosts:
|
- hosts:
|
||||||
- localhost
|
- localhost
|
||||||
tags: ["always"]
|
tasks:
|
||||||
pre_tasks:
|
- name: PullImage | Download container images
|
||||||
- name: Image | Download container images
|
tags: ["pull"]
|
||||||
tags: ["always"]
|
|
||||||
image:
|
image:
|
||||||
pull:
|
pull:
|
||||||
images_dir: >-
|
images_dir: >-
|
||||||
|
|
@ -14,6 +19,46 @@
|
||||||
manifests: "{{ .image_manifests | toJson }}"
|
manifests: "{{ .image_manifests | toJson }}"
|
||||||
when:
|
when:
|
||||||
- .image_manifests | default list | empty | not
|
- .image_manifests | default list | empty | not
|
||||||
roles:
|
- name: PushImage | Push images to registry
|
||||||
- role: install/image-registry
|
tags: ["push"]
|
||||||
tags: ["always"]
|
block:
|
||||||
|
- name: PushImage | Ensure Harbor project exists for each image
|
||||||
|
when: .image_registry.type | eq "harbor"
|
||||||
|
command: |
|
||||||
|
# Traverse first-level subdirectories in images_dir, skipping 'blobs'
|
||||||
|
for registry_dir in {{ .binary_dir }}/images/*; do
|
||||||
|
if [ ! -d "$registry_dir" ] || [ "$(basename "$registry_dir")" = "blobs" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Traverse second-level subdirectories in each registry_dir
|
||||||
|
for project_dir in "$registry_dir"/*; do
|
||||||
|
if [ ! -d "$project_dir" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
project=$(basename "$project_dir")
|
||||||
|
|
||||||
|
# Check if the Harbor project exists; create it if it does not
|
||||||
|
resp=$(curl -u "{{ .image_registry.auth.username }}:{{ .image_registry.auth.password }}" -k -X GET "https://{{ .image_registry.auth.registry }}/api/v2.0/projects/${project}")
|
||||||
|
if echo "$resp" | grep -q '"code":"NOT_FOUND"'; then
|
||||||
|
curl -u "{{ .image_registry.auth.username }}:{{ .image_registry.auth.password }}" -k -X POST \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
"https://{{ .image_registry.auth.registry }}/api/v2.0/projects" \
|
||||||
|
-d "{ \"project_name\": \"${project}\", \"public\": true}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
- name: PushImage | Push images package to image registry
|
||||||
|
image:
|
||||||
|
push:
|
||||||
|
images_dir: >-
|
||||||
|
{{ .binary_dir }}/images/
|
||||||
|
dest: >-
|
||||||
|
{{ .image_registry.auth.registry }}/{{ .module.image.src.reference.repository }}:{{ .module.image.src.reference.reference }}
|
||||||
|
username: >-
|
||||||
|
{{ .image_registry.auth.username }}
|
||||||
|
password: >-
|
||||||
|
{{ .image_registry.auth.password }}
|
||||||
|
skip_tls_verify: true
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,17 @@
|
||||||
---
|
---
|
||||||
# load defaults vars
|
# Load default variables and perform prechecks on all hosts
|
||||||
- import_playbook: hook/default.yaml
|
|
||||||
|
|
||||||
- hosts:
|
- hosts:
|
||||||
- all
|
- all
|
||||||
vars_files:
|
gather_facts: true
|
||||||
- vars/certs_renew.yaml
|
roles:
|
||||||
|
- defaults
|
||||||
|
|
||||||
- hosts:
|
- hosts:
|
||||||
- localhost
|
- localhost
|
||||||
tags: ["certs"]
|
|
||||||
roles:
|
roles:
|
||||||
- init/init-cert
|
- cert/init
|
||||||
|
|
||||||
- hosts:
|
- hosts:
|
||||||
- all
|
- all
|
||||||
tags: ["certs"]
|
|
||||||
roles:
|
roles:
|
||||||
- role: certs/renew
|
- role: certs/renew
|
||||||
|
|
|
||||||
|
|
@ -1,90 +1,71 @@
|
||||||
---
|
---
|
||||||
- import_playbook: hook/default.yaml
|
|
||||||
- import_playbook: hook/pre_install.yaml
|
- import_playbook: hook/pre_install.yaml
|
||||||
|
|
||||||
# load defaults vars
|
# Load default variables and perform prechecks on all hosts
|
||||||
- hosts:
|
- hosts:
|
||||||
- all
|
- all
|
||||||
vars_files:
|
gather_facts: true
|
||||||
- vars/common.yaml
|
roles:
|
||||||
- vars/kubernetes.yaml
|
- defaults
|
||||||
|
- precheck
|
||||||
|
|
||||||
# precheck
|
# Download all required software and generate certificates on the localhost
|
||||||
- hosts:
|
- hosts:
|
||||||
- localhost
|
- localhost
|
||||||
roles:
|
roles:
|
||||||
- role: precheck/artifact_check
|
- certs/init
|
||||||
when: .artifact.artifact_file | empty | not
|
- download
|
||||||
- hosts:
|
|
||||||
- k8s_cluster
|
|
||||||
- etcd
|
|
||||||
- image_registry
|
|
||||||
- nfs
|
|
||||||
gather_facts: true
|
|
||||||
roles:
|
|
||||||
- precheck/env_check
|
|
||||||
|
|
||||||
- hosts:
|
# Initialize all nodes and install necessary software packages
|
||||||
- localhost
|
|
||||||
gather_facts: true
|
|
||||||
roles:
|
|
||||||
- init/init-artifact
|
|
||||||
- init/init-cert
|
|
||||||
|
|
||||||
# init os
|
|
||||||
- hosts:
|
- hosts:
|
||||||
- etcd
|
- etcd
|
||||||
- k8s_cluster
|
- k8s_cluster
|
||||||
- image_registry
|
- image_registry
|
||||||
- nfs
|
- nfs
|
||||||
roles:
|
roles:
|
||||||
- init/init-os
|
- native
|
||||||
|
|
||||||
# install
|
|
||||||
- hosts:
|
|
||||||
- nfs
|
|
||||||
gather_facts: true
|
|
||||||
roles:
|
|
||||||
- install/nfs
|
|
||||||
|
|
||||||
|
# Install the etcd cluster
|
||||||
- hosts:
|
- hosts:
|
||||||
- etcd
|
- etcd
|
||||||
gather_facts: true
|
|
||||||
roles:
|
roles:
|
||||||
- install/etcd
|
- etcd
|
||||||
|
|
||||||
|
# Install the private image registry
|
||||||
- hosts:
|
- hosts:
|
||||||
- image_registry
|
- image_registry
|
||||||
gather_facts: true
|
|
||||||
roles:
|
roles:
|
||||||
- install/image-registry
|
- image-registry
|
||||||
|
|
||||||
|
# Install the Kubernetes cluster
|
||||||
- hosts:
|
- hosts:
|
||||||
- k8s_cluster
|
- k8s_cluster
|
||||||
gather_facts: true
|
gather_facts: true
|
||||||
roles:
|
roles:
|
||||||
- install/cri
|
- cri
|
||||||
- kubernetes/pre-kubernetes
|
- kubernetes/pre-kubernetes
|
||||||
- kubernetes/init-kubernetes
|
- kubernetes/init-kubernetes
|
||||||
- kubernetes/join-kubernetes
|
- role: kubernetes/join-kubernetes
|
||||||
|
when:
|
||||||
|
- .init_kubernetes_node | ne .inventory_hostname
|
||||||
|
- .kubernetes_install_LoadState.stdout | eq "not-found"
|
||||||
- role: kubernetes/certs
|
- role: kubernetes/certs
|
||||||
when:
|
when:
|
||||||
- .kubernetes.certs.renew
|
- .kubernetes.certs.renew
|
||||||
- .groups.kube_control_plane | default list | has .inventory_hostname
|
- .groups.kube_control_plane | default list | has .inventory_hostname
|
||||||
post_tasks:
|
post_tasks:
|
||||||
- name: Add custom label to cluster
|
- name: Add custom labels to the cluster nodes
|
||||||
command: |
|
command: |
|
||||||
{{- range $k, $v := .kubernetes.custom_labels }}
|
{{- range $k, $v := .kubernetes.custom_labels }}
|
||||||
/usr/local/bin/kubectl label --overwrite node {{ $.hostname }} {{ $k }}={{ $v }}
|
/usr/local/bin/kubectl label --overwrite node {{ $.hostname }} {{ $k }}={{ $v }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
when: .kubernetes.custom_label | empty | not
|
when: .kubernetes.custom_label | empty | not
|
||||||
|
|
||||||
|
# Install Kubernetes cluster software components (CNI and storage class) on a random control plane node
|
||||||
- hosts:
|
- hosts:
|
||||||
- kube_control_plane|random
|
- kube_control_plane|random
|
||||||
roles:
|
roles:
|
||||||
- install/cni
|
- cni
|
||||||
- install/storageclass
|
- storage-class
|
||||||
- role: install/security
|
|
||||||
when: .security_enhancement
|
|
||||||
|
|
||||||
- import_playbook: hook/post_install.yaml
|
- import_playbook: hook/post_install.yaml
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
---
|
---
|
||||||
- import_playbook: hook/default.yaml
|
- import_playbook: hook/pre_install.yaml
|
||||||
|
|
||||||
# load defaults vars
|
# Load default variables and perform prechecks on all hosts
|
||||||
- hosts:
|
- hosts:
|
||||||
- all
|
- all
|
||||||
vars_files:
|
gather_facts: true
|
||||||
- vars/common.yaml
|
roles:
|
||||||
- vars/kubernetes.yaml
|
- defaults
|
||||||
|
|
||||||
- hosts:
|
- hosts:
|
||||||
- k8s_cluster
|
- k8s_cluster
|
||||||
|
|
@ -19,11 +19,12 @@
|
||||||
post_tasks:
|
post_tasks:
|
||||||
- name: delete localDNS file
|
- name: delete localDNS file
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
loop: "{{ .native.localDNS | toJson }}"
|
||||||
command: |
|
command: |
|
||||||
sed -i ':a;$!{N;ba};s@# kubekey hosts BEGIN.*# kubekey hosts END@@' {{ .item }}
|
sed -i ':a;$!{N;ba};s@# kubekey hosts BEGIN.*# kubekey hosts END@@' {{ .item }}
|
||||||
sed -i ':a;$!{N;ba};s@# kubekey control_plane_endpoint BEGIN.*# kubekey control_plane_endpoint END@@' {{ .item }}
|
sed -i ':a;$!{N;ba};s@# kubekey kubernetes control_plane_endpoint BEGIN.*# kubekey kubernetes control_plane_endpoint END@@' {{ .item }}
|
||||||
|
sed -i ':a;$!{N;ba};s@# kubekey image_registry control_plane_endpoint BEGIN.*# kubekey image_registry control_plane_endpoint END@@' {{ .item }}
|
||||||
when: .deleteDNS
|
when: .deleteDNS
|
||||||
loop: "{{ .localDNS | toJson }}"
|
|
||||||
|
|
||||||
- hosts:
|
- hosts:
|
||||||
- etcd
|
- etcd
|
||||||
|
|
|
||||||
|
|
@ -1,32 +1,17 @@
|
||||||
---
|
---
|
||||||
- import_playbook: hook/default.yaml
|
# Load default variables and perform prechecks on all hosts
|
||||||
|
|
||||||
# load defaults vars
|
|
||||||
- hosts:
|
- hosts:
|
||||||
- all
|
- all
|
||||||
vars_files:
|
gather_facts: true
|
||||||
- vars/common.yaml
|
roles:
|
||||||
- vars/kubernetes.yaml
|
- defaults
|
||||||
|
- precheck
|
||||||
|
|
||||||
- hosts:
|
- hosts:
|
||||||
- kube_control_plane
|
- kube_control_plane
|
||||||
gather_facts: true
|
gather_facts: true
|
||||||
tasks:
|
tasks:
|
||||||
- name: Get kubelet.service LoadState and save to variable
|
- name: DeleteNode | Ensure at least one control plane node remains in the cluster
|
||||||
command: systemctl show kubelet.service -p LoadState --value
|
|
||||||
register: kubernetes_install_LoadState
|
|
||||||
- name: Get kubelet.service ActiveState and save to variable
|
|
||||||
command: systemctl show kubelet.service -p ActiveState --value
|
|
||||||
register: kubernetes_install_ActiveState
|
|
||||||
- name: Check kubernetes service and version
|
|
||||||
when: .kubernetes_install_LoadState.stdout | eq "loaded"
|
|
||||||
block:
|
|
||||||
- name: Kubernetes should be active
|
|
||||||
assert:
|
|
||||||
that: .kubernetes_install_ActiveState.stdout | eq "active"
|
|
||||||
fail_msg: >-
|
|
||||||
kubernetes should be active when it's loaded
|
|
||||||
- name: Keep at least one control_plane node.
|
|
||||||
run_once: true
|
run_once: true
|
||||||
command: |
|
command: |
|
||||||
{{- $cpNodes := list -}}
|
{{- $cpNodes := list -}}
|
||||||
|
|
@ -35,17 +20,15 @@
|
||||||
{{- $cpNodes = append $cpNodes . -}}
|
{{- $cpNodes = append $cpNodes . -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- if (subtractList $cpNodes .delete_nodes) | empty | not }}
|
{{- if (subtractList $cpNodes .delete_nodes) | empty }}
|
||||||
exit 0
|
echo "At least one control plane node must be retained in the cluster." >&2
|
||||||
{{- else }}
|
|
||||||
echo "should keep at least one control_plane"
|
|
||||||
exit 1
|
exit 1
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
- hosts:
|
- hosts:
|
||||||
- k8s_cluster
|
- k8s_cluster
|
||||||
pre_tasks:
|
pre_tasks:
|
||||||
- name: delete node from cluster
|
- name: DeleteNode | Remove node from Kubernetes cluster
|
||||||
when: .delete_nodes | default list | has .inventory_hostname
|
when: .delete_nodes | default list | has .inventory_hostname
|
||||||
command: |
|
command: |
|
||||||
if kubectl get node {{ .hostname }} > /dev/null 2>&1; then
|
if kubectl get node {{ .hostname }} > /dev/null 2>&1; then
|
||||||
|
|
@ -55,7 +38,7 @@
|
||||||
else
|
else
|
||||||
kubectl drain {{ .hostname }} --ignore-daemonsets --delete-emptydir-data --force
|
kubectl drain {{ .hostname }} --ignore-daemonsets --delete-emptydir-data --force
|
||||||
fi
|
fi
|
||||||
{{- if .kubernetes.kube_network_plugin | eq "calico" }}
|
{{- if .cni.type | eq "calico" }}
|
||||||
calicoctl delete node {{ .hostname }}
|
calicoctl delete node {{ .hostname }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
kubectl delete node {{ .hostname }}
|
kubectl delete node {{ .hostname }}
|
||||||
|
|
@ -69,15 +52,16 @@
|
||||||
- .groups.image_registry | default list | has .inventory_hostname | not
|
- .groups.image_registry | default list | has .inventory_hostname | not
|
||||||
- .delete_nodes | default list | has .inventory_hostname
|
- .delete_nodes | default list | has .inventory_hostname
|
||||||
post_tasks:
|
post_tasks:
|
||||||
- name: delete localDNS file
|
- name: DeleteNode | Clean up local DNS configuration files
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
loop: "{{ .native.localDNS | toJson }}"
|
||||||
command: |
|
command: |
|
||||||
sed -i ':a;$!{N;ba};s@# kubekey hosts BEGIN.*# kubekey hosts END@@' {{ .item }}
|
sed -i ':a;$!{N;ba};s@# kubekey hosts BEGIN.*# kubekey hosts END@@' {{ .item }}
|
||||||
sed -i ':a;$!{N;ba};s@# kubekey control_plane_endpoint BEGIN.*# kubekey control_plane_endpoint END@@' {{ .item }}
|
sed -i ':a;$!{N;ba};s@# kubekey kubernetes control_plane_endpoint BEGIN.*# kubekey kubernetes control_plane_endpoint END@@' {{ .item }}
|
||||||
|
sed -i ':a;$!{N;ba};s@# kubekey image_registry control_plane_endpoint BEGIN.*# kubekey image_registry control_plane_endpoint END@@' {{ .item }}
|
||||||
when:
|
when:
|
||||||
- .deleteDNS
|
- .deleteDNS
|
||||||
- .delete_nodes | default list | has .inventory_hostname
|
- .delete_nodes | default list | has .inventory_hostname
|
||||||
loop: "{{ .localDNS | toJson }}"
|
|
||||||
|
|
||||||
- hosts:
|
- hosts:
|
||||||
- etcd
|
- etcd
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,10 @@
|
||||||
---
|
---
|
||||||
- import_playbook: hook/default.yaml
|
# Load default variables and perform prechecks on all hosts
|
||||||
|
|
||||||
# load defaults vars
|
|
||||||
- hosts:
|
- hosts:
|
||||||
- all
|
- all
|
||||||
vars_files:
|
gather_facts: true
|
||||||
- vars/common.yaml
|
roles:
|
||||||
- vars/kubernetes.yaml
|
- defaults
|
||||||
|
|
||||||
- hosts:
|
- hosts:
|
||||||
- image_registry
|
- image_registry
|
||||||
|
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
||||||
---
|
|
||||||
- hosts:
|
|
||||||
- all
|
|
||||||
gather_facts: true
|
|
||||||
tags: ["always"]
|
|
||||||
vars:
|
|
||||||
architectures:
|
|
||||||
amd64:
|
|
||||||
- amd64
|
|
||||||
- x86_64
|
|
||||||
arm64:
|
|
||||||
- arm64
|
|
||||||
- aarch64
|
|
||||||
tasks:
|
|
||||||
- name: Get os arch for each node
|
|
||||||
tags: ["always"]
|
|
||||||
set_fact:
|
|
||||||
binary_type: >-
|
|
||||||
{{- if .architectures.amd64 | has .os.architecture -}}
|
|
||||||
amd64
|
|
||||||
{{- else if .architectures.arm64 | has .os.architecture -}}
|
|
||||||
arm64
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
- hosts:
|
|
||||||
- all
|
|
||||||
tags: ["always"]
|
|
||||||
vars:
|
|
||||||
# work_dir: default is <current_dir>/kubekey
|
|
||||||
binary_dir: >-
|
|
||||||
{{ .work_dir }}/kubekey
|
|
||||||
scripts_dir: >-
|
|
||||||
{{ .binary_dir }}/scripts
|
|
||||||
tmp_dir: /tmp/kubekey
|
|
||||||
|
|
@ -1,9 +1,16 @@
|
||||||
---
|
---
|
||||||
- name: Execute post install scripts
|
- name: Post | Apply Security Enhancements
|
||||||
|
hosts:
|
||||||
|
- all
|
||||||
|
roles:
|
||||||
|
- role: security
|
||||||
|
when: .security_enhancement
|
||||||
|
|
||||||
|
- name: Post | Run Post-Installation Scripts
|
||||||
hosts:
|
hosts:
|
||||||
- all
|
- all
|
||||||
tasks:
|
tasks:
|
||||||
- name: Copy post install scripts to remote
|
- name: Post | Copy post-installation scripts to remote hosts
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
|
|
@ -11,15 +18,15 @@
|
||||||
dest: >-
|
dest: >-
|
||||||
/etc/kubekey/scripts/post_install_{{ .inventory_hostname }}.sh
|
/etc/kubekey/scripts/post_install_{{ .inventory_hostname }}.sh
|
||||||
mode: 0755
|
mode: 0755
|
||||||
register: execute_result
|
register: post_install_copy_result
|
||||||
|
|
||||||
- name: Execute post install scripts
|
- name: Post | Execute post-installation scripts on remote hosts
|
||||||
when: .execute_result.error | empty
|
when: .post_install_copy_result.error | empty
|
||||||
command: |
|
command: |
|
||||||
for file in /etc/kubekey/scripts/post_install_*.sh; do
|
for file in /etc/kubekey/scripts/post_install_*.sh; do
|
||||||
if [ -f $file ]; then
|
if [ -f "$file" ]; then
|
||||||
# execute file
|
# Make the script executable and run it
|
||||||
chmod +x $file
|
chmod +x "$file"
|
||||||
$file
|
"$file"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
---
|
---
|
||||||
- name: Execute pre install scripts
|
- name: Pre | Run Pre-Installation Scripts
|
||||||
hosts:
|
hosts:
|
||||||
- all
|
- all
|
||||||
tasks:
|
tasks:
|
||||||
- name: Copy pre install scripts to remote
|
- name: Pre | Copy pre-installation scripts to remote hosts
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
|
|
@ -11,15 +11,15 @@
|
||||||
dest: >-
|
dest: >-
|
||||||
/etc/kubekey/scripts/pre_install_{{ .inventory_hostname }}.sh
|
/etc/kubekey/scripts/pre_install_{{ .inventory_hostname }}.sh
|
||||||
mode: 0755
|
mode: 0755
|
||||||
register: execute_result
|
register: pre_install_copy_result
|
||||||
|
|
||||||
- name: Execute pre install scripts
|
- name: Pre | Execute pre-installation scripts on remote hosts
|
||||||
when: .execute_result.error | empty
|
when: .pre_install_copy_result.error | empty
|
||||||
command: |
|
command: |
|
||||||
for file in /etc/kubekey/scripts/pre_install_*.sh; do
|
for file in /etc/kubekey/scripts/pre_install_*.sh; do
|
||||||
if [ -f $file ]; then
|
if [ -f "$file" ]; then
|
||||||
# execute file
|
# Make the script executable and run it
|
||||||
chmod +x $file
|
chmod +x "$file"
|
||||||
$file
|
"$file"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,25 @@
|
||||||
---
|
---
|
||||||
- import_playbook: hook/default.yaml
|
# Load default variables and perform prechecks on all hosts
|
||||||
|
- hosts:
|
||||||
|
- all
|
||||||
|
gather_facts: true
|
||||||
|
roles:
|
||||||
|
- defaults
|
||||||
|
|
||||||
|
# Download all required software and generate certificates on the localhost
|
||||||
- hosts:
|
- hosts:
|
||||||
- localhost
|
- localhost
|
||||||
|
gather_facts: true
|
||||||
roles:
|
roles:
|
||||||
- init/init-artifact
|
- certs/init
|
||||||
- init/init-cert
|
- download
|
||||||
|
|
||||||
|
# Initialize all nodes and install necessary software packages
|
||||||
- hosts:
|
- hosts:
|
||||||
- etcd
|
- etcd
|
||||||
- k8s_cluster
|
- k8s_cluster
|
||||||
- registry
|
- image_registry
|
||||||
- nfs
|
- nfs
|
||||||
roles:
|
roles:
|
||||||
- init/init-os
|
- native
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,25 @@
|
||||||
---
|
---
|
||||||
- import_playbook: hook/default.yaml
|
# Load default variables and perform prechecks on all hosts
|
||||||
|
|
||||||
- hosts:
|
- hosts:
|
||||||
- localhost
|
- all
|
||||||
roles:
|
tags: ["always"]
|
||||||
- init/init-artifact
|
|
||||||
- init/init-cert
|
|
||||||
|
|
||||||
- hosts:
|
|
||||||
- image_registry
|
|
||||||
gather_facts: true
|
gather_facts: true
|
||||||
roles:
|
roles:
|
||||||
- init/init-os
|
- role: defaults
|
||||||
- install/image-registry
|
|
||||||
|
|
||||||
|
# Download all required software and generate certificates on the localhost
|
||||||
|
- hosts:
|
||||||
|
- localhost
|
||||||
|
gather_facts: true
|
||||||
|
roles:
|
||||||
|
- role: certs/init
|
||||||
|
- role: download
|
||||||
|
|
||||||
|
# Initialize all nodes and install necessary software packages
|
||||||
|
- hosts:
|
||||||
|
- image_registry
|
||||||
|
tags: ["always"]
|
||||||
|
roles:
|
||||||
|
- role: native
|
||||||
|
- role: image-registry
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,8 @@
|
||||||
---
|
---
|
||||||
- import_playbook: hook/default.yaml
|
# Load default variables and perform prechecks on all hosts
|
||||||
|
|
||||||
- hosts:
|
- hosts:
|
||||||
- localhost
|
- all
|
||||||
roles:
|
|
||||||
- role: precheck/artifact_check
|
|
||||||
when: .artifact.artifact_file | empty | not
|
|
||||||
|
|
||||||
- hosts:
|
|
||||||
- k8s_cluster
|
|
||||||
- etcd
|
|
||||||
- image_registry
|
|
||||||
- nfs
|
|
||||||
gather_facts: true
|
gather_facts: true
|
||||||
tags: ["always"]
|
|
||||||
roles:
|
roles:
|
||||||
- role: precheck/env_check
|
- defaults
|
||||||
tags: ["always"]
|
- precheck
|
||||||
|
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
kubernetes:
|
|
||||||
etcd:
|
|
||||||
deployment_type: external
|
|
||||||
cri:
|
|
||||||
# support: containerd,docker
|
|
||||||
container_manager: docker
|
|
||||||
image_registry:
|
|
||||||
type: harbor
|
|
||||||
|
|
@ -1,45 +0,0 @@
|
||||||
# The global registry used for all images. Leave empty to use default registries.
|
|
||||||
global_registry: ""
|
|
||||||
|
|
||||||
# The registry to use for docker.io images.
|
|
||||||
dockerio_registry: >-
|
|
||||||
{{- if .global_registry | empty | not -}}
|
|
||||||
{{ .global_registry }}
|
|
||||||
{{- else -}}
|
|
||||||
docker.io
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
# The registry to use for quay.io images.
|
|
||||||
quayio_registry: >-
|
|
||||||
{{- if .global_registry | empty | not -}}
|
|
||||||
{{ .global_registry }}
|
|
||||||
{{- else -}}
|
|
||||||
quay.io
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
# The registry to use for ghcr.io images.
|
|
||||||
ghcrio_registry: >-
|
|
||||||
{{- if .global_registry | empty | not -}}
|
|
||||||
{{ .global_registry }}
|
|
||||||
{{- else -}}
|
|
||||||
ghcr.io
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
# Enable or disable security enhancement features.
|
|
||||||
security_enhancement: false
|
|
||||||
|
|
||||||
# Set to true to remove the container runtime interface (CRI) such as containerd or Docker from target nodes.
|
|
||||||
deleteCRI: false
|
|
||||||
|
|
||||||
# Set to true to uninstall etcd from target nodes.
|
|
||||||
deleteETCD: false
|
|
||||||
|
|
||||||
# Set to true to remove local DNS entries managed by Kubekey from the specified files.
|
|
||||||
deleteDNS: false
|
|
||||||
|
|
||||||
# Set to true to uninstall the image registry from target nodes.
|
|
||||||
deleteImageRegistry: false
|
|
||||||
|
|
||||||
# List of local DNS files to clean up if deleteDNS is enabled.
|
|
||||||
localDNS:
|
|
||||||
- /etc/hosts
|
|
||||||
|
|
@ -1,193 +0,0 @@
|
||||||
kubernetes:
|
|
||||||
cluster_name: kubekey
|
|
||||||
# Supported network plugins: flannel, calico
|
|
||||||
kube_network_plugin: calico
|
|
||||||
# The image repository for Kubernetes components.
|
|
||||||
image_repository: >-
|
|
||||||
{{ .dockerio_registry }}/kubesphere
|
|
||||||
# Minimum memory (in MB) required for each kube_worker node.
|
|
||||||
# This value must be at least minimal_node_memory_mb.
|
|
||||||
minimal_node_memory_mb: 10
|
|
||||||
# Maximum number of pods allowed per node.
|
|
||||||
max_pods: 110
|
|
||||||
audit: false
|
|
||||||
networking:
|
|
||||||
# The complete pod CIDR for the cluster. Supports: ipv4, ipv6, or dual-stack (ipv4,ipv6).
|
|
||||||
pod_cidr: 10.233.64.0/18
|
|
||||||
# Subnet mask size for IPv4 pod CIDR on each node.
|
|
||||||
ipv4_mask_size: 24
|
|
||||||
# Subnet mask size for IPv6 pod CIDR on each node.
|
|
||||||
ipv6_mask_size: 64
|
|
||||||
# The complete service CIDR for the cluster. Supports: ipv4, ipv6, or dual-stack (ipv4,ipv6).
|
|
||||||
service_cidr: 10.233.0.0/18
|
|
||||||
dns_domain: cluster.local
|
|
||||||
dns_image:
|
|
||||||
registry: >-
|
|
||||||
{{ .dockerio_registry }}
|
|
||||||
repository: >-
|
|
||||||
coredns
|
|
||||||
tag: 1.8.6
|
|
||||||
dns_cache_image:
|
|
||||||
registry: >-
|
|
||||||
{{ .dockerio_registry }}
|
|
||||||
repository: kubesphere/k8s-dns-node-cache
|
|
||||||
tag: 1.22.20
|
|
||||||
dns_service_ip: >-
|
|
||||||
{{ index (.kubernetes.networking.service_cidr | ipInCIDR) 2 }}
|
|
||||||
# The IP address for nodelocaldns to bind.
|
|
||||||
clusterDNS: 169.254.25.10
|
|
||||||
apiserver:
|
|
||||||
port: 6443
|
|
||||||
certSANs: []
|
|
||||||
extra_args:
|
|
||||||
# Example: feature-gates: ExpandCSIVolumes=true,CSIStorageCapacity=true,RotateKubeletServerCertificate=true
|
|
||||||
controller_manager:
|
|
||||||
extra_args:
|
|
||||||
# Example: feature-gates: ExpandCSIVolumes=true,CSIStorageCapacity=true,RotateKubeletServerCertificate=true
|
|
||||||
scheduler:
|
|
||||||
extra_args:
|
|
||||||
# Example: feature-gates: ExpandCSIVolumes=true,CSIStorageCapacity=true,RotateKubeletServerCertificate=true
|
|
||||||
kube_proxy:
|
|
||||||
enabled: true
|
|
||||||
# Supported proxy modes: ipvs, iptables
|
|
||||||
mode: "ipvs"
|
|
||||||
config:
|
|
||||||
iptables:
|
|
||||||
masqueradeAll: false
|
|
||||||
masqueradeBit: 14
|
|
||||||
minSyncPeriod: 0s
|
|
||||||
syncPeriod: 30s
|
|
||||||
kubelet:
|
|
||||||
max_pod: 110
|
|
||||||
pod_pids_limit: 10000
|
|
||||||
# feature_gates:
|
|
||||||
container_log_max_size: 5Mi
|
|
||||||
container_log_max_files: 3
|
|
||||||
# extra_args:
|
|
||||||
coredns:
|
|
||||||
dns_etc_hosts: []
|
|
||||||
# DNS zone configuration
|
|
||||||
zone_configs:
|
|
||||||
# Each entry defines DNS zones to match. Default port is 53.
|
|
||||||
# ".": matches all DNS zones.
|
|
||||||
# "example.com": matches *.example.com using DNS server on port 53.
|
|
||||||
# "example.com:54": matches *.example.com using DNS server on port 54.
|
|
||||||
- zones: [".:53"]
|
|
||||||
additional_configs:
|
|
||||||
- errors
|
|
||||||
- ready
|
|
||||||
- prometheus :9153
|
|
||||||
- loop
|
|
||||||
- reload
|
|
||||||
- loadbalance
|
|
||||||
cache: 30
|
|
||||||
kubernetes:
|
|
||||||
zones:
|
|
||||||
- "{{ .kubernetes.networking.dns_domain }}"
|
|
||||||
# Internal DNS message rewriting can be configured here.
|
|
||||||
# rewrite:
|
|
||||||
# - rule: continue
|
|
||||||
# field: name
|
|
||||||
# type: exact
|
|
||||||
# value: "example.com example2.com"
|
|
||||||
# options: ""
|
|
||||||
forward:
|
|
||||||
# Forwarding rules for DNS queries.
|
|
||||||
- from: "."
|
|
||||||
# Destination endpoints for forwarding. The TO syntax allows protocol specification.
|
|
||||||
to: ["/etc/resolv.conf"]
|
|
||||||
# List of domains to exclude from forwarding.
|
|
||||||
except: []
|
|
||||||
# Use TCP for forwarding even if the request was over UDP.
|
|
||||||
force_tcp: false
|
|
||||||
# Prefer UDP for forwarding, retry with TCP if response is truncated.
|
|
||||||
prefer_udp: false
|
|
||||||
# Number of consecutive failed health checks before marking an upstream as down.
|
|
||||||
# max_fails: 2
|
|
||||||
# Time after which cached connections expire.
|
|
||||||
# expire: 10s
|
|
||||||
# TLS properties for secure connections can be set here.
|
|
||||||
# tls:
|
|
||||||
# cert_file: ""
|
|
||||||
# key_file: ""
|
|
||||||
# ca_file: ""
|
|
||||||
# tls_servername: ""
|
|
||||||
# Policy for selecting upstream servers: random (default), round_robin, sequential.
|
|
||||||
# policy: "random"
|
|
||||||
# Health check configuration for upstream servers.
|
|
||||||
# health_check: ""
|
|
||||||
# Maximum number of concurrent DNS queries.
|
|
||||||
max_concurrent: 1000
|
|
||||||
# Specify a stable IP address or DNS name for the control plane endpoint.
|
|
||||||
# For high availability, it is recommended to use a DNS domain name for control_plane_endpoint.
|
|
||||||
# Options:
|
|
||||||
# 1. If a DNS domain name is available:
|
|
||||||
# - Set control_plane_endpoint to the DNS name and configure it to resolve to all control plane node IPs.
|
|
||||||
# 2. If a DNS domain name is not available:
|
|
||||||
# - Set control_plane_endpoint to a DNS name that can be added later.
|
|
||||||
# - Add the DNS name resolution to the localDNS file on each node in the format:
|
|
||||||
# {{ vip }} {{ control_plane_endpoint }}
|
|
||||||
# - If a VIP is available:
|
|
||||||
# Deploy kube-vip on control plane nodes to map the VIP to the actual node IPs.
|
|
||||||
# - If a VIP is not available:
|
|
||||||
# Deploy HAProxy on worker nodes. Map a fixed IP (e.g., 127.0.0.2) as the VIP and route it to all control plane node IPs.
|
|
||||||
#
|
|
||||||
# Non-HA scenario: (No installation provided; parameters are for manual configuration.)
|
|
||||||
# In this case, set the VIP to one of the control plane nodes.
|
|
||||||
control_plane_endpoint:
|
|
||||||
host: lb.kubesphere.local
|
|
||||||
port: "{{ .kubernetes.apiserver.port }}"
|
|
||||||
# Supported types: local, kube_vip, haproxy
|
|
||||||
# If type is local, the following applies:
|
|
||||||
# - On control-plane nodes: 127.0.0.1 {{ .kubernetes.control_plane_endpoint.host }}
|
|
||||||
# - On worker nodes: {{ .init_kubernetes_node }} {{ .kubernetes.control_plane_endpoint.host }}
|
|
||||||
type: local
|
|
||||||
kube_vip:
|
|
||||||
# The IP address of the node's network interface (e.g., "eth0").
|
|
||||||
# address:
|
|
||||||
# Supported modes: ARP, BGP
|
|
||||||
mode: ARP
|
|
||||||
image:
|
|
||||||
registry: >-
|
|
||||||
{{ .dockerio_registry }}
|
|
||||||
repository: plndr/kube-vip
|
|
||||||
tag: v0.7.2
|
|
||||||
haproxy:
|
|
||||||
# The IP address on the node's "lo" (loopback) interface.
|
|
||||||
address: 127.0.0.1
|
|
||||||
health_port: 8081
|
|
||||||
image:
|
|
||||||
registry: >-
|
|
||||||
{{ .dockerio_registry }}
|
|
||||||
repository: library/haproxy
|
|
||||||
tag: 2.9.6-alpine
|
|
||||||
etcd:
|
|
||||||
# etcd can be deployed in three ways:
|
|
||||||
# - external: Use an external etcd cluster.
|
|
||||||
# - internal: Deploy etcd as a static pod.
|
|
||||||
deployment_type: external
|
|
||||||
image:
|
|
||||||
registry: >-
|
|
||||||
{{ .dockerio_registry }}
|
|
||||||
repository: kubesphere/etcd
|
|
||||||
tag: 3.5.0
|
|
||||||
# custom_labels: {}
|
|
||||||
# Enable or disable automatic renewal of Kubernetes certificates.
|
|
||||||
certs:
|
|
||||||
# Kubernetes Certificate Authority (CA) files can be provided in three ways:
|
|
||||||
# 1. kubeadm: Leave ca_cert and ca_key empty to let kubeadm generate them automatically.
|
|
||||||
# These certificates are valid for 10 years and remain unchanged.
|
|
||||||
# 2. kubekey: Set ca_cert to {{ .binary_dir }}/pki/ca.cert and ca_key to {{ .binary_dir }}/pki/ca.key.
|
|
||||||
# These are generated by kubekey, valid for 10 years, and can be updated using `cert.ca_date`.
|
|
||||||
# 3. custom: Provide your own CA files by specifying the absolute paths for ca_cert and ca_key.
|
|
||||||
#
|
|
||||||
# To use custom CA files, specify their absolute paths below.
|
|
||||||
# If left empty, the default behavior (kubeadm or kubekey) will be used.
|
|
||||||
ca_cert: ""
|
|
||||||
ca_key: ""
|
|
||||||
# The following fields are for the Kubernetes front-proxy CA certificate and key.
|
|
||||||
# To use custom front-proxy CA files, specify their absolute paths below.
|
|
||||||
# If left empty, the default behavior will be used.
|
|
||||||
front_proxy_cert: ""
|
|
||||||
front_proxy_key: ""
|
|
||||||
renew: true
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
---
|
---
|
||||||
- name: Cert | Generate the root CA certificate file
|
- name: Cert | Generate the root CA certificate file
|
||||||
|
tags: ["always"]
|
||||||
gen_cert:
|
gen_cert:
|
||||||
cn: root
|
cn: root
|
||||||
date: "{{ .certs.ca.date }}"
|
date: "{{ .certs.ca.date }}"
|
||||||
|
|
@ -10,6 +11,7 @@
|
||||||
{{ .binary_dir }}/pki/root.crt
|
{{ .binary_dir }}/pki/root.crt
|
||||||
|
|
||||||
- name: Cert | Generate Kubernetes CA certificates
|
- name: Cert | Generate Kubernetes CA certificates
|
||||||
|
tags: ["kubernetes"]
|
||||||
block:
|
block:
|
||||||
- name: Cert | Generate the Kubernetes CA certificate file
|
- name: Cert | Generate the Kubernetes CA certificate file
|
||||||
gen_cert:
|
gen_cert:
|
||||||
|
|
@ -41,6 +43,7 @@
|
||||||
{{ .binary_dir }}/pki/front-proxy.crt
|
{{ .binary_dir }}/pki/front-proxy.crt
|
||||||
|
|
||||||
- name: Cert | Generate the etcd certificate file
|
- name: Cert | Generate the etcd certificate file
|
||||||
|
tags: ["etcd"]
|
||||||
gen_cert:
|
gen_cert:
|
||||||
root_key: >-
|
root_key: >-
|
||||||
{{ .binary_dir }}/pki/root.key
|
{{ .binary_dir }}/pki/root.key
|
||||||
|
|
@ -69,6 +72,7 @@
|
||||||
when: .groups.etcd | default list | empty | not
|
when: .groups.etcd | default list | empty | not
|
||||||
|
|
||||||
- name: Cert | Generate the image registry certificate file
|
- name: Cert | Generate the image registry certificate file
|
||||||
|
tags: ["image_registry"]
|
||||||
gen_cert:
|
gen_cert:
|
||||||
root_key: >-
|
root_key: >-
|
||||||
{{ .binary_dir }}/pki/root.key
|
{{ .binary_dir }}/pki/root.key
|
||||||
|
|
@ -100,6 +104,7 @@
|
||||||
when: .groups.image_registry | default list | empty | not
|
when: .groups.image_registry | default list | empty | not
|
||||||
|
|
||||||
- name: Cert | Set ownership of the PKI directory to the sudo user
|
- name: Cert | Set ownership of the PKI directory to the sudo user
|
||||||
|
tags: ["kubernetes"]
|
||||||
block:
|
block:
|
||||||
- name: Cert | Change ownership of the PKI directory to the sudo user
|
- name: Cert | Change ownership of the PKI directory to the sudo user
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
@ -2,19 +2,19 @@
|
||||||
- name: ETCD | Copy CA certificate to remote host
|
- name: ETCD | Copy CA certificate to remote host
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/pki/root.crt
|
{{ ..etcd.ca_file }}
|
||||||
dest: /etc/ssl/etcd/ssl/ca.crt
|
dest: /etc/ssl/etcd/ssl/ca.crt
|
||||||
|
|
||||||
- name: ETCD | Copy server certificate to remote host
|
- name: ETCD | Copy server certificate to remote host
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/pki/etcd.crt
|
{{ .etcd.cert_file }}
|
||||||
dest: /etc/ssl/etcd/ssl/server.crt
|
dest: /etc/ssl/etcd/ssl/server.crt
|
||||||
|
|
||||||
- name: ETCD | Copy server private key to remote host
|
- name: ETCD | Copy server private key to remote host
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/pki/etcd.key
|
{{ .etcd.key_file }}
|
||||||
dest: /etc/ssl/etcd/ssl/server.key
|
dest: /etc/ssl/etcd/ssl/server.key
|
||||||
|
|
||||||
- name: ETCD | Restart etcd service to apply new certificates
|
- name: ETCD | Restart etcd service to apply new certificates
|
||||||
|
|
|
||||||
|
|
@ -4,14 +4,14 @@
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/pki/image_registry.crt
|
{{ .binary_dir }}/pki/image_registry.crt
|
||||||
dest: >-
|
dest: >-
|
||||||
/opt/harbor/{{ .harbor_version }}/ssl/server.crt
|
/opt/harbor/{{ .image_registry.harbor_version }}/ssl/server.crt
|
||||||
|
|
||||||
- name: Harbor | Copy image registry private key to remote host
|
- name: Harbor | Copy image registry private key to remote host
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/pki/image_registry.key
|
{{ .binary_dir }}/pki/image_registry.key
|
||||||
dest: >-
|
dest: >-
|
||||||
/opt/harbor/{{ .harbor_version }}/ssl/server.key
|
/opt/harbor/{{ .image_registry.harbor_version }}/ssl/server.key
|
||||||
|
|
||||||
- name: Harbor | Restart Harbor service to apply new certificates
|
- name: Harbor | Restart Harbor service to apply new certificates
|
||||||
command: systemctl restart harbor.service
|
command: systemctl restart harbor.service
|
||||||
|
|
|
||||||
|
|
@ -4,14 +4,14 @@
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/pki/image_registry.crt
|
{{ .binary_dir }}/pki/image_registry.crt
|
||||||
dest: >-
|
dest: >-
|
||||||
/opt/docker-registry/{{ .docker_registry_version }}/ssl/server.crt
|
/opt/docker-registry/{{ .image_registry.docker_registry_version }}/ssl/server.crt
|
||||||
|
|
||||||
- name: Docker Registry | Copy image registry private key to remote host
|
- name: Docker Registry | Copy image registry private key to remote host
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/pki/image_registry.key
|
{{ .binary_dir }}/pki/image_registry.key
|
||||||
dest: >-
|
dest: >-
|
||||||
/opt/docker-registry/{{ .docker_registry_version }}/ssl/server.key
|
/opt/docker-registry/{{ .image_registry.docker_registry_version }}/ssl/server.key
|
||||||
|
|
||||||
- name: Docker Registry | Restart registry service to apply new certificates
|
- name: Docker Registry | Restart registry service to apply new certificates
|
||||||
command: systemctl restart registry.service
|
command: systemctl restart docker-registry.service
|
||||||
|
|
|
||||||
|
|
@ -2,20 +2,20 @@
|
||||||
- name: ETCD | Copy CA certificate to remote host
|
- name: ETCD | Copy CA certificate to remote host
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/pki/root.crt
|
{{ .etcd.ca_file }}
|
||||||
dest: /etc/kubernetes/pki/etcd/ca.crt
|
dest: /etc/kubernetes/pki/etcd/ca.crt
|
||||||
mode: 0755
|
mode: 0755
|
||||||
|
|
||||||
- name: ETCD | Copy client certificate to remote host
|
- name: ETCD | Copy client certificate to remote host
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/pki/etcd.crt
|
{{ .etcd.cert_file }}
|
||||||
dest: /etc/kubernetes/pki/etcd/client.crt
|
dest: /etc/kubernetes/pki/etcd/client.crt
|
||||||
mode: 0755
|
mode: 0755
|
||||||
|
|
||||||
- name: ETCD | Copy client key to remote host
|
- name: ETCD | Copy client key to remote host
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/pki/etcd.key
|
{{ .etcd.key_file }}
|
||||||
dest: /etc/kubernetes/pki/etcd/client.key
|
dest: /etc/kubernetes/pki/etcd/client.key
|
||||||
mode: 0755
|
mode: 0755
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
/usr/local/bin/kubeadm alpha certs renew admin.conf
|
/usr/local/bin/kubeadm alpha certs renew admin.conf
|
||||||
/usr/local/bin/kubeadm alpha certs renew controller-manager.conf
|
/usr/local/bin/kubeadm alpha certs renew controller-manager.conf
|
||||||
/usr/local/bin/kubeadm alpha certs renew scheduler.conf
|
/usr/local/bin/kubeadm alpha certs renew scheduler.conf
|
||||||
{{- if .kubernetes.etcd.deployment_type | eq "internal" }}
|
{{- if .etcd.deployment_type | eq "internal" }}
|
||||||
/usr/local/bin/kubeadm alpha certs renew etcd-healthcheck-client
|
/usr/local/bin/kubeadm alpha certs renew etcd-healthcheck-client
|
||||||
/usr/local/bin/kubeadm alpha certs renew etcd-peer
|
/usr/local/bin/kubeadm alpha certs renew etcd-peer
|
||||||
/usr/local/bin/kubeadm alpha certs renew etcd-server
|
/usr/local/bin/kubeadm alpha certs renew etcd-server
|
||||||
|
|
@ -28,7 +28,7 @@
|
||||||
/usr/local/bin/kubeadm certs renew admin.conf
|
/usr/local/bin/kubeadm certs renew admin.conf
|
||||||
/usr/local/bin/kubeadm certs renew controller-manager.conf
|
/usr/local/bin/kubeadm certs renew controller-manager.conf
|
||||||
/usr/local/bin/kubeadm certs renew scheduler.conf
|
/usr/local/bin/kubeadm certs renew scheduler.conf
|
||||||
{{- if .kubernetes.etcd.deployment_type | eq "internal" }}
|
{{- if .etcd.deployment_type | eq "internal" }}
|
||||||
/usr/local/bin/kubeadm certs renew etcd-healthcheck-client
|
/usr/local/bin/kubeadm certs renew etcd-healthcheck-client
|
||||||
/usr/local/bin/kubeadm certs renew etcd-peer
|
/usr/local/bin/kubeadm certs renew etcd-peer
|
||||||
/usr/local/bin/kubeadm certs renew etcd-server
|
/usr/local/bin/kubeadm certs renew etcd-server
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
- include_tasks: etcd.yaml
|
- include_tasks: etcd.yaml
|
||||||
when:
|
when:
|
||||||
- .kubernetes.etcd.deployment_type | eq "external"
|
- .etcd.deployment_type | eq "external"
|
||||||
- .groups.etcd | default list | empty | not
|
- .groups.etcd | default list | empty | not
|
||||||
|
|
||||||
- name: Kubernetes | Restart Kubernetes control plane pods
|
- name: Kubernetes | Restart Kubernetes control plane pods
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
docker ps -af name=k8s_PODS_kube-apiserver* -q | xargs --no-run-if-empty docker rm -f
|
docker ps -af name=k8s_PODS_kube-apiserver* -q | xargs --no-run-if-empty docker rm -f
|
||||||
docker ps -af name=k8s_PODS_kube-controller-manager* -q | xargs --no-run-if-empty docker rm -f
|
docker ps -af name=k8s_PODS_kube-controller-manager* -q | xargs --no-run-if-empty docker rm -f
|
||||||
docker ps -af name=k8s_PODS_kube-scheduler* -q | xargs --no-run-if-empty docker rm -f
|
docker ps -af name=k8s_PODS_kube-scheduler* -q | xargs --no-run-if-empty docker rm -f
|
||||||
{{- if .kubernetes.etcd.deployment_type | eq "docker" }}
|
{{- if .etcd.deployment_type | eq "docker" }}
|
||||||
# Restarting etcd pods managed by Docker
|
# Restarting etcd pods managed by Docker
|
||||||
docker ps -af name=k8s_PODS_etcd* -q | xargs --no-run-if-empty docker rm -f
|
docker ps -af name=k8s_PODS_etcd* -q | xargs --no-run-if-empty docker rm -f
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
crictl pods --name kube-apiserver-* -q | xargs -I% --no-run-if-empty bash -c 'crictl stopp % && crictl rmp %'
|
crictl pods --name kube-apiserver-* -q | xargs -I% --no-run-if-empty bash -c 'crictl stopp % && crictl rmp %'
|
||||||
crictl pods --name kube-controller-manager-* -q | xargs -I% --no-run-if-empty bash -c 'crictl stopp % && crictl rmp %'
|
crictl pods --name kube-controller-manager-* -q | xargs -I% --no-run-if-empty bash -c 'crictl stopp % && crictl rmp %'
|
||||||
crictl pods --name kube-scheduler-* -q | xargs -I% --no-run-if-empty bash -c 'crictl stopp % && crictl rmp %'
|
crictl pods --name kube-scheduler-* -q | xargs -I% --no-run-if-empty bash -c 'crictl stopp % && crictl rmp %'
|
||||||
{{- if .kubernetes.etcd.deployment_type | eq "internal" }}
|
{{- if .etcd.deployment_type | eq "internal" }}
|
||||||
# Restarting etcd pods managed by the container runtime
|
# Restarting etcd pods managed by the container runtime
|
||||||
crictl pods --name etcd-* -q | xargs -I% --no-run-if-empty bash -c 'crictl stopp % && crictl rmp %'
|
crictl pods --name etcd-* -q | xargs -I% --no-run-if-empty bash -c 'crictl stopp % && crictl rmp %'
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
cni:
|
||||||
|
calico:
|
||||||
|
values: |
|
||||||
|
# calico helm values
|
||||||
|
tigeraOperator:
|
||||||
|
registry: {{ .image_registry.quayio_registry }}
|
||||||
|
calicoctl:
|
||||||
|
image: {{ .image_registry.dockerio_registry }}/calico/ctl
|
||||||
|
installation:
|
||||||
|
registry: {{ .image_registry.dockerio_registry }}
|
||||||
|
calicoNetwork:
|
||||||
|
bgp: Enabled
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
---
|
||||||
|
- name: Calico | Check if calicoctl is installed
|
||||||
|
ignore_errors: true
|
||||||
|
command: calicoctl version
|
||||||
|
register: calicoctl_install_version
|
||||||
|
register_type: yaml
|
||||||
|
|
||||||
|
- name: Calico | Install calicoctl if it is not present
|
||||||
|
when: .calicoctl_install_version.error | empty | not
|
||||||
|
block:
|
||||||
|
- name: Calico | Copy calicoctl binary to remote node
|
||||||
|
copy:
|
||||||
|
src: >-
|
||||||
|
{{ .binary_dir }}/cni/calico/{{ .cni.calico_version }}/{{ .binary_type }}/calicoctl
|
||||||
|
dest: /usr/local/bin/calicoctl
|
||||||
|
mode: 0755
|
||||||
|
|
||||||
|
- name: Calico | Copy Calico Helm package to remote node
|
||||||
|
copy:
|
||||||
|
src: >-
|
||||||
|
{{ .binary_dir }}/cni/calico/tigera-operator-{{ .cni.calico_version }}.tgz
|
||||||
|
dest: >-
|
||||||
|
/etc/kubernetes/cni/tigera-operator-{{ .cni.calico_version }}.tgz
|
||||||
|
|
||||||
|
- name: Calico | Generate custom values file for Calico
|
||||||
|
copy:
|
||||||
|
content: |
|
||||||
|
{{ .cni.calico.values }}
|
||||||
|
dest: /etc/kubernetes/cni/calico-values.yaml
|
||||||
|
|
||||||
|
- name: Calico | Deploy Calico using Helm
|
||||||
|
command: |
|
||||||
|
helm upgrade --install --create-namespace --namespace tigera-operator calico /etc/kubernetes/cni/tigera-operator-{{ .cni.calico_version }}.tgz -f /etc/kubernetes/cni/calico-values.yaml
|
||||||
|
|
@ -3,47 +3,47 @@ cni:
|
||||||
values: |
|
values: |
|
||||||
# cilium helm values
|
# cilium helm values
|
||||||
image:
|
image:
|
||||||
repository: {{ .quayio_registry }}/cilium/cilium-cli
|
repository: {{ .image_registry.quayio_registry }}/cilium/cilium-cli
|
||||||
certgen:
|
certgen:
|
||||||
image:
|
image:
|
||||||
repository: {{ .quayio_registry }}/cilium/certgen
|
repository: {{ .image_registry.quayio_registry }}/cilium/certgen
|
||||||
hubble:
|
hubble:
|
||||||
relay:
|
relay:
|
||||||
image:
|
image:
|
||||||
repository: {{ .quayio_registry }}/cilium/hubble-relay-ci
|
repository: {{ .image_registry.quayio_registry }}/cilium/hubble-relay-ci
|
||||||
ui:
|
ui:
|
||||||
backend:
|
backend:
|
||||||
image:
|
image:
|
||||||
repository: {{ .quayio_registry }}/cilium/hubble-ui-backend
|
repository: {{ .image_registry.quayio_registry }}/cilium/hubble-ui-backend
|
||||||
frontend:
|
frontend:
|
||||||
image:
|
image:
|
||||||
repository: {{ .quayio_registry }}/cilium/hubble-ui
|
repository: {{ .image_registry.quayio_registry }}/cilium/hubble-ui
|
||||||
envoy:
|
envoy:
|
||||||
image:
|
image:
|
||||||
repository: {{ .quayio_registry }}/cilium/cilium-envoy
|
repository: {{ .image_registry.quayio_registry }}/cilium/cilium-envoy
|
||||||
operator:
|
operator:
|
||||||
replicas: 2
|
replicas: 2
|
||||||
image:
|
image:
|
||||||
repository: {{ .quayio_registry }}/cilium/operator
|
repository: {{ .image_registry.quayio_registry }}/cilium/operator
|
||||||
nodeinit:
|
nodeinit:
|
||||||
image:
|
image:
|
||||||
repository: {{ .quayio_registry }}/cilium/startup-script
|
repository: {{ .image_registry.quayio_registry }}/cilium/startup-script
|
||||||
preflight:
|
preflight:
|
||||||
image:
|
image:
|
||||||
repository: {{ .quayio_registry }}/cilium/cilium-ci
|
repository: {{ .image_registry.quayio_registry }}/cilium/cilium-ci
|
||||||
clustermesh:
|
clustermesh:
|
||||||
apiserver:
|
apiserver:
|
||||||
image:
|
image:
|
||||||
repository: {{ .quayio_registry }}/cilium/clustermesh-apiserver-ci
|
repository: {{ .image_registry.quayio_registry }}/cilium/clustermesh-apiserver-ci
|
||||||
authentication:
|
authentication:
|
||||||
mutual:
|
mutual:
|
||||||
spire:
|
spire:
|
||||||
install:
|
install:
|
||||||
initImage:
|
initImage:
|
||||||
repository: {{ .dockerio_registry }}/library/busybox
|
repository: {{ .image_registry.dockerio_registry }}/library/busybox
|
||||||
agent:
|
agent:
|
||||||
image:
|
image:
|
||||||
repository: {{ .ghcrio_registry }}/spiffe/spire-agent
|
repository: {{ .image_registry.ghcrio_registry }}/spiffe/spire-agent
|
||||||
server:
|
server:
|
||||||
image:
|
image:
|
||||||
repository: {{ .ghcrio_registry }}/spiffe/spire-server
|
repository: {{ .ghcrio_registry }}/spiffe/spire-server
|
||||||
|
|
@ -56,12 +56,12 @@ cni:
|
||||||
{{- if .cni.ipv4_support }}
|
{{- if .cni.ipv4_support }}
|
||||||
clusterPoolIPv4PodCIDRList:
|
clusterPoolIPv4PodCIDRList:
|
||||||
- {{ .cni.ipv4_pods_cidr }}
|
- {{ .cni.ipv4_pods_cidr }}
|
||||||
clusterPoolIPv4MaskSize: {{ .cni.ipv4_block_size }}
|
clusterPoolIPv4MaskSize: {{ .cni.ipv4_mask_size }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .cni.ipv6_support }}
|
{{- if .cni.ipv6_support }}
|
||||||
clusterPoolIPv6PodCIDRList:
|
clusterPoolIPv6PodCIDRList:
|
||||||
- {{ .cni.ipv6_pods_cidr }}
|
- {{ .cni.ipv6_pods_cidr }}
|
||||||
clusterPoolIPv6MaskSize: {{ .cni.ipv6_block_size }}
|
clusterPoolIPv6MaskSize: {{ .cni.ipv6_mask_size }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if not (.kubernetes.kube_proxy.enabled | default true) }}
|
{{- if not (.kubernetes.kube_proxy.enabled | default true) }}
|
||||||
kubeProxyReplacement: "true"
|
kubeProxyReplacement: "true"
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
---
|
||||||
|
- name: Cilium | Ensure the cilium Helm chart archive is available
|
||||||
|
copy:
|
||||||
|
src: >-
|
||||||
|
{{ .binary_dir }}/cni/cilium/cilium-{{ .cni.cilium_version }}.tgz
|
||||||
|
dest: >-
|
||||||
|
/etc/kubernetes/cni/cilium-{{ .cni.cilium_version }}.tgz
|
||||||
|
|
||||||
|
- name: Cilium | Create the cilium Helm custom values file
|
||||||
|
copy:
|
||||||
|
content: |
|
||||||
|
{{ .cni.cilium.values }}
|
||||||
|
dest: /etc/kubernetes/cni/cilium-values.yaml
|
||||||
|
|
||||||
|
# See: https://docs.cilium.io/en/stable/installation/k8s-install-helm/
|
||||||
|
- name: Cilium | Deploy cilium with Helm
|
||||||
|
command: |
|
||||||
|
helm upgrade --install --namespace kube-system cilium /etc/kubernetes/cni/cilium-{{ .cni.cilium_version }}.tgz -f /etc/kubernetes/cni/cilium-values.yaml
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
cni:
|
||||||
|
# In Kubernetes, Pod CIDR supports IPv4, IPv6, and dual-stack. Specify as:
|
||||||
|
# "Single-stack IPv4": pod_cidr in "ipv4" format
|
||||||
|
# "Single-stack IPv6": pod_cidr in "ipv6" format
|
||||||
|
# "Dual-stack": pod_cidr in "ipv4,ipv6" format
|
||||||
|
ipv4_support: >-
|
||||||
|
{{ eq (.cni.pod_cidr | splitList "," | first | ipFamily) "IPv4" }}
|
||||||
|
ipv4_pods_cidr: >-
|
||||||
|
{{- if eq (.cni.pod_cidr | splitList "," | first | ipFamily) "IPv4" -}}
|
||||||
|
{{ .cni.pod_cidr | splitList "," | first }}
|
||||||
|
{{- end -}}
|
||||||
|
ipv6_support: >-
|
||||||
|
{{- eq (.cni.pod_cidr | default "10.233.64.0/18" | splitList "," | last | ipFamily) "IPv6" }}
|
||||||
|
ipv6_pods_cidr: >-
|
||||||
|
{{- if eq (.cni.pod_cidr | default "10.233.64.0/18" | splitList "," | last | ipFamily) "IPv6" -}}
|
||||||
|
{{ .cni.pod_cidr | default "10.233.64.0/18" | splitList "," | last }}
|
||||||
|
{{- end -}}
|
||||||
|
|
@ -7,8 +7,8 @@ cni:
|
||||||
podCidrv6: {{ .cni.ipv6_pod_cidr }}
|
podCidrv6: {{ .cni.ipv6_pod_cidr }}
|
||||||
flannel:
|
flannel:
|
||||||
image:
|
image:
|
||||||
repository: {{ .dockerio_registry }}/flannel/flannel
|
repository: {{ .image_registry.dockerio_registry }}/flannel/flannel
|
||||||
image_cni:
|
image_cni:
|
||||||
repository: {{ .dockerio_registry }}/flannel/flannel-cni-plugin
|
repository: {{ .image_registry.dockerio_registry }}/flannel/flannel-cni-plugin
|
||||||
# support "vxlan" and "host-gw"
|
# support "vxlan" and "host-gw"
|
||||||
backend: vxlan
|
backend: vxlan
|
||||||
|
|
@ -3,4 +3,4 @@ cni:
|
||||||
values: |
|
values: |
|
||||||
# hybridnet helm values
|
# hybridnet helm values
|
||||||
images:
|
images:
|
||||||
registryURL: {{ .dockerio_registry }}
|
registryURL: {{ .image_registry.dockerio_registry }}
|
||||||
|
|
@ -2,9 +2,9 @@
|
||||||
- name: Hybridnet | Synchronize Hybridnet Helm chart package to remote node
|
- name: Hybridnet | Synchronize Hybridnet Helm chart package to remote node
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/cni/hybridnet-{{ .hybridnet_version }}.tgz
|
{{ .binary_dir }}/cni/hybridnet-{{ .cni.hybridnet_version }}.tgz
|
||||||
dest: >-
|
dest: >-
|
||||||
/etc/kubernetes/cni/hybridnet-{{ .hybridnet_version }}.tgz
|
/etc/kubernetes/cni/hybridnet-{{ .cni.hybridnet_version }}.tgz
|
||||||
|
|
||||||
- name: Hybridnet | Generate Hybridnet custom values file
|
- name: Hybridnet | Generate Hybridnet custom values file
|
||||||
copy:
|
copy:
|
||||||
|
|
@ -15,4 +15,4 @@
|
||||||
# Reference: https://artifacthub.io/packages/helm/hybridnet/hybridnet
|
# Reference: https://artifacthub.io/packages/helm/hybridnet/hybridnet
|
||||||
- name: Hybridnet | Install Hybridnet using Helm
|
- name: Hybridnet | Install Hybridnet using Helm
|
||||||
command: |
|
command: |
|
||||||
helm upgrade --install --namespace kube-system hybridnet /etc/kubernetes/cni/hybridnet-{{ .hybridnet_version }}.tgz -f /etc/kubernetes/cni/hybridnet-values.yaml
|
helm upgrade --install --namespace kube-system hybridnet /etc/kubernetes/cni/hybridnet-{{ .cni.hybridnet_version }}.tgz -f /etc/kubernetes/cni/hybridnet-values.yaml
|
||||||
|
|
@ -4,7 +4,7 @@ cni:
|
||||||
# kube-ovn helm values
|
# kube-ovn helm values
|
||||||
global:
|
global:
|
||||||
registry:
|
registry:
|
||||||
address: {{ .dockerio_registry }}/kubeovn
|
address: {{ .image_registry.dockerio_registry }}/kubeovn
|
||||||
{{- $ips := list }}
|
{{- $ips := list }}
|
||||||
{{- range .groups.kube_control_plane | default list }}
|
{{- range .groups.kube_control_plane | default list }}
|
||||||
{{- $internalIPv4 := index $.hostvars . "internal_ipv4" | default "" }}
|
{{- $internalIPv4 := index $.hostvars . "internal_ipv4" | default "" }}
|
||||||
|
|
@ -21,13 +21,13 @@ cni:
|
||||||
{{- if and .cni.ipv4_support (not .cni.ipv6_support) }}
|
{{- if and .cni.ipv4_support (not .cni.ipv6_support) }}
|
||||||
ipv4:
|
ipv4:
|
||||||
POD_CIDR: {{ .cni.ipv4_pods_cidr }}
|
POD_CIDR: {{ .cni.ipv4_pods_cidr }}
|
||||||
SVC_CIDR: {{ .cni.kube_svc_cidr }}
|
SVC_CIDR: {{ .cni.service_cidr }}
|
||||||
{{ else if and .cni.ipv6_support (not .cni.ipv4_support) }}
|
{{ else if and .cni.ipv6_support (not .cni.ipv4_support) }}
|
||||||
ipv6:
|
ipv6:
|
||||||
POD_CIDR: {{ .cni.ipv6_pods_cidr }}
|
POD_CIDR: {{ .cni.ipv6_pods_cidr }}
|
||||||
SVC_CIDR: {{ .cni.kube_svc_cidr }}
|
SVC_CIDR: {{ .cni.service_cidr }}
|
||||||
{{ else if and .cni.ipv4_support .cni.ipv6_support }}
|
{{ else if and .cni.ipv4_support .cni.ipv6_support }}
|
||||||
dual_stack:
|
dual_stack:
|
||||||
POD_CIDR: {{ .cni.ipv4_pods_cidr }},{{ .cni.ipv6_pods_cidr }}
|
POD_CIDR: {{ .cni.ipv4_pods_cidr }},{{ .cni.ipv6_pods_cidr }}
|
||||||
SVC_CIDR: {{ .cni.kube_svc_cidr }}
|
SVC_CIDR: {{ .cni.service_cidr }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
@ -2,9 +2,9 @@
|
||||||
- name: Kubeovn | Synchronize Kube-OVN Helm chart package to remote node
|
- name: Kubeovn | Synchronize Kube-OVN Helm chart package to remote node
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/cni/kubeovn/kubeovn-{{ .kubeovn_version }}.tgz
|
{{ .binary_dir }}/cni/kubeovn/kubeovn-{{ .cni.kubeovn_version }}.tgz
|
||||||
dest: >-
|
dest: >-
|
||||||
/etc/kubernetes/cni/kubeovn-{{ .kubeovn_version }}.tgz
|
/etc/kubernetes/cni/kubeovn-{{ .cni.kubeovn_version }}.tgz
|
||||||
|
|
||||||
- name: Kubeovn | Generate Kube-OVN custom values file
|
- name: Kubeovn | Generate Kube-OVN custom values file
|
||||||
copy:
|
copy:
|
||||||
|
|
@ -19,9 +19,9 @@
|
||||||
|
|
||||||
- name: Kubeovn | Install Kube-OVN using Helm with custom values
|
- name: Kubeovn | Install Kube-OVN using Helm with custom values
|
||||||
command: |
|
command: |
|
||||||
helm upgrade --install --namespace kubeovn-system kubeovn /etc/kubernetes/cni/kubeovn-{{ .kubeovn_version }}.tgz -f /etc/kubernetes/cni/kubeovn-values.yaml
|
helm upgrade --install --namespace kubeovn-system kubeovn /etc/kubernetes/cni/kubeovn-{{ .cni.kubeovn_version }}.tgz -f /etc/kubernetes/cni/kubeovn-values.yaml
|
||||||
|
|
||||||
# Reference: https://kubeovn.github.io/docs/stable/start/one-step-install/#helm-chart
|
# Reference: https://kubeovn.github.io/docs/stable/start/one-step-install/#helm-chart
|
||||||
- name: Kubeovn | Install Kube-OVN using Helm
|
- name: Kubeovn | Install Kube-OVN using Helm
|
||||||
command: |
|
command: |
|
||||||
helm upgrade --install --namespace kubeovn-system kubeovn /etc/kubernetes/cni/kubeovn-{{ .kubeovn_version }}.tgz
|
helm upgrade --install --namespace kubeovn-system kubeovn /etc/kubernetes/cni/kubeovn-{{ .cni.kubeovn_version }}.tgz
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
---
|
||||||
|
dependencies:
|
||||||
|
- role: cni/multus
|
||||||
|
when: .cni.multus.enabled
|
||||||
|
|
||||||
|
- role: cni/calico
|
||||||
|
when: .cni.type | eq "calico"
|
||||||
|
|
||||||
|
- role: cni/cilium
|
||||||
|
when: .cni.type | eq "cilium"
|
||||||
|
|
||||||
|
- role: cni/flannel
|
||||||
|
when: .cni.type | eq "flannel"
|
||||||
|
|
||||||
|
- role: cni/kubeovn
|
||||||
|
when: .cni.type | eq "kubeovn"
|
||||||
|
|
||||||
|
- role: cni/hybridnet
|
||||||
|
when: .cni.type | eq "hybridnet"
|
||||||
|
|
@ -5,10 +5,10 @@
|
||||||
register: runc_install_version
|
register: runc_install_version
|
||||||
|
|
||||||
- name: Containerd | Ensure the runc binary is present on the remote node
|
- name: Containerd | Ensure the runc binary is present on the remote node
|
||||||
when: or (.runc_install_version.error | empty | not) (.runc_install_version.stdout | contains (printf "runc version %s\n" (.runc_version | default "" | trimPrefix "v" )) | not)
|
when: or (.runc_install_version.error | empty | not) (.runc_install_version.stdout | contains (printf "runc version %s\n" (.cri.runc_version | default "" | trimPrefix "v" )) | not)
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/runc/{{ .runc_version }}/{{ .binary_type }}/runc.{{ .binary_type }}
|
{{ .binary_dir }}/runc/{{ .cri.runc_version }}/{{ .binary_type }}/runc.{{ .binary_type }}
|
||||||
dest: /usr/local/bin/runc
|
dest: /usr/local/bin/runc
|
||||||
mode: 0755
|
mode: 0755
|
||||||
|
|
||||||
|
|
@ -18,17 +18,17 @@
|
||||||
register: containerd_install_version
|
register: containerd_install_version
|
||||||
|
|
||||||
- name: Containerd | Install and configure containerd if not present or version mismatch
|
- name: Containerd | Install and configure containerd if not present or version mismatch
|
||||||
when: or (.containerd_install_version.error | empty | not) (.containerd_install_version.stdout | contains (printf " %s " .containerd_version) | not)
|
when: or (.containerd_install_version.error | empty | not) (.containerd_install_version.stdout | contains (printf " %s " .cri.containerd_version) | not)
|
||||||
block:
|
block:
|
||||||
- name: Containerd | Copy containerd binary archive to the remote node
|
- name: Containerd | Copy containerd binary archive to the remote node
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/containerd/{{ .containerd_version }}/{{ .binary_type }}/containerd-{{ .containerd_version | default "" | trimPrefix "v" }}-linux-{{ .binary_type }}.tar.gz
|
{{ .binary_dir }}/containerd/{{ .cri.containerd_version }}/{{ .binary_type }}/containerd-{{ .cri.containerd_version | default "" | trimPrefix "v" }}-linux-{{ .binary_type }}.tar.gz
|
||||||
dest: >-
|
dest: >-
|
||||||
{{ .tmp_dir }}/containerd-{{ .containerd_version | default "" | trimPrefix "v" }}-linux-{{ .binary_type }}.tar.gz
|
{{ .tmp_dir }}/containerd-{{ .cri.containerd_version | default "" | trimPrefix "v" }}-linux-{{ .binary_type }}.tar.gz
|
||||||
- name: Containerd | Extract containerd binaries to /usr/local/bin
|
- name: Containerd | Extract containerd binaries to /usr/local/bin
|
||||||
command: |
|
command: |
|
||||||
tar -xvf {{ .tmp_dir }}/containerd-{{ .containerd_version | default "" | trimPrefix "v" }}-linux-{{ .binary_type }}.tar.gz --strip-components=1 -C /usr/local/bin/
|
tar -xvf {{ .tmp_dir }}/containerd-{{ .cri.containerd_version | default "" | trimPrefix "v" }}-linux-{{ .binary_type }}.tar.gz --strip-components=1 -C /usr/local/bin/
|
||||||
- name: Containerd | Generate the containerd configuration file
|
- name: Containerd | Generate the containerd configuration file
|
||||||
template:
|
template:
|
||||||
src: config.toml
|
src: config.toml
|
||||||
|
|
@ -42,23 +42,25 @@
|
||||||
systemctl daemon-reload && systemctl start containerd.service && systemctl enable containerd.service
|
systemctl daemon-reload && systemctl start containerd.service && systemctl enable containerd.service
|
||||||
|
|
||||||
- name: Containerd | Synchronize image registry TLS certificates to the remote node
|
- name: Containerd | Synchronize image registry TLS certificates to the remote node
|
||||||
when: .groups.image_registry | default list | empty | not
|
|
||||||
block:
|
block:
|
||||||
- name: Containerd | Copy image registry CA certificate to the remote node
|
- name: Containerd | Copy image registry CA certificate to the remote node
|
||||||
|
when: .image_registry.auth.ca_file | empty | not
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/pki/root.crt
|
{{ .image_registry.auth.ca_file }}
|
||||||
dest: >-
|
dest: >-
|
||||||
/etc/containerd/certs.d/{{ .image_registry.auth.registry }}/ca.crt
|
/etc/containerd/certs.d/{{ .image_registry.auth.registry }}/ca.crt
|
||||||
- name: Containerd | Copy image registry server certificate to the remote node
|
- name: Containerd | Copy image registry server certificate to the remote node
|
||||||
|
when: .image_registry.auth.cert_file | empty | not
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/pki/image_registry.crt
|
{{ .image_registry.auth.cert_file }}
|
||||||
dest: >-
|
dest: >-
|
||||||
/etc/containerd/certs.d/{{ .image_registry.auth.registry }}/server.crt
|
/etc/containerd/certs.d/{{ .image_registry.auth.registry }}/server.crt
|
||||||
- name: Containerd | Copy image registry server key to the remote node
|
- name: Containerd | Copy image registry server key to the remote node
|
||||||
|
when: .image_registry.auth.key_file | empty | not
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/pki/image_registry.key
|
{{ .image_registry.auth.key_file }}
|
||||||
dest: >-
|
dest: >-
|
||||||
/etc/containerd/certs.d/{{ .image_registry.auth.registry }}/server.key
|
/etc/containerd/certs.d/{{ .image_registry.auth.registry }}/server.key
|
||||||
|
|
@ -63,19 +63,23 @@ state = "/run/containerd"
|
||||||
username = "{{ .image_registry.auth.username }}"
|
username = "{{ .image_registry.auth.username }}"
|
||||||
password = "{{ .image_registry.auth.password }}"
|
password = "{{ .image_registry.auth.password }}"
|
||||||
[plugins."io.containerd.grpc.v1.cri".registry.configs."{{ .image_registry.auth.registry }}".tls]
|
[plugins."io.containerd.grpc.v1.cri".registry.configs."{{ .image_registry.auth.registry }}".tls]
|
||||||
{{- if .groups.image_registry | default list | empty | not }}ecure_skip_verify = true
|
{{- if .image_registry.auth.ca_file | empty | not }}
|
||||||
ca_file = "/etc/containerd/certs.d/{{ .image_registry.auth.registry }}/ca.crt"
|
ca_file = "/etc/containerd/certs.d/{{ .image_registry.auth.registry }}/ca.crt"
|
||||||
|
{{- end }}
|
||||||
|
{{- if .image_registry.auth.cert_file | empty | not }}
|
||||||
cert_file = "/etc/containerd/certs.d/{{ .image_registry.auth.registry }}/server.crt"
|
cert_file = "/etc/containerd/certs.d/{{ .image_registry.auth.registry }}/server.crt"
|
||||||
|
{{- end }}
|
||||||
|
{{- if .image_registry.auth.key_file | empty | not }}
|
||||||
key_file = "/etc/containerd/certs.d/{{ .image_registry.auth.registry }}/server.key"
|
key_file = "/etc/containerd/certs.d/{{ .image_registry.auth.registry }}/server.key"
|
||||||
{{- end }}
|
{{- end }}
|
||||||
insecure_skip_verify = {{ .image_registry.auth.skip_ssl | default true }}
|
insecure_skip_verify = {{ .image_registry.auth.insecure | default true }}
|
||||||
{{- if .cri.registry.auths | empty | not }}
|
{{- if .cri.registry.auths | empty | not }}
|
||||||
{{- range .cri.registry.auths }}
|
{{- range .cri.registry.auths }}
|
||||||
[plugins."io.containerd.grpc.v1.cri".registry.configs."{{ .repo }}".auth]
|
[plugins."io.containerd.grpc.v1.cri".registry.configs."{{ .repo }}".auth]
|
||||||
username = "{{ .username }}"
|
username = "{{ .username }}"
|
||||||
password = "{{ .password }}"
|
password = "{{ .password }}"
|
||||||
[plugins."io.containerd.grpc.v1.cri".registry.configs."{{ .repo }}".tls]
|
[plugins."io.containerd.grpc.v1.cri".registry.configs."{{ .repo }}".tls]
|
||||||
{{- if.ca_file }}
|
{{- if .ca_file }}
|
||||||
ca_file = {{ .ca_file }}
|
ca_file = {{ .ca_file }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .crt_file }}
|
{{- if .crt_file }}
|
||||||
|
|
@ -84,6 +88,6 @@ state = "/run/containerd"
|
||||||
{{- if .key_file }}
|
{{- if .key_file }}
|
||||||
key_file = {{ .key_file }}
|
key_file = {{ .key_file }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
insecure_skip_verify = {{ .skip_ssl | default true }}
|
insecure_skip_verify = {{ .insecure | default true }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
@ -5,17 +5,17 @@
|
||||||
register: crictl_install_version
|
register: crictl_install_version
|
||||||
|
|
||||||
- name: Crictl | Install and configure crictl if not present or version mismatch
|
- name: Crictl | Install and configure crictl if not present or version mismatch
|
||||||
when: or (.crictl_install_version.error | empty | not) (.crictl_install_version.stdout | ne (printf "crictl version %s" .crictl_version))
|
when: or (.crictl_install_version.error | empty | not) (.crictl_install_version.stdout | ne (printf "crictl version %s" .cri.crictl_version))
|
||||||
block:
|
block:
|
||||||
- name: Crictl | Copy crictl binary archive to the remote node
|
- name: Crictl | Copy crictl binary archive to the remote node
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/crictl/{{ .crictl_version }}/{{ .binary_type }}/crictl-{{ .crictl_version }}-linux-{{ .binary_type }}.tar.gz
|
{{ .binary_dir }}/crictl/{{ .cri.crictl_version }}/{{ .binary_type }}/crictl-{{ .cri.crictl_version }}-linux-{{ .binary_type }}.tar.gz
|
||||||
dest: >-
|
dest: >-
|
||||||
{{ .tmp_dir }}/crictl-{{ .crictl_version }}-linux-{{ .binary_type }}.tar.gz
|
{{ .tmp_dir }}/crictl-{{ .cri.crictl_version }}-linux-{{ .binary_type }}.tar.gz
|
||||||
- name: Crictl | Extract crictl binary to /usr/local/bin
|
- name: Crictl | Extract crictl binary to /usr/local/bin
|
||||||
command: |
|
command: |
|
||||||
tar -xvf {{ .tmp_dir }}/crictl-{{ .crictl_version }}-linux-{{ .binary_type }}.tar.gz -C /usr/local/bin/
|
tar -xvf {{ .tmp_dir }}/crictl-{{ .cri.crictl_version }}-linux-{{ .binary_type }}.tar.gz -C /usr/local/bin/
|
||||||
- name: Crictl | Generate crictl configuration file
|
- name: Crictl | Generate crictl configuration file
|
||||||
template:
|
template:
|
||||||
src: crictl.yaml
|
src: crictl.yaml
|
||||||
|
|
@ -5,17 +5,17 @@
|
||||||
register: cridockerd_install_version
|
register: cridockerd_install_version
|
||||||
|
|
||||||
- name: Cridockerd | Install and configure cri-dockerd if not present or version mismatch
|
- name: Cridockerd | Install and configure cri-dockerd if not present or version mismatch
|
||||||
when: or (.cridockerd_install_version.error | empty | not) (.cridockerd_install_version.stdout | hasPrefix (printf "cri-dockerd %s " .cridockerd_version) | not)
|
when: or (.cridockerd_install_version.error | empty | not) (.cridockerd_install_version.stdout | hasPrefix (printf "cri-dockerd %s " .cri.cridockerd_version) | not)
|
||||||
block:
|
block:
|
||||||
- name: Cridockerd | Copy cri-dockerd binary archive to the remote node
|
- name: Cridockerd | Copy cri-dockerd binary archive to the remote node
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/cri-dockerd/{{ .cridockerd_version }}/{{ .binary_type }}/cri-dockerd-{{ .cridockerd_version | default "" | trimPrefix "v" }}.{{ .binary_type }}.tgz
|
{{ .binary_dir }}/cri-dockerd/{{ .cri.cridockerd_version }}/{{ .binary_type }}/cri-dockerd-{{ .cri.cridockerd_version | default "" | trimPrefix "v" }}.{{ .binary_type }}.tgz
|
||||||
dest: >-
|
dest: >-
|
||||||
{{ .tmp_dir }}/cri-dockerd-{{ .cridockerd_version | default "" | trimPrefix "v" }}.{{ .binary_type }}.tgz
|
{{ .tmp_dir }}/cri-dockerd-{{ .cri.cridockerd_version | default "" | trimPrefix "v" }}.{{ .binary_type }}.tgz
|
||||||
- name: Cridockerd | Extract cri-dockerd binary to /usr/local/bin
|
- name: Cridockerd | Extract cri-dockerd binary to /usr/local/bin
|
||||||
command: |
|
command: |
|
||||||
tar -xvf {{ .tmp_dir }}/cri-dockerd-{{ .cridockerd_version | default "" | trimPrefix "v" }}.{{ .binary_type }}.tgz --strip-components=1 -C /usr/local/bin/
|
tar -xvf {{ .tmp_dir }}/cri-dockerd-{{ .cri.cridockerd_version | default "" | trimPrefix "v" }}.{{ .binary_type }}.tgz --strip-components=1 -C /usr/local/bin/
|
||||||
- name: Cridockerd | Generate cri-dockerd systemd service file
|
- name: Cridockerd | Generate cri-dockerd systemd service file
|
||||||
template:
|
template:
|
||||||
src: cri-dockerd.service
|
src: cri-dockerd.service
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
# Docker | Install cri-dockerd if required for Kubernetes >= v1.24.0
|
# Docker | Install cri-dockerd if required for Kubernetes >= v1.24.0
|
||||||
- include_tasks: cridockerd.yaml
|
- include_tasks: cridockerd.yaml
|
||||||
when:
|
when:
|
||||||
- .kube_version | semverCompare ">=v1.24.0"
|
- .kubernetes.kube_version | semverCompare ">=v1.24.0"
|
||||||
|
|
||||||
- name: Docker | Check if Docker is installed on the system
|
- name: Docker | Check if Docker is installed on the system
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
@ -10,17 +10,17 @@
|
||||||
register: docker_install_version
|
register: docker_install_version
|
||||||
|
|
||||||
- name: Docker | Install and configure Docker if not present or version mismatch
|
- name: Docker | Install and configure Docker if not present or version mismatch
|
||||||
when: or (.docker_install_version.error | empty | not) (.docker_install_version.stdout | hasPrefix (printf "Docker version %s," .docker_version) | not)
|
when: or (.docker_install_version.error | empty | not) (.docker_install_version.stdout | hasPrefix (printf "Docker version %s," .cri.docker_version) | not)
|
||||||
block:
|
block:
|
||||||
- name: Docker | Copy Docker binary archive to the remote node
|
- name: Docker | Copy Docker binary archive to the remote node
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/docker/{{ .docker_version }}/{{ .binary_type }}/docker-{{ .docker_version }}.tgz
|
{{ .binary_dir }}/docker/{{ .cri.docker_version }}/{{ .binary_type }}/docker-{{ .cri.docker_version }}.tgz
|
||||||
dest: >-
|
dest: >-
|
||||||
{{ .tmp_dir }}/docker-{{ .docker_version }}.tgz
|
{{ .tmp_dir }}/docker-{{ .cri.docker_version }}.tgz
|
||||||
- name: Docker | Extract Docker binaries to /usr/local/bin
|
- name: Docker | Extract Docker binaries to /usr/local/bin
|
||||||
command: |
|
command: |
|
||||||
tar -C /usr/local/bin/ --strip-components=1 -xvf {{ .tmp_dir }}/docker-{{ .docker_version }}.tgz --wildcards docker/*
|
tar -C /usr/local/bin/ --strip-components=1 -xvf {{ .tmp_dir }}/docker-{{ .cri.docker_version }}.tgz --wildcards 'docker/*'
|
||||||
- name: Docker | Generate Docker configuration file
|
- name: Docker | Generate Docker configuration file
|
||||||
template:
|
template:
|
||||||
src: daemon.json
|
src: daemon.json
|
||||||
|
|
@ -39,23 +39,25 @@
|
||||||
systemctl daemon-reload && systemctl start docker.service && systemctl enable docker.service
|
systemctl daemon-reload && systemctl start docker.service && systemctl enable docker.service
|
||||||
|
|
||||||
- name: Docker | Synchronize image registry TLS certificates to the remote node
|
- name: Docker | Synchronize image registry TLS certificates to the remote node
|
||||||
when: .groups.image_registry | default list | empty | not
|
|
||||||
block:
|
block:
|
||||||
- name: Docker | Copy image registry CA certificate to the remote node
|
- name: Docker | Copy image registry CA certificate to the remote node
|
||||||
|
when: .image_registry.auth.ca_file | empty | not
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/pki/root.crt
|
{{ .image_registry.auth.ca_file }}
|
||||||
dest: >-
|
dest: >-
|
||||||
/etc/docker/certs.d/{{ .image_registry.auth.registry }}/ca.crt
|
/etc/docker/certs.d/{{ .image_registry.auth.registry }}/ca.crt
|
||||||
- name: Docker | Copy image registry client certificate to the remote node
|
- name: Docker | Copy image registry server certificate to the remote node
|
||||||
|
when: .image_registry.auth.cert_file | empty | not
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/pki/image_registry.crt
|
{{ .image_registry.auth.cert_file }}
|
||||||
dest: >-
|
dest: >-
|
||||||
/etc/docker/certs.d/{{ .image_registry.auth.registry }}/client.cert
|
/etc/docker/certs.d/{{ .image_registry.auth.registry }}/client.cert
|
||||||
- name: Docker | Copy image registry client key to the remote node
|
- name: Docker | Copy image registry server key to the remote node
|
||||||
|
when: .image_registry.auth.key_file | empty | not
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/pki/image_registry.key
|
{{ .image_registry.auth.key_file }}
|
||||||
dest: >-
|
dest: >-
|
||||||
/etc/docker/certs.d/{{ .image_registry.auth.registry }}/client.key
|
/etc/docker/certs.d/{{ .image_registry.auth.registry }}/client.key
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
"registry-mirrors": {{ .cri.registry.mirrors | toJson }},
|
"registry-mirrors": {{ .cri.registry.mirrors | toJson }},
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- $insecure_registries := .cri.registry.insecure_registries | default list -}}
|
{{- $insecure_registries := .cri.registry.insecure_registries | default list -}}
|
||||||
{{- if .image_registry.auth.skip_ssl -}}
|
{{- if .image_registry.auth.insecure -}}
|
||||||
{{- $insecure_registries = append $insecure_registries .image_registry.auth.registry -}}
|
{{- $insecure_registries = append $insecure_registries .image_registry.auth.registry -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
"insecure-registries": {{ $insecure_registries | toJson }},
|
"insecure-registries": {{ $insecure_registries | toJson }},
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
dependencies:
|
||||||
|
- role: cri/crictl
|
||||||
|
|
||||||
|
- role: cri/docker
|
||||||
|
when: .cri.container_manager | eq "docker"
|
||||||
|
|
||||||
|
- role: cri/containerd
|
||||||
|
when: .cri.container_manager | eq "containerd"
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
# Cluster parameter boundaries
|
||||||
|
cluster_require:
|
||||||
|
# Maximum etcd WAL fsync duration for 99th percentile (in nanoseconds)
|
||||||
|
etcd_disk_wal_fysnc_duration_seconds: 10000000
|
||||||
|
# Allow installation on unsupported Linux distributions
|
||||||
|
allow_unsupported_distribution_setup: false
|
||||||
|
# Supported operating system distributions
|
||||||
|
supported_os_distributions:
|
||||||
|
- ubuntu
|
||||||
|
- '"ubuntu"'
|
||||||
|
- centos
|
||||||
|
- '"centos"'
|
||||||
|
# Required network plugins
|
||||||
|
require_network_plugin: ['calico', 'flannel', 'cilium', 'hybridnet', 'kube-ovn']
|
||||||
|
# Minimum supported Kubernetes version
|
||||||
|
kube_version_min_required: v1.23.0
|
||||||
|
# Minimum memory (in MB) required for each control plane node
|
||||||
|
# Must be greater than or equal to minimal_master_memory_mb
|
||||||
|
minimal_master_memory_mb: 10
|
||||||
|
# Minimum memory (in MB) required for each worker node
|
||||||
|
# Must be greater than or equal to minimal_node_memory_mb
|
||||||
|
minimal_node_memory_mb: 10
|
||||||
|
# Supported etcd deployment types
|
||||||
|
require_etcd_deployment_type: ['internal', 'external']
|
||||||
|
# Supported container runtimes
|
||||||
|
require_container_manager: ['docker', 'containerd']
|
||||||
|
# Minimum required version of containerd
|
||||||
|
containerd_min_version_required: v1.6.0
|
||||||
|
# Supported CPU architectures
|
||||||
|
supported_architectures:
|
||||||
|
- amd64
|
||||||
|
- x86_64
|
||||||
|
- arm64
|
||||||
|
- aarch64
|
||||||
|
# Minimum required Linux kernel version
|
||||||
|
min_kernel_version: 4.9.17
|
||||||
|
|
@ -0,0 +1,39 @@
|
||||||
|
work_dir: /root/kubekey
|
||||||
|
binary_dir: >-
|
||||||
|
{{ .work_dir }}/kubekey
|
||||||
|
scripts_dir: >-
|
||||||
|
{{ .binary_dir }}/scripts
|
||||||
|
tmp_dir: /tmp/kubekey
|
||||||
|
|
||||||
|
# Mapping of common machine architecture names to their standard forms
|
||||||
|
transform_architectures:
|
||||||
|
amd64:
|
||||||
|
- amd64
|
||||||
|
- x86_64
|
||||||
|
arm64:
|
||||||
|
- arm64
|
||||||
|
- aarch64
|
||||||
|
|
||||||
|
|
||||||
|
# Enable enhanced security features for stricter cluster security requirements.
|
||||||
|
security_enhancement: false
|
||||||
|
|
||||||
|
# Enable Kubernetes audit logging.
|
||||||
|
# Audit logs record and track critical operations within the cluster, helping administrators monitor security events, troubleshoot issues, and meet compliance requirements (e.g., SOC2, ISO 27001).
|
||||||
|
audit: false
|
||||||
|
|
||||||
|
# When removing a node, also uninstall the node's container runtime (CRI), such as Docker or containerd.
|
||||||
|
deleteCRI: true
|
||||||
|
|
||||||
|
# When removing a node, also uninstall etcd from the node.
|
||||||
|
deleteETCD: true
|
||||||
|
|
||||||
|
# When removing a node, restore the node's DNS configuration.
|
||||||
|
deleteDNS: true
|
||||||
|
|
||||||
|
# When removing a node, also uninstall any private image registry (such as Harbor or registry) installed on the node.
|
||||||
|
# This is typically used in conjunction with nodes defined in inventory.groups.image_registry.
|
||||||
|
deleteImageRegistry: false
|
||||||
|
|
||||||
|
# image_manifests: List of container images to be synchronized to the private registry
|
||||||
|
image_manifests: []
|
||||||
|
|
@ -0,0 +1,49 @@
|
||||||
|
# Certificate generation configuration
|
||||||
|
# The following certificates will be generated:
|
||||||
|
# - etcd certificates
|
||||||
|
# - Kubernetes cluster certificates (replacing the CA certificate generated by kubeadm, which is limited to a 10-year validity)
|
||||||
|
# - Image registry certificates (for Harbor and similar registries)
|
||||||
|
|
||||||
|
# Certificate chain structure:
|
||||||
|
# CA (self-signed or provided)
|
||||||
|
# |- etcd.cert
|
||||||
|
# |- etcd.key
|
||||||
|
# |
|
||||||
|
# |- image_registry.cert
|
||||||
|
# |- image_registry.key
|
||||||
|
# |
|
||||||
|
# |- kubernetes.cert
|
||||||
|
# |- kubernetes.key
|
||||||
|
# | |- kubeadm uses this to generate server certificates (kube-apiserver certificate)
|
||||||
|
# |- front-proxy.cert
|
||||||
|
# |- front-proxy.key
|
||||||
|
# |
|
||||||
|
# |- image-registry.cert
|
||||||
|
# |- image-registry.key
|
||||||
|
|
||||||
|
certs:
|
||||||
|
# CA certificate settings
|
||||||
|
ca:
|
||||||
|
# CA certificate expiration time
|
||||||
|
date: 87600h
|
||||||
|
# Certificate generation policy:
|
||||||
|
# IfNotPresent: Validate the certificate if it exists; generate a self-signed certificate only if it does not exist
|
||||||
|
gen_cert_policy: IfNotPresent
|
||||||
|
kubernetes_ca:
|
||||||
|
date: 87600h
|
||||||
|
# How to generate the certificate file. Supported values: IfNotPresent, Always
|
||||||
|
gen_cert_policy: IfNotPresent
|
||||||
|
front_proxy_ca:
|
||||||
|
date: 87600h
|
||||||
|
# How to generate the certificate file. Supported values: IfNotPresent, Always
|
||||||
|
gen_cert_policy: IfNotPresent
|
||||||
|
# etcd certificate
|
||||||
|
etcd:
|
||||||
|
date: 87600h
|
||||||
|
# How to generate the certificate file. Supported values: IfNotPresent, Always
|
||||||
|
gen_cert_policy: IfNotPresent
|
||||||
|
# image_registry certificate
|
||||||
|
image_registry:
|
||||||
|
date: 87600h
|
||||||
|
# How to generate the certificate file. Supported values: IfNotPresent, Always
|
||||||
|
gen_cert_policy: IfNotPresent
|
||||||
|
|
@ -0,0 +1,79 @@
|
||||||
|
# In an online environment (when image_registry.auth.registry is empty), images are pulled directly from their original registries to the cluster.
|
||||||
|
# In an offline environment (when image_registry.auth.registry is set), images are first pulled from the source registry, cached locally, pushed to a private registry (such as Harbor), and then used by the cluster.
|
||||||
|
|
||||||
|
image_registry:
|
||||||
|
# Specify which image registry to install. Supported values: harbor, docker-registry
|
||||||
|
# If left empty, no image registry will be installed (assumes an existing registry is already available).
|
||||||
|
type: ""
|
||||||
|
ha_vip: ""
|
||||||
|
# Directory where images to be pushed to the registry are stored.
|
||||||
|
# Path for storing offline images
|
||||||
|
images_dir: >-
|
||||||
|
{{ .tmp_dir }}/images/
|
||||||
|
# Image registry authentication settings
|
||||||
|
auth:
|
||||||
|
registry: >-
|
||||||
|
{{- if .image_registry.type | empty | not }}
|
||||||
|
{{- if .image_registry.ha_vip | empty | not -}}
|
||||||
|
{{ .image_registry.ha_vip }}
|
||||||
|
{{- else if .groups.image_registry | default list | empty | not -}}
|
||||||
|
{{- $internalIPv4 := index .hostvars (.groups.image_registry | default list | first) "internal_ipv4" | default "" -}}
|
||||||
|
{{- $internalIPv6 := index .hostvars (.groups.image_registry | default list | first) "internal_ipv6" | default "" -}}
|
||||||
|
{{- if $internalIPv4 | empty | not -}}
|
||||||
|
{{ $internalIPv4 }}
|
||||||
|
{{- else if $internalIPv6 | empty | not -}}
|
||||||
|
{{ $internalIPv6 }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
username: admin
|
||||||
|
password: Harbor12345
|
||||||
|
insecure: >-
|
||||||
|
{{- if .image_registry.type | empty -}}
|
||||||
|
true
|
||||||
|
{{- end -}}
|
||||||
|
ca_file: >-
|
||||||
|
{{- if .image_registry.type | empty | not -}}
|
||||||
|
{{ .binary_dir }}/pki/root.crt
|
||||||
|
{{- end -}}
|
||||||
|
cert_file: >-
|
||||||
|
{{- if .image_registry.type | empty | not -}}
|
||||||
|
{{ .binary_dir }}/pki/image_registry.crt
|
||||||
|
{{- end -}}
|
||||||
|
key_file: >-
|
||||||
|
{{- if .image_registry.type | empty | not -}}
|
||||||
|
{{ .binary_dir }}/pki/image_registry.key
|
||||||
|
{{- end -}}
|
||||||
|
# Registry endpoint for images from docker.io
|
||||||
|
dockerio_registry: >-
|
||||||
|
{{- if .image_registry.auth.registry | empty | not -}}
|
||||||
|
{{ .image_registry.auth.registry }}
|
||||||
|
{{- else -}}
|
||||||
|
docker.io
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
# Registry endpoint for images from quay.io
|
||||||
|
quayio_registry: >-
|
||||||
|
{{- if .image_registry.auth.registry | empty | not -}}
|
||||||
|
{{ .image_registry.auth.registry }}
|
||||||
|
{{- else -}}
|
||||||
|
quay.io
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
# Registry endpoint for images from ghcr.io
|
||||||
|
ghcrio_registry: >-
|
||||||
|
{{- if .image_registry.auth.registry | empty | not -}}
|
||||||
|
{{ .image_registry.auth.registry }}
|
||||||
|
{{- else -}}
|
||||||
|
ghcr.io
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
# ========== image registry ==========
|
||||||
|
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
||||||
|
keepalived_version: 2.0.20
|
||||||
|
# ========== image registry: harbor ==========
|
||||||
|
# harbor image tag
|
||||||
|
harbor_version: v2.10.1
|
||||||
|
# ========== image registry: docker-registry ==========
|
||||||
|
# docker-registry image tag
|
||||||
|
docker_registry_version: 2.8.3
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
# Essential operating system configuration settings
|
||||||
|
native:
|
||||||
|
ntp:
|
||||||
|
# List of NTP servers used for system time synchronization
|
||||||
|
servers:
|
||||||
|
- "cn.pool.ntp.org"
|
||||||
|
# Toggle to enable or disable the NTP service
|
||||||
|
enabled: true
|
||||||
|
# System timezone configuration
|
||||||
|
timezone: Asia/Shanghai
|
||||||
|
|
||||||
|
# NFS service configuration for nodes assigned the 'nfs' role in the inventory
|
||||||
|
nfs:
|
||||||
|
# Directories to be shared via NFS
|
||||||
|
share_dir:
|
||||||
|
- /share/
|
||||||
|
# Whether to set the node's hostname to the value defined in inventory.hosts.
|
||||||
|
set_hostname: true
|
||||||
|
# List of DNS configuration files to update on each node.
|
||||||
|
# This ensures that, during cluster installation, critical hostnames can be resolved locally even if no DNS service is available.
|
||||||
|
# For example:
|
||||||
|
# [control_plane_endpoint of master node] -> master node IP
|
||||||
|
# [hostname of the node being installed] -> corresponding node IP
|
||||||
|
localDNS:
|
||||||
|
- /etc/hosts
|
||||||
|
|
@ -0,0 +1,116 @@
|
||||||
|
kubernetes:
|
||||||
|
# Name of the cluster to be installed
|
||||||
|
cluster_name: kubekey
|
||||||
|
|
||||||
|
# Kubernetes version to deploy
|
||||||
|
kube_version: v1.33.1
|
||||||
|
# helm binary
|
||||||
|
helm_version: v3.18.5
|
||||||
|
|
||||||
|
# Image repository for built-in Kubernetes images
|
||||||
|
image_repository: >-
|
||||||
|
{{ .image_registry.dockerio_registry }}/kubesphere
|
||||||
|
|
||||||
|
# Kubernetes network configuration
|
||||||
|
# kube-apiserver pod parameters
|
||||||
|
apiserver:
|
||||||
|
port: 6443
|
||||||
|
certSANs: []
|
||||||
|
extra_args:
|
||||||
|
# Example: feature-gates: ExpandCSIVolumes=true,CSIStorageCapacity=true,RotateKubeletServerCertificate=true
|
||||||
|
|
||||||
|
# kube-controller-manager pod parameters
|
||||||
|
controller_manager:
|
||||||
|
extra_args:
|
||||||
|
cluster-signing-duration: 87600h
|
||||||
|
# Example: feature-gates: ExpandCSIVolumes=true,CSIStorageCapacity=true,RotateKubeletServerCertificate=true
|
||||||
|
|
||||||
|
# kube-scheduler pod parameters
|
||||||
|
scheduler:
|
||||||
|
extra_args:
|
||||||
|
# Example: feature-gates: ExpandCSIVolumes=true,CSIStorageCapacity=true,RotateKubeletServerCertificate=true
|
||||||
|
|
||||||
|
# kube-proxy pod parameters
|
||||||
|
kube_proxy:
|
||||||
|
enabled: true
|
||||||
|
# Supported proxy modes: ipvs, iptables
|
||||||
|
mode: "ipvs"
|
||||||
|
config:
|
||||||
|
iptables:
|
||||||
|
masqueradeAll: false
|
||||||
|
masqueradeBit: 14
|
||||||
|
minSyncPeriod: 0s
|
||||||
|
syncPeriod: 30s
|
||||||
|
|
||||||
|
# kubelet service parameters
|
||||||
|
kubelet:
|
||||||
|
max_pod: 110
|
||||||
|
pod_pids_limit: 10000
|
||||||
|
# feature_gates:
|
||||||
|
container_log_max_size: 5Mi
|
||||||
|
container_log_max_files: 3
|
||||||
|
# extra_args:
|
||||||
|
|
||||||
|
# Specify a stable IP address or DNS name for the control plane endpoint.
|
||||||
|
# For high availability, it is recommended to set control_plane_endpoint to a DNS name.
|
||||||
|
# Configuration guidance:
|
||||||
|
# 1. If a DNS name is available:
|
||||||
|
# - Set control_plane_endpoint to that DNS name and ensure it resolves to all control plane node IPs.
|
||||||
|
# 2. If no DNS name is available:
|
||||||
|
# - You can set a DNS name now and add the resolution later.
|
||||||
|
# - Add the resolution to each node's local DNS file, for example:
|
||||||
|
# {{ vip }} {{ control_plane_endpoint }}
|
||||||
|
# - If you have a VIP (Virtual IP):
|
||||||
|
# Deploy kube-vip on control plane nodes to map the VIP to the actual node IPs.
|
||||||
|
# - If you do not have a VIP:
|
||||||
|
# Deploy HAProxy on worker nodes, use a fixed IP (such as 127.0.0.2) as the VIP, and forward to all control plane node IPs.
|
||||||
|
#
|
||||||
|
# For non-HA scenarios (manual configuration only, not automatically installed):
|
||||||
|
# You can set the VIP to the IP of a single control plane node.
|
||||||
|
control_plane_endpoint:
|
||||||
|
host: lb.kubesphere.local
|
||||||
|
port: "{{ .kubernetes.apiserver.port }}"
|
||||||
|
# Supported types: local, kube_vip, haproxy
|
||||||
|
# When type is local, configure as follows:
|
||||||
|
# - On control-plane nodes: 127.0.0.1 {{ .kubernetes.control_plane_endpoint.host }}
|
||||||
|
# - On worker nodes: {{ .init_kubernetes_node }} {{ .kubernetes.control_plane_endpoint.host }}
|
||||||
|
type: local
|
||||||
|
kube_vip:
|
||||||
|
# The IP address of the node's network interface (e.g., "eth0").
|
||||||
|
address: ""
|
||||||
|
# Supported modes: ARP, BGP
|
||||||
|
mode: ARP
|
||||||
|
image:
|
||||||
|
registry: >-
|
||||||
|
{{ .dockerio_registry }}
|
||||||
|
repository: plndr/kube-vip
|
||||||
|
tag: v0.7.2
|
||||||
|
haproxy:
|
||||||
|
# The IP address on the node's "lo" (loopback) interface.
|
||||||
|
address: 127.0.0.1
|
||||||
|
health_port: 8081
|
||||||
|
image:
|
||||||
|
registry: >-
|
||||||
|
{{ .dockerio_registry }}
|
||||||
|
repository: library/haproxy
|
||||||
|
tag: 2.9.6-alpine
|
||||||
|
|
||||||
|
# Whether to automatically renew Kubernetes certificates
|
||||||
|
certs:
|
||||||
|
# There are three ways to provide the Kubernetes CA (Certificate Authority) files:
|
||||||
|
# 1. kubeadm: Leave ca_cert and ca_key empty, and kubeadm will generate them automatically. These certificates are valid for 10 years and will not change.
|
||||||
|
# 2. kubekey: Set ca_cert to {{ .binary_dir }}/pki/ca.cert and ca_key to {{ .binary_dir }}/pki/ca.key.
|
||||||
|
# These certificates are generated by kubekey, valid for 10 years, and can be updated via `cert.ca_date`.
|
||||||
|
# 3. Custom: Manually specify the absolute paths for ca_cert and ca_key to use your own CA files.
|
||||||
|
#
|
||||||
|
# To use custom CA files, fill in the absolute paths below.
|
||||||
|
# If left empty, the default behavior (kubeadm or kubekey) will be used.
|
||||||
|
ca_cert: ""
|
||||||
|
ca_key: ""
|
||||||
|
# The following fields are for the Kubernetes front-proxy CA certificate and key.
|
||||||
|
# To use custom front-proxy CA files, fill in the absolute paths below.
|
||||||
|
# If left empty, the default behavior will be used.
|
||||||
|
front_proxy_cert: ""
|
||||||
|
front_proxy_key: ""
|
||||||
|
# Automatically renew service certificates (Note: CA certificates cannot be renewed automatically)
|
||||||
|
renew: false
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
cni:
|
||||||
|
# CNI plugin to use (equivalent to kubernetes.kube_network_plugin)
|
||||||
|
# Specify the network plugin to install for the cluster. Supported: calico, cilium, flannel, hybridnet, kubeovn, other
|
||||||
|
# kube_network_plugin: calico
|
||||||
|
type: calico
|
||||||
|
# Maximum number of pods supported per node
|
||||||
|
max_pods: 110
|
||||||
|
# The complete Pod IP pool for the cluster. Supports IPv4, IPv6, and dual-stack.
|
||||||
|
pod_cidr: 10.233.64.0/18
|
||||||
|
# IPv4 subnet mask length for pod allocation per node. Determines the size of each node's pod IP pool.
|
||||||
|
ipv4_mask_size: 24
|
||||||
|
# IPv6 subnet mask length for pod allocation per node.
|
||||||
|
ipv6_mask_size: 64
|
||||||
|
# The complete Service IP pool for the cluster. Supports IPv4, IPv6, and dual-stack.
|
||||||
|
service_cidr: 10.233.0.0/18
|
||||||
|
|
||||||
|
# Network enhancement plugin for multiple pod network interfaces (Multus)
|
||||||
|
multus:
|
||||||
|
# Enable or disable the network enhancement plugin
|
||||||
|
enabled: false
|
||||||
|
image:
|
||||||
|
registry: >-
|
||||||
|
{{ .image_registry.ghcrio_registry }}
|
||||||
|
repository: k8snetworkplumbingwg/multus-cni
|
||||||
|
tag: v4.3.0
|
||||||
|
|
||||||
|
# ========== 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
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
cri:
|
||||||
|
# Container runtime to use. Supported: containerd, docker
|
||||||
|
container_manager: containerd
|
||||||
|
# Cgroup driver for the container runtime. Supported: systemd, cgroupfs
|
||||||
|
cgroup_driver: systemd
|
||||||
|
# Pause/sandbox image configuration
|
||||||
|
sandbox_image:
|
||||||
|
registry: >-
|
||||||
|
{{ .image_registry.dockerio_registry }}
|
||||||
|
repository: kubesphere/pause
|
||||||
|
tag: "3.9"
|
||||||
|
# CRI socket endpoint for the selected container runtime
|
||||||
|
cri_socket: >-
|
||||||
|
{{- if .cri.container_manager | eq "containerd" -}}
|
||||||
|
unix:///var/run/containerd/containerd.sock
|
||||||
|
{{- else if and (.cri.container_manager | eq "docker") (.kubernetes.kube_version | semverCompare ">=v1.24.0") -}}
|
||||||
|
unix:///var/run/cri-dockerd.sock
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
# Registry configuration for CRI, including mirrors, insecure registries, and authentication
|
||||||
|
registry:
|
||||||
|
mirrors: ["https://registry-1.docker.io"]
|
||||||
|
insecure_registries: []
|
||||||
|
auths: []
|
||||||
|
|
||||||
|
# ========== cri ==========
|
||||||
|
# crictl binary
|
||||||
|
crictl_version: v1.33.0
|
||||||
|
# ========== cri: docker ==========
|
||||||
|
# docker binary
|
||||||
|
docker_version: 24.0.7
|
||||||
|
# docker-compose binary
|
||||||
|
dockercompose_version: v2.20.3
|
||||||
|
# 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
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
# etcd service configuration
|
||||||
|
etcd:
|
||||||
|
# etcd supports two deployment types:
|
||||||
|
# - external: Use an external etcd cluster.
|
||||||
|
# - internal: Deploy etcd as static Pods within the cluster.
|
||||||
|
deployment_type: external
|
||||||
|
etcd_version: v3.5.11
|
||||||
|
image:
|
||||||
|
registry: >-
|
||||||
|
{{ .image_registry.dockerio_registry }}
|
||||||
|
repository: kubesphere/etcd
|
||||||
|
tag: "{{ .etcd.etcd_version }}"
|
||||||
|
# endpoints: ["https://127.1.1.1:2379"]
|
||||||
|
# Environment variables for etcd service
|
||||||
|
env:
|
||||||
|
election_timeout: 5000
|
||||||
|
heartbeat_interval: 250
|
||||||
|
compaction_retention: 8
|
||||||
|
snapshot_count: 10000
|
||||||
|
data_dir: /var/lib/etcd
|
||||||
|
token: k8s_etcd
|
||||||
|
# metrics: basic
|
||||||
|
# quota_backend_bytes: 100
|
||||||
|
# max_request_bytes: 100
|
||||||
|
# max_snapshots: 100
|
||||||
|
# max_wals: 5
|
||||||
|
# log_level: info
|
||||||
|
# unsupported_arch: arm64
|
||||||
|
# etcd backup configuration
|
||||||
|
backup:
|
||||||
|
backup_dir: /var/lib/etcd-backup
|
||||||
|
keep_backup_number: 5
|
||||||
|
etcd_backup_script: "backup.sh"
|
||||||
|
on_calendar: "*-*-* *:00/30:00"
|
||||||
|
# Enable etcd performance tuning (set to true to enable)
|
||||||
|
performance: false
|
||||||
|
# Enable etcd traffic prioritization (set to true to enable)
|
||||||
|
traffic_priority: false
|
||||||
|
ca_file: >-
|
||||||
|
{{ .binary_dir }}/pki/root.crt
|
||||||
|
cert_file: >-
|
||||||
|
{{ .binary_dir }}/pki/etcd.crt
|
||||||
|
key_file: >-
|
||||||
|
{{ .binary_dir }}/pki/etcd.key
|
||||||
|
|
@ -0,0 +1,78 @@
|
||||||
|
dns:
|
||||||
|
# ====== In-Cluster DNS Service Configuration ======
|
||||||
|
# The DNS domain suffix used for all services and pods within the cluster.
|
||||||
|
dns_domain: cluster.local
|
||||||
|
# CoreDNS image settings
|
||||||
|
dns_image:
|
||||||
|
registry: >-
|
||||||
|
{{ .image_registry.dockerio_registry }}
|
||||||
|
repository: >-
|
||||||
|
kubesphere
|
||||||
|
tag: v1.11.1
|
||||||
|
# NodeLocalDNS image settings
|
||||||
|
dns_cache_image:
|
||||||
|
registry: >-
|
||||||
|
{{ .image_registry.dockerio_registry }}
|
||||||
|
repository: kubesphere/k8s-dns-node-cache
|
||||||
|
tag: 1.24.0
|
||||||
|
# The IP address assigned to the cluster DNS service
|
||||||
|
dns_service_ip: >-
|
||||||
|
{{ index (.cni.service_cidr | ipInCIDR) 2 }}
|
||||||
|
# The IP address NodeLocalDNS will bind to on each node
|
||||||
|
dns_cache_ip: 169.254.25.10
|
||||||
|
|
||||||
|
# CoreDNS pod configuration
|
||||||
|
coredns:
|
||||||
|
dns_etc_hosts: []
|
||||||
|
# DNS zone matching configuration
|
||||||
|
zone_configs:
|
||||||
|
# Each entry defines which DNS zones to match. The default port is 53.
|
||||||
|
# ".": matches all DNS zones.
|
||||||
|
# "example.com": matches *.example.com using DNS server on port 53.
|
||||||
|
# "example.com:54": matches *.example.com using DNS server on port 54.
|
||||||
|
- zones: [".:53"]
|
||||||
|
additional_configs:
|
||||||
|
- errors
|
||||||
|
- ready
|
||||||
|
- prometheus :9153
|
||||||
|
- loop
|
||||||
|
- reload
|
||||||
|
- loadbalance
|
||||||
|
cache: 30
|
||||||
|
kubernetes:
|
||||||
|
zones:
|
||||||
|
- "{{ .dns.dns_domain }}"
|
||||||
|
# You can configure internal DNS message rewriting here if needed.
|
||||||
|
# rewrite:
|
||||||
|
# - rule: continue
|
||||||
|
# field: name
|
||||||
|
# type: exact
|
||||||
|
# value: "example.com example2.com"
|
||||||
|
# options: ""
|
||||||
|
forward:
|
||||||
|
# DNS query forwarding rules.
|
||||||
|
- from: "."
|
||||||
|
# Destination endpoints for forwarding. The 'to' syntax allows protocol specification.
|
||||||
|
to: ["/etc/resolv.conf"]
|
||||||
|
# Domains to exclude from forwarding.
|
||||||
|
except: []
|
||||||
|
# Use TCP for forwarding, even if the original request was UDP.
|
||||||
|
force_tcp: false
|
||||||
|
# Prefer UDP for forwarding; fallback to TCP if the response is truncated.
|
||||||
|
prefer_udp: false
|
||||||
|
# Number of consecutive failed health checks before marking an upstream as down.
|
||||||
|
# max_fails: 2
|
||||||
|
# Time after which cached connections expire.
|
||||||
|
# expire: 10s
|
||||||
|
# TLS properties for secure connections can be set here.
|
||||||
|
# tls:
|
||||||
|
# cert_file: ""
|
||||||
|
# key_file: ""
|
||||||
|
# ca_file: ""
|
||||||
|
# tls_servername: ""
|
||||||
|
# Policy for selecting upstream servers: random (default), round_robin, sequential.
|
||||||
|
# policy: "random"
|
||||||
|
# Health check configuration for upstream servers.
|
||||||
|
# health_check: ""
|
||||||
|
# Maximum number of concurrent DNS queries allowed.
|
||||||
|
max_concurrent: 1000
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
# Storage class configuration for Kubernetes persistent storage integration
|
||||||
|
storage_class:
|
||||||
|
# Local storage class configuration
|
||||||
|
local:
|
||||||
|
enabled: true # Enable local storage class
|
||||||
|
default: true # Set as the default storage class
|
||||||
|
provisioner_image:
|
||||||
|
registry: >-
|
||||||
|
{{ .image_registry.dockerio_registry }}
|
||||||
|
repository: openebs/provisioner-localpv
|
||||||
|
tag: 4.3.0
|
||||||
|
linux_utils_image:
|
||||||
|
registry: >-
|
||||||
|
{{ .image_registry.dockerio_registry }}
|
||||||
|
repository: openebs/linux-utils
|
||||||
|
tag: 4.3.0
|
||||||
|
path: /var/openebs/local # Host path for local storage volumes
|
||||||
|
|
||||||
|
# NFS storage class configuration
|
||||||
|
nfs:
|
||||||
|
# Ensure nfs-utils is installed on every node in the k8s_cluster group
|
||||||
|
enabled: false # Enable NFS storage class
|
||||||
|
default: false # Set as the default storage class
|
||||||
|
# NFS server address
|
||||||
|
server: >-
|
||||||
|
{{ .groups.nfs | default list | first }}
|
||||||
|
path: /share/kubernetes # NFS export path for persistent volumes
|
||||||
|
|
||||||
|
# ========== storageclass ==========
|
||||||
|
# ========== storageclass: nfs ==========
|
||||||
|
# nfs provisioner helm version
|
||||||
|
nfs_provisioner_version: 4.0.20
|
||||||
|
|
@ -0,0 +1,78 @@
|
||||||
|
- name: Defaults | Load defaults based on Kubernetes version
|
||||||
|
block:
|
||||||
|
- name: Defaults | Load version-specific settings for Kubernetes
|
||||||
|
when: .kubernetes.kube_version | empty | not
|
||||||
|
include_vars: >-
|
||||||
|
{{ slice (.kubernetes.kube_version | splitList ".") 0 2 | join "." }}.yaml
|
||||||
|
- name: Defaults | Load architecture-specific download URLs for each artifact version
|
||||||
|
include_vars: 10-download.yaml
|
||||||
|
|
||||||
|
- name: Defaults | Reset temporary directory
|
||||||
|
command: |
|
||||||
|
if [ -d {{ .tmp_dir }} ]; then
|
||||||
|
rm -rf {{ .tmp_dir }}
|
||||||
|
fi
|
||||||
|
mkdir -m 777 -p {{ .tmp_dir }}
|
||||||
|
|
||||||
|
- name: Defaults | Determine operating system architecture for each node
|
||||||
|
set_fact:
|
||||||
|
binary_type: >-
|
||||||
|
{{- if .transform_architectures.amd64 | has .os.architecture -}}
|
||||||
|
amd64
|
||||||
|
{{- else if .transform_architectures.arm64 | has .os.architecture -}}
|
||||||
|
arm64
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
- name: Defaults | Gather Kubernetes service status
|
||||||
|
when: .groups.k8s_cluster | has .inventory_hostname
|
||||||
|
block:
|
||||||
|
- name: Defaults | Get kubelet.service LoadState
|
||||||
|
command: systemctl show kubelet.service -p LoadState --value
|
||||||
|
register: kubernetes_install_LoadState
|
||||||
|
- name: Defaults | Get kubelet.service ActiveState
|
||||||
|
command: systemctl show kubelet.service -p ActiveState --value
|
||||||
|
register: kubernetes_install_ActiveState
|
||||||
|
- name: Defaults | Get installed Kubernetes version
|
||||||
|
ignore_errors: true
|
||||||
|
command: kubelet --version
|
||||||
|
register: kubernetes_install_version
|
||||||
|
|
||||||
|
- name: Defaults | Gather ETCD service status
|
||||||
|
when: .groups.etcd | has .inventory_hostname
|
||||||
|
block:
|
||||||
|
- name: Defaults | Get etcd.service LoadState and save to variable
|
||||||
|
command: systemctl show etcd.service -p LoadState --value
|
||||||
|
register: etcd_install_LoadState
|
||||||
|
- name: Defaults | Get etcd.service ActiveState and save to variable
|
||||||
|
command: systemctl show etcd.service -p ActiveState --value
|
||||||
|
register: etcd_install_ActiveState
|
||||||
|
- name: Defaults | Get installed etcd version
|
||||||
|
ignore_errors: true
|
||||||
|
command: etcd --version
|
||||||
|
register: etcd_install_version
|
||||||
|
register_type: yaml
|
||||||
|
|
||||||
|
- name: Defaults | Select the initialization node for the cluster
|
||||||
|
run_once: true
|
||||||
|
add_hostvars:
|
||||||
|
hosts: k8s_cluster
|
||||||
|
vars:
|
||||||
|
init_kubernetes_node: >-
|
||||||
|
{{- $initNodes := list -}}
|
||||||
|
{{- $notInitNodes := list -}}
|
||||||
|
{{- range .groups.kube_control_plane -}}
|
||||||
|
{{- if index $.hostvars . "kubernetes_install_LoadState" "stdout" | eq "loaded" -}}
|
||||||
|
{{- $initNodes = append $initNodes . -}}
|
||||||
|
{{- else if index $.hostvars . "kubernetes_install_LoadState" "stdout" | eq "not-found" -}}
|
||||||
|
{{- $notInitNodes = append $notInitNodes . -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if $initNodes | len | eq 1 -}}
|
||||||
|
{{ $initNodes | first }}
|
||||||
|
{{- else if $initNodes | len | lt 1 -}}
|
||||||
|
{{ index $initNodes (randInt 0 ((sub ($initNodes | len) 1) | int)) }}
|
||||||
|
{{- else if $notInitNodes | len | eq 1 -}}
|
||||||
|
{{ $notInitNodes | first }}
|
||||||
|
{{- else if $notInitNodes | len | lt 1 -}}
|
||||||
|
{{ index $notInitNodes (randInt 0 ((sub ($notInitNodes | len) 1) | int)) }}
|
||||||
|
{{- end -}}
|
||||||
|
|
@ -0,0 +1,224 @@
|
||||||
|
download:
|
||||||
|
# if set as "cn", so that online downloads will try to use available domestic sources whenever possible.
|
||||||
|
zone: ""
|
||||||
|
arch: [ "amd64" ]
|
||||||
|
# offline artifact package for kk.
|
||||||
|
artifact_file: ""
|
||||||
|
# the md5_file of artifact_file.
|
||||||
|
artifact_md5: ""
|
||||||
|
artifact_url:
|
||||||
|
etcd:
|
||||||
|
amd64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://kubernetes-release.pek3b.qingstor.com/etcd/release/download/{{ .etcd.etcd_version }}/etcd-{{ .etcd.etcd_version }}-linux-amd64.tar.gz
|
||||||
|
{{- else -}}
|
||||||
|
https://github.com/etcd-io/etcd/releases/download/{{ .etcd.etcd_version }}/etcd-{{ .etcd.etcd_version }}-linux-amd64.tar.gz
|
||||||
|
{{- end -}}
|
||||||
|
arm64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://kubernetes-release.pek3b.qingstor.com/etcd/release/download/{{ .etcd.etcd_version }}/etcd-{{ .etcd.etcd_version }}-linux-arm64.tar.gz
|
||||||
|
{{- else -}}
|
||||||
|
https://github.com/etcd-io/etcd/releases/download/{{ .etcd.etcd_version }}/etcd-{{ .etcd.etcd_version }}-linux-arm64.tar.gz
|
||||||
|
{{- end -}}
|
||||||
|
kubeadm:
|
||||||
|
amd64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://kubernetes-release.pek3b.qingstor.com/release/{{ .kubernetes.kube_version }}/bin/linux/amd64/kubeadm
|
||||||
|
{{- else -}}
|
||||||
|
https://dl.k8s.io/release/{{ .kubernetes.kube_version }}/bin/linux/amd64/kubeadm
|
||||||
|
{{- end -}}
|
||||||
|
arm64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://kubernetes-release.pek3b.qingstor.com/release/{{ .kubernetes.kube_version }}/bin/linux/arm64/kubeadm
|
||||||
|
{{- else -}}
|
||||||
|
https://dl.k8s.io/release/{{ .kubernetes.kube_version }}/bin/linux/arm64/kubeadm
|
||||||
|
{{- end -}}
|
||||||
|
kubelet:
|
||||||
|
amd64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://kubernetes-release.pek3b.qingstor.com/release/{{ .kubernetes.kube_version }}/bin/linux/amd64/kubelet
|
||||||
|
{{- else -}}
|
||||||
|
https://dl.k8s.io/release/{{ .kubernetes.kube_version }}/bin/linux/amd64/kubelet
|
||||||
|
{{- end -}}
|
||||||
|
arm64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://kubernetes-release.pek3b.qingstor.com/release/{{ .kubernetes.kube_version }}/bin/linux/arm64/kubelet
|
||||||
|
{{- else -}}
|
||||||
|
https://dl.k8s.io/release/{{ .kubernetes.kube_version }}/bin/linux/arm64/kubelet
|
||||||
|
{{- end -}}
|
||||||
|
kubectl:
|
||||||
|
amd64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://kubernetes-release.pek3b.qingstor.com/release/{{ .kubernetes.kube_version }}/bin/linux/amd64/kubectl
|
||||||
|
{{- else -}}
|
||||||
|
https://dl.k8s.io/release/{{ .kubernetes.kube_version }}/bin/linux/amd64/kubectl
|
||||||
|
{{- end -}}
|
||||||
|
arm64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://kubernetes-release.pek3b.qingstor.com/release/{{ .kubernetes.kube_version }}/bin/linux/arm64/kubectl
|
||||||
|
{{- else -}}
|
||||||
|
https://dl.k8s.io/release/{{ .kubernetes.kube_version }}/bin/linux/arm64/kubectl
|
||||||
|
{{- end -}}
|
||||||
|
cni_plugins:
|
||||||
|
amd64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://github.com/containernetworking/plugins/releases/download/{{ .cni.cni_plugins_version }}/cni-plugins-linux-amd64-{{ .cni.cni_plugins_version }}.tgz
|
||||||
|
{{- else -}}
|
||||||
|
https://containernetworking.pek3b.qingstor.com/plugins/releases/download/{{ .cni.cni_plugins_version }}/cni-plugins-linux-amd64-{{ .cni.cni_plugins_version }}.tgz
|
||||||
|
{{- end -}}
|
||||||
|
arm64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://github.com/containernetworking/plugins/releases/download/{{ .cni.cni_plugins_version }}/cni-plugins-linux-arm64-{{ .cni.cni_plugins_version }}.tgz
|
||||||
|
{{- else -}}
|
||||||
|
https://containernetworking.pek3b.qingstor.com/plugins/releases/download/{{ .cni.cni_plugins_version }}/cni-plugins-linux-arm64-{{ .cni.cni_plugins_version }}.tgz
|
||||||
|
{{- end -}}
|
||||||
|
helm:
|
||||||
|
amd64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://kubernetes-helm.pek3b.qingstor.com/helm-{{ .kubernetes.helm_version }}-linux-amd64.tar.gz
|
||||||
|
{{- else -}}
|
||||||
|
https://get.helm.sh/helm-{{ .kubernetes.helm_version }}-linux-amd64.tar.gz
|
||||||
|
{{- end -}}
|
||||||
|
arm64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://kubernetes-helm.pek3b.qingstor.com/helm-{{ .kubernetes.helm_version }}-linux-arm64.tar.gz
|
||||||
|
{{- else -}}
|
||||||
|
https://get.helm.sh/helm-{{ .kubernetes.helm_version }}-linux-arm64.tar.gz
|
||||||
|
{{- end -}}
|
||||||
|
crictl:
|
||||||
|
amd64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://kubernetes-release.pek3b.qingstor.com/cri-tools/releases/download/{{ .cri.crictl_version }}/crictl-{{ .cri.crictl_version }}-linux-amd64.tar.gz
|
||||||
|
{{- else -}}
|
||||||
|
https://github.com/kubernetes-sigs/cri-tools/releases/download/{{ .cri.crictl_version }}/crictl-{{ .cri.crictl_version }}-linux-amd64.tar.gz
|
||||||
|
{{- end -}}
|
||||||
|
arm64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://kubernetes-release.pek3b.qingstor.com/cri-tools/releases/download/{{ .cri.crictl_version }}/crictl-{{ .cri.crictl_version }}-linux-arm64.tar.gz
|
||||||
|
{{- else -}}
|
||||||
|
https://github.com/kubernetes-sigs/cri-tools/releases/download/{{ .cri.crictl_version }}/crictl-{{ .cri.crictl_version }}-linux-arm64.tar.gz
|
||||||
|
{{- end -}}
|
||||||
|
docker:
|
||||||
|
amd64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://mirrors.aliyun.com/docker-ce/linux/static/stable/x86_64/docker-{{ .cri.docker_version }}.tgz
|
||||||
|
{{- else -}}
|
||||||
|
https://download.docker.com/linux/static/stable/x86_64/docker-{{ .cri.docker_version }}.tgz
|
||||||
|
{{- end -}}
|
||||||
|
arm64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://mirrors.aliyun.com/docker-ce/linux/static/stable/aarch64/docker-{{ .cri.docker_version }}.tgz
|
||||||
|
{{- else -}}
|
||||||
|
https://download.docker.com/linux/static/stable/aarch64/docker-{{ .cri.docker_version }}.tgz
|
||||||
|
{{- end -}}
|
||||||
|
cridockerd:
|
||||||
|
amd64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://kubernetes-release.pek3b.qingstor.com/releases/download/{{ .cri.cridockerd_version }}/cri-dockerd-{{ .cri.cridockerd_version | default "" | trimPrefix "v" }}.amd64.tgz
|
||||||
|
{{- else -}}
|
||||||
|
https://github.com/Mirantis/cri-dockerd/releases/download/{{ .cri.cridockerd_version }}/cri-dockerd-{{ .cri.cridockerd_version | default "" | trimPrefix "v" }}.amd64.tgz
|
||||||
|
{{- end -}}
|
||||||
|
arm64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://kubernetes-release.pek3b.qingstor.com/releases/download/{{ .cri.cridockerd_version }}/cri-dockerd-{{ .cri.cridockerd_version | default "" | trimPrefix "v" }}.arm64.tgz
|
||||||
|
{{- else -}}
|
||||||
|
https://github.com/Mirantis/cri-dockerd/releases/download/{{ .cri.cridockerd_version }}/cri-dockerd-{{ .cri.cridockerd_version | default "" | trimPrefix "v" }}.arm64.tgz
|
||||||
|
{{- end -}}
|
||||||
|
containerd:
|
||||||
|
amd64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://kubernetes-release.pek3b.qingstor.com/containerd/containerd/releases/download/{{ .cri.containerd_version }}/containerd-{{ .cri.containerd_version | default "" | trimPrefix "v" }}-linux-amd64.tar.gz
|
||||||
|
{{- else -}}
|
||||||
|
https://github.com/containerd/containerd/releases/download/{{ .cri.containerd_version }}/containerd-{{ .cri.containerd_version | default "" | trimPrefix "v" }}-linux-amd64.tar.gz
|
||||||
|
{{- end -}}
|
||||||
|
arm64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://kubernetes-release.pek3b.qingstor.com/containerd/containerd/releases/download/{{ .cri.containerd_version }}/containerd-{{ .cri.containerd_version | default "" | trimPrefix "v" }}-linux-arm64.tar.gz
|
||||||
|
{{- else -}}
|
||||||
|
https://github.com/containerd/containerd/releases/download/{{ .cri.containerd_version }}/containerd-{{ .cri.containerd_version | default "" | trimPrefix "v" }}-linux-arm64.tar.gz
|
||||||
|
{{- end -}}
|
||||||
|
runc:
|
||||||
|
amd64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://kubernetes-release.pek3b.qingstor.com/opencontainers/runc/releases/download/{{ .cri.runc_version }}/runc.amd64
|
||||||
|
{{- else -}}
|
||||||
|
https://github.com/opencontainers/runc/releases/download/{{ .cri.runc_version }}/runc.amd64
|
||||||
|
{{- end -}}
|
||||||
|
arm64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://kubernetes-release.pek3b.qingstor.com/opencontainers/runc/releases/download/{{ .cri.runc_version }}/runc.arm64
|
||||||
|
{{- else -}}
|
||||||
|
https://github.com/opencontainers/runc/releases/download/{{ .cri.runc_version }}/runc.arm64
|
||||||
|
{{- end -}}
|
||||||
|
dockercompose:
|
||||||
|
amd64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://kubernetes-release.pek3b.qingstor.com/docker/compose/releases/download/{{ .cri.dockercompose_version }}/docker-compose-linux-x86_64
|
||||||
|
{{- else -}}
|
||||||
|
https://github.com/docker/compose/releases/download/{{ .cri.dockercompose_version }}/docker-compose-linux-x86_64
|
||||||
|
{{- end -}}
|
||||||
|
arm64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://kubernetes-release.pek3b.qingstor.com/docker/compose/releases/download/{{ .cri.dockercompose_version }}/docker-compose-linux-aarch64
|
||||||
|
{{- else -}}
|
||||||
|
https://github.com/docker/compose/releases/download/{{ .cri.dockercompose_version }}/docker-compose-linux-aarch64
|
||||||
|
{{- end -}}
|
||||||
|
# docker_registry:
|
||||||
|
# amd64: >-
|
||||||
|
# {{- if .download.zone | eq "cn" -}}
|
||||||
|
# https://kubernetes-release.pek3b.qingstor.com/registry/{{ .image_registry.docker_registry_version }}/docker-registry-{{ .image_registry.docker_registry_version }}-linux-amd64.tgz
|
||||||
|
# {{- else -}}
|
||||||
|
# https://github.com/kubesphere/kubekey/releases/download/{{ .image_registry.docker_registry_version }}/docker-registry-{{ .image_registry.docker_registry_version }}-linux-amd64.tgz
|
||||||
|
# {{- end -}}
|
||||||
|
# arm64: >-
|
||||||
|
# {{- if .download.zone | eq "cn" -}}
|
||||||
|
# https://kubernetes-release.pek3b.qingstor.com/registry/{{ .image_registry.docker_registry_version }}/docker-registry-{{ .image_registry.docker_registry_version }}-linux-arm64.tgz
|
||||||
|
# {{- else -}}
|
||||||
|
# https://github.com/kubesphere/kubekey/releases/download/{{ .image_registry.docker_registry_version }}/docker-registry-{{ .image_registry.docker_registry_version }}-linux-arm64.tgz
|
||||||
|
# {{- end -}}
|
||||||
|
harbor:
|
||||||
|
amd64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://github.com/goharbor/harbor/releases/download/{{ .image_registry.harbor_version }}/harbor-offline-installer-{{ .image_registry.harbor_version }}.tgz
|
||||||
|
{{- else -}}
|
||||||
|
https://github.com/goharbor/harbor/releases/download/{{ .image_registry.harbor_version }}/harbor-offline-installer-{{ .image_registry.harbor_version }}.tgz
|
||||||
|
{{- end -}}
|
||||||
|
# arm64: >-
|
||||||
|
# {{- if .download.zone | eq "cn" -}}
|
||||||
|
# https://github.com/goharbor/harbor/releases/download/{{ .image_registry.harbor_version }}/harbor-{{ .image_registry.harbor_version }}-linux-arm64.tgz
|
||||||
|
# {{- else -}}
|
||||||
|
# https://github.com/goharbor/harbor/releases/download/{{ .image_registry.harbor_version }}/harbor-{{ .image_registry.harbor_version }}-linux-arm64.tgz
|
||||||
|
# {{- end -}}
|
||||||
|
# keepalived:
|
||||||
|
# amd64: >-
|
||||||
|
# {{- if .download.zone | eq "cn" -}}
|
||||||
|
# https://kubernetes-release.pek3b.qingstor.com/osixia/keepalived/releases/download/{{ .image_registry.keepalived_version }}/keepalived-{{ .image_registry.keepalived_version }}-linux-amd64.tgz
|
||||||
|
# {{- else -}}
|
||||||
|
# https://github.com/osixia/keepalived/releases/download/{{ .image_registry.keepalived_version }}/keepalived-{{ .image_registry.keepalived_version }}-linux-amd64.tgz
|
||||||
|
# {{- end -}}
|
||||||
|
# arm64: >-
|
||||||
|
# {{- if .download.zone | eq "cn" -}}
|
||||||
|
# https://kubernetes-release.pek3b.qingstor.com/osixia/keepalived/releases/download/{{ .image_registry.keepalived_version }}/keepalived-{{ .image_registry.keepalived_version }}-linux-arm64.tgz
|
||||||
|
# {{- else -}}
|
||||||
|
# https://github.com/osixia/keepalived/releases/download/{{ .image_registry.keepalived_version }}/keepalived-{{ .image_registry.keepalived_version }}-linux-arm64.tgz
|
||||||
|
# {{- end -}}
|
||||||
|
# Notice: In the early calico helm chart, appVersion is not same as version(eg. v3.17.4)
|
||||||
|
calico: https://github.com/projectcalico/calico/releases/download/{{ .cni.calico_version }}/tigera-operator-{{ .cni.calico_version }}.tgz
|
||||||
|
calicoctl:
|
||||||
|
amd64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://kubernetes-release.pek3b.qingstor.com/projectcalico/calico/releases/download/{{ .cni.calico_version }}/calicoctl-linux-amd64
|
||||||
|
{{- else -}}
|
||||||
|
https://github.com/projectcalico/calico/releases/download/{{ .cni.calico_version }}/calicoctl-linux-amd64
|
||||||
|
{{- end -}}
|
||||||
|
arm64: >-
|
||||||
|
{{- if .download.zone | eq "cn" -}}
|
||||||
|
https://kubernetes-release.pek3b.qingstor.com/projectcalico/calico/releases/download/{{ .cni.calico_version }}/calicoctl-linux-arm64
|
||||||
|
{{- else -}}
|
||||||
|
https://github.com/projectcalico/calico/releases/download/{{ .cni.calico_version }}/calicoctl-linux-arm64
|
||||||
|
{{- end -}}
|
||||||
|
cilium: https://helm.cilium.io/cilium-{{ .cni.cilium_version }}.tgz
|
||||||
|
kubeovn: https://kubeovn.github.io/kube-ovn/kube-ovn-{{ .cni.kubeovn_version }}.tgz
|
||||||
|
hybridnet: https://github.com/alibaba/hybridnet/releases/download/helm-chart-{{ .cni.hybridnet_version }}/hybridnet-{{ .cni.hybridnet_version }}.tgz
|
||||||
|
nfs_provisioner: https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/releases/download/nfs-subdir-external-provisioner-4.0.18/nfs-subdir-external-provisioner-{{ .storage_class.nfs_provisioner_version }}.tgz
|
||||||
|
download_image: true
|
||||||
|
|
@ -0,0 +1,99 @@
|
||||||
|
apiVersion: kubekey.kubesphere.io/v1
|
||||||
|
kind: Config
|
||||||
|
spec:
|
||||||
|
kubernetes:
|
||||||
|
# helm binary
|
||||||
|
helm_version: v3.8.2
|
||||||
|
etcd:
|
||||||
|
# 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: 2.0.20
|
||||||
|
# ========== image registry: harbor ==========
|
||||||
|
# harbor image tag
|
||||||
|
harbor_version: v2.6.3
|
||||||
|
# docker-compose binary
|
||||||
|
dockercompose_version: v2.12.2
|
||||||
|
# ========== image registry: docker-registry ==========
|
||||||
|
# docker-registry image tag
|
||||||
|
docker_registry_version: 2.8.3
|
||||||
|
cri:
|
||||||
|
# support: containerd,docker
|
||||||
|
container_manager: docker
|
||||||
|
sandbox_image:
|
||||||
|
tag: "3.6"
|
||||||
|
# ========== 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:
|
||||||
|
multus:
|
||||||
|
image:
|
||||||
|
tag: v3.9.3
|
||||||
|
# ========== cni ==========
|
||||||
|
# cni_plugins binary (optional)
|
||||||
|
# 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
|
||||||
|
storage_class:
|
||||||
|
# ========== storageclass ==========
|
||||||
|
# ========== storageclass: local ==========
|
||||||
|
local:
|
||||||
|
provisioner_image:
|
||||||
|
tag: 3.3.0
|
||||||
|
linux_utils_image:
|
||||||
|
tag: 3.3.0
|
||||||
|
# ========== storageclass: nfs ==========
|
||||||
|
# nfs provisioner helm version
|
||||||
|
nfs_provisioner_version: 4.0.2
|
||||||
|
dns:
|
||||||
|
dns_image:
|
||||||
|
tag: v1.8.6
|
||||||
|
dns_cache_image:
|
||||||
|
tag: 1.21.1
|
||||||
|
# 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.28.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
|
||||||
|
|
@ -0,0 +1,100 @@
|
||||||
|
apiVersion: kubekey.kubesphere.io/v1
|
||||||
|
kind: Config
|
||||||
|
spec:
|
||||||
|
kubernetes:
|
||||||
|
# helm binary
|
||||||
|
helm_version: v3.10.3
|
||||||
|
etcd:
|
||||||
|
# etcd binary
|
||||||
|
etcd_version: v3.5.6
|
||||||
|
image_registry:
|
||||||
|
# ========== image registry ==========
|
||||||
|
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
||||||
|
keepalived_version: v2.0.20
|
||||||
|
# ========== image registry: harbor ==========
|
||||||
|
# harbor image tag
|
||||||
|
harbor_version: v2.7.1
|
||||||
|
# docker-compose binary
|
||||||
|
dockercompose_version: v2.14.0
|
||||||
|
# ========== image registry: docker-registry ==========
|
||||||
|
# docker-registry image tag
|
||||||
|
docker_registry_version: 2.8.3
|
||||||
|
cri:
|
||||||
|
# support: containerd,docker
|
||||||
|
container_manager: containerd
|
||||||
|
sandbox_image:
|
||||||
|
tag: "3.6"
|
||||||
|
# ========== 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:
|
||||||
|
multus:
|
||||||
|
image:
|
||||||
|
tag: v3.10.1
|
||||||
|
# ========== cni ==========
|
||||||
|
# cni_plugins binary (optional)
|
||||||
|
# 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
|
||||||
|
storage_class:
|
||||||
|
# ========== storageclass ==========
|
||||||
|
# ========== storageclass: local ==========
|
||||||
|
local:
|
||||||
|
provisioner_image:
|
||||||
|
tag: 3.4.0
|
||||||
|
linux_utils_image:
|
||||||
|
tag: 3.4.0
|
||||||
|
# ========== storageclass: nfs ==========
|
||||||
|
# nfs provisioner helm version
|
||||||
|
nfs_provisioner_version: 4.0.2
|
||||||
|
dns:
|
||||||
|
dns_image:
|
||||||
|
tag: v1.8.6
|
||||||
|
dns_cache_image:
|
||||||
|
tag: 1.22.20
|
||||||
|
# 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.29.3
|
||||||
|
# - 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
|
||||||
|
|
@ -0,0 +1,100 @@
|
||||||
|
apiVersion: kubekey.kubesphere.io/v1
|
||||||
|
kind: Config
|
||||||
|
spec:
|
||||||
|
kubernetes:
|
||||||
|
# helm binary
|
||||||
|
helm_version: v3.10.3
|
||||||
|
etcd:
|
||||||
|
# etcd binary
|
||||||
|
etcd_version: v3.5.7
|
||||||
|
image_registry:
|
||||||
|
# ========== image registry ==========
|
||||||
|
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
||||||
|
keepalived_version: 2.0.20
|
||||||
|
# ========== image registry: harbor ==========
|
||||||
|
# harbor image tag
|
||||||
|
harbor_version: v2.8.1
|
||||||
|
# docker-compose binary
|
||||||
|
dockercompose_version: v2.15.1
|
||||||
|
# ========== image registry: docker-registry ==========
|
||||||
|
# docker-registry image tag
|
||||||
|
docker_registry_version: 2.8.3
|
||||||
|
cri:
|
||||||
|
# support: containerd,docker
|
||||||
|
container_manager: containerd
|
||||||
|
sandbox_image:
|
||||||
|
tag: "3.6"
|
||||||
|
# ========== 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:
|
||||||
|
multus:
|
||||||
|
image:
|
||||||
|
tag: v3.11.3
|
||||||
|
# ========== cni ==========
|
||||||
|
# cni_plugins binary (optional)
|
||||||
|
# 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
|
||||||
|
storage_class:
|
||||||
|
# ========== storageclass ==========
|
||||||
|
# ========== storageclass: local ==========
|
||||||
|
local:
|
||||||
|
provisioner_image:
|
||||||
|
tag: 3.5.0
|
||||||
|
linux_utils_image:
|
||||||
|
tag: 3.5.0
|
||||||
|
# ========== storageclass: nfs ==========
|
||||||
|
# nfs provisioner helm version
|
||||||
|
nfs_provisioner_version: 4.0.8
|
||||||
|
dns:
|
||||||
|
dns_image:
|
||||||
|
tag: v1.9.3
|
||||||
|
dns_cache_image:
|
||||||
|
tag: 1.22.20
|
||||||
|
# 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.29.3
|
||||||
|
# - 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
|
||||||
|
|
@ -0,0 +1,100 @@
|
||||||
|
apiVersion: kubekey.kubesphere.io/v1
|
||||||
|
kind: Config
|
||||||
|
spec:
|
||||||
|
kubernetes:
|
||||||
|
# helm binary
|
||||||
|
helm_version: v3.11.2
|
||||||
|
etcd:
|
||||||
|
# etcd binary
|
||||||
|
etcd_version: v3.5.8
|
||||||
|
image_registry:
|
||||||
|
# ========== image registry ==========
|
||||||
|
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
||||||
|
keepalived_version: 2.0.20
|
||||||
|
# ========== image registry: harbor ==========
|
||||||
|
# harbor image tag
|
||||||
|
harbor_version: v2.9.1
|
||||||
|
# docker-compose binary
|
||||||
|
dockercompose_version: v2.16.0
|
||||||
|
# ========== image registry: docker-registry ==========
|
||||||
|
# docker-registry image tag
|
||||||
|
docker_registry_version: 2.8.3
|
||||||
|
cri:
|
||||||
|
# support: containerd,docker
|
||||||
|
container_manager: containerd
|
||||||
|
sandbox_image:
|
||||||
|
tag: "3.7"
|
||||||
|
# ========== 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:
|
||||||
|
multus:
|
||||||
|
image:
|
||||||
|
tag: v4.0.2
|
||||||
|
# ========== cni ==========
|
||||||
|
# cni_plugins binary (optional)
|
||||||
|
# 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
|
||||||
|
storage_class:
|
||||||
|
# ========== storageclass ==========
|
||||||
|
# ========== storageclass: local ==========
|
||||||
|
local:
|
||||||
|
provisioner_image:
|
||||||
|
tag: 3.6.0
|
||||||
|
linux_utils_image:
|
||||||
|
tag: 3.6.0
|
||||||
|
# ========== storageclass: nfs ==========
|
||||||
|
# nfs provisioner helm version
|
||||||
|
nfs_provisioner_version: 4.0.8
|
||||||
|
dns:
|
||||||
|
dns_image:
|
||||||
|
tag: v1.9.3
|
||||||
|
dns_cache_image:
|
||||||
|
tag: 1.22.20
|
||||||
|
# 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.30.4
|
||||||
|
# - 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
|
||||||
|
|
@ -0,0 +1,100 @@
|
||||||
|
apiVersion: kubekey.kubesphere.io/v1
|
||||||
|
kind: Config
|
||||||
|
spec:
|
||||||
|
kubernetes:
|
||||||
|
# helm binary
|
||||||
|
helm_version: v3.12.1
|
||||||
|
etcd:
|
||||||
|
# etcd binary
|
||||||
|
etcd_version: v3.5.9
|
||||||
|
image_registry:
|
||||||
|
# ========== image registry ==========
|
||||||
|
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
||||||
|
keepalived_version: 2.0.20
|
||||||
|
# ========== image registry: harbor ==========
|
||||||
|
# harbor image tag
|
||||||
|
harbor_version: v2.10.1
|
||||||
|
# docker-compose binary
|
||||||
|
dockercompose_version: v2.20.3
|
||||||
|
# ========== image registry: docker-registry ==========
|
||||||
|
# docker-registry image tag
|
||||||
|
docker_registry_version: 2.8.3
|
||||||
|
cri:
|
||||||
|
# support: containerd,docker
|
||||||
|
container_manager: containerd
|
||||||
|
sandbox_image:
|
||||||
|
tag: "3.7"
|
||||||
|
# ========== 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:
|
||||||
|
multus:
|
||||||
|
image:
|
||||||
|
tag: v4.0.2
|
||||||
|
# ========== cni ==========
|
||||||
|
# cni_plugins binary (optional)
|
||||||
|
# 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
|
||||||
|
storage_class:
|
||||||
|
# ========== storageclass ==========
|
||||||
|
# ========== storageclass: local ==========
|
||||||
|
local:
|
||||||
|
provisioner_image:
|
||||||
|
tag: 3.7.0
|
||||||
|
linux_utils_image:
|
||||||
|
tag: 3.7.0
|
||||||
|
# ========== storageclass: nfs ==========
|
||||||
|
# nfs provisioner helm version
|
||||||
|
nfs_provisioner_version: 4.0.10
|
||||||
|
dns:
|
||||||
|
dns_image:
|
||||||
|
tag: v1.10.1
|
||||||
|
dns_cache_image:
|
||||||
|
tag: 1.22.20
|
||||||
|
# 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.30.4
|
||||||
|
# - 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
|
||||||
|
|
@ -0,0 +1,100 @@
|
||||||
|
apiVersion: kubekey.kubesphere.io/v1
|
||||||
|
kind: Config
|
||||||
|
spec:
|
||||||
|
kubernetes:
|
||||||
|
# helm binary
|
||||||
|
helm_version: v3.12.1
|
||||||
|
etcd:
|
||||||
|
# etcd binary
|
||||||
|
etcd_version: v3.5.9
|
||||||
|
image_registry:
|
||||||
|
# ========== image registry ==========
|
||||||
|
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
||||||
|
keepalived_version: 2.0.20
|
||||||
|
# ========== image registry: harbor ==========
|
||||||
|
# harbor image tag
|
||||||
|
harbor_version: v2.10.1
|
||||||
|
# docker-compose binary
|
||||||
|
dockercompose_version: v2.20.3
|
||||||
|
# ========== image registry: docker-registry ==========
|
||||||
|
# docker-registry image tag
|
||||||
|
docker_registry_version: 2.8.3
|
||||||
|
cri:
|
||||||
|
# support: containerd,docker
|
||||||
|
container_manager: containerd
|
||||||
|
sandbox_image:
|
||||||
|
tag: "3.8"
|
||||||
|
# ========== cri ==========
|
||||||
|
# crictl binary
|
||||||
|
crictl_version: v1.28.0
|
||||||
|
# ========== cri: docker ==========
|
||||||
|
# docker binary
|
||||||
|
docker_version: 24.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.3
|
||||||
|
# runc binary
|
||||||
|
runc_version: v1.1.7
|
||||||
|
cni:
|
||||||
|
multus:
|
||||||
|
image:
|
||||||
|
tag: v4.1.0
|
||||||
|
# ========== cni ==========
|
||||||
|
# cni_plugins binary (optional)
|
||||||
|
# cni_plugins_version: v1.2.0
|
||||||
|
# ========== cni: calico ==========
|
||||||
|
# calicoctl binary
|
||||||
|
calico_version: v3.28.2
|
||||||
|
# ========== cni: cilium ==========
|
||||||
|
# cilium helm
|
||||||
|
cilium_version: 1.15.0
|
||||||
|
# ========== cni: kubeovn ==========
|
||||||
|
# kubeovn helm
|
||||||
|
kubeovn_version: 1.12.0
|
||||||
|
# ========== cni: hybridnet ==========
|
||||||
|
# hybridnet helm
|
||||||
|
hybridnet_version: 0.6.8
|
||||||
|
storage_class:
|
||||||
|
# ========== storageclass ==========
|
||||||
|
# ========== storageclass: local ==========
|
||||||
|
local:
|
||||||
|
provisioner_image:
|
||||||
|
tag: 3.8.0
|
||||||
|
linux_utils_image:
|
||||||
|
tag: 3.8.0
|
||||||
|
# ========== storageclass: nfs ==========
|
||||||
|
# nfs provisioner helm version
|
||||||
|
nfs_provisioner_version: 4.0.10
|
||||||
|
dns:
|
||||||
|
dns_image:
|
||||||
|
tag: v1.10.1
|
||||||
|
dns_cache_image:
|
||||||
|
tag: 1.22.20
|
||||||
|
# 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.34.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
|
||||||
|
|
@ -0,0 +1,100 @@
|
||||||
|
apiVersion: kubekey.kubesphere.io/v1
|
||||||
|
kind: Config
|
||||||
|
spec:
|
||||||
|
kubernetes:
|
||||||
|
# helm binary
|
||||||
|
helm_version: v3.13.3
|
||||||
|
etcd:
|
||||||
|
# etcd binary
|
||||||
|
etcd_version: v3.5.10
|
||||||
|
image_registry:
|
||||||
|
# ========== image registry ==========
|
||||||
|
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
||||||
|
keepalived_version: 2.0.20
|
||||||
|
# ========== image registry: harbor ==========
|
||||||
|
# harbor image tag
|
||||||
|
harbor_version: v2.10.1
|
||||||
|
# docker-compose binary
|
||||||
|
dockercompose_version: v2.20.3
|
||||||
|
# ========== image registry: docker-registry ==========
|
||||||
|
# docker-registry image tag
|
||||||
|
docker_registry_version: 2.8.3
|
||||||
|
cri:
|
||||||
|
# support: containerd,docker
|
||||||
|
container_manager: containerd
|
||||||
|
sandbox_image:
|
||||||
|
tag: "3.8"
|
||||||
|
# ========== cri ==========
|
||||||
|
# crictl binary
|
||||||
|
crictl_version: v1.29.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:
|
||||||
|
multus:
|
||||||
|
image:
|
||||||
|
tag: v4.1.1
|
||||||
|
# ========== cni ==========
|
||||||
|
# cni_plugins binary (optional)
|
||||||
|
# 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
|
||||||
|
storage_class:
|
||||||
|
# ========== storageclass ==========
|
||||||
|
# ========== storageclass: local ==========
|
||||||
|
local:
|
||||||
|
provisioner_image:
|
||||||
|
tag: 3.9.0
|
||||||
|
linux_utils_image:
|
||||||
|
tag: 3.9.0
|
||||||
|
# ========== storageclass: nfs ==========
|
||||||
|
# nfs provisioner helm version
|
||||||
|
nfs_provisioner_version: 4.1.0
|
||||||
|
dns:
|
||||||
|
dns_image:
|
||||||
|
tag: v1.11.1
|
||||||
|
dns_cache_image:
|
||||||
|
tag: 1.23.1
|
||||||
|
# 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.34.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
|
||||||
|
|
@ -0,0 +1,100 @@
|
||||||
|
apiVersion: kubekey.kubesphere.io/v1
|
||||||
|
kind: Config
|
||||||
|
spec:
|
||||||
|
kubernetes:
|
||||||
|
# helm binary
|
||||||
|
helm_version: v3.13.3
|
||||||
|
etcd:
|
||||||
|
# etcd binary
|
||||||
|
etcd_version: v3.5.10
|
||||||
|
image_registry:
|
||||||
|
# ========== image registry ==========
|
||||||
|
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
||||||
|
keepalived_version: 2.0.20
|
||||||
|
# ========== image registry: harbor ==========
|
||||||
|
# harbor image tag
|
||||||
|
harbor_version: v2.10.1
|
||||||
|
# docker-compose binary
|
||||||
|
dockercompose_version: v2.20.3
|
||||||
|
# ========== image registry: docker-registry ==========
|
||||||
|
# docker-registry image tag
|
||||||
|
docker_registry_version: 2.8.3
|
||||||
|
cri:
|
||||||
|
# support: containerd,docker
|
||||||
|
container_manager: containerd
|
||||||
|
sandbox_image:
|
||||||
|
tag: "3.8"
|
||||||
|
# ========== 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:
|
||||||
|
multus:
|
||||||
|
image:
|
||||||
|
tag: v4.2.1
|
||||||
|
# ========== cni ==========
|
||||||
|
# cni_plugins binary (optional)
|
||||||
|
# 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
|
||||||
|
storage_class:
|
||||||
|
# ========== storageclass ==========
|
||||||
|
# ========== storageclass: local ==========
|
||||||
|
local:
|
||||||
|
provisioner_image:
|
||||||
|
tag: 4.0.0
|
||||||
|
linux_utils_image:
|
||||||
|
tag: 4.0.0
|
||||||
|
# ========== storageclass: nfs ==========
|
||||||
|
# nfs provisioner helm version
|
||||||
|
nfs_provisioner_version: 4.1.0
|
||||||
|
dns:
|
||||||
|
dns_image:
|
||||||
|
tag: v1.11.1
|
||||||
|
dns_cache_image:
|
||||||
|
tag: 1.23.1
|
||||||
|
# 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.34.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
|
||||||
|
|
@ -0,0 +1,100 @@
|
||||||
|
apiVersion: kubekey.kubesphere.io/v1
|
||||||
|
kind: Config
|
||||||
|
spec:
|
||||||
|
kubernetes:
|
||||||
|
# helm binary
|
||||||
|
helm_version: v3.13.3
|
||||||
|
etcd:
|
||||||
|
# etcd binary
|
||||||
|
etcd_version: v3.5.11
|
||||||
|
image_registry:
|
||||||
|
# ========== image registry ==========
|
||||||
|
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
||||||
|
keepalived_version: 2.0.20
|
||||||
|
# ========== image registry: harbor ==========
|
||||||
|
# harbor image tag
|
||||||
|
harbor_version: v2.10.1
|
||||||
|
# docker-compose binary
|
||||||
|
dockercompose_version: v2.20.3
|
||||||
|
# ========== image registry: docker-registry ==========
|
||||||
|
# docker-registry image tag
|
||||||
|
docker_registry_version: 2.8.3
|
||||||
|
cri:
|
||||||
|
# support: containerd,docker
|
||||||
|
container_manager: containerd
|
||||||
|
sandbox_image:
|
||||||
|
tag: "3.8"
|
||||||
|
# ========== 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:
|
||||||
|
multus:
|
||||||
|
image:
|
||||||
|
tag: v4.2.1
|
||||||
|
# ========== cni ==========
|
||||||
|
# cni_plugins binary (optional)
|
||||||
|
# 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
|
||||||
|
storage_class:
|
||||||
|
# ========== storageclass ==========
|
||||||
|
# ========== storageclass: local ==========
|
||||||
|
local:
|
||||||
|
provisioner_image:
|
||||||
|
tag: 4.1.0
|
||||||
|
linux_utils_image:
|
||||||
|
tag: 4.1.0
|
||||||
|
# ========== storageclass: nfs ==========
|
||||||
|
# nfs provisioner helm version
|
||||||
|
nfs_provisioner_version: 4.2.0
|
||||||
|
dns:
|
||||||
|
dns_image:
|
||||||
|
tag: v1.11.1
|
||||||
|
dns_cache_image:
|
||||||
|
tag: 1.23.1
|
||||||
|
# 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.34.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
|
||||||
|
|
@ -0,0 +1,100 @@
|
||||||
|
apiVersion: kubekey.kubesphere.io/v1
|
||||||
|
kind: Config
|
||||||
|
spec:
|
||||||
|
kubernetes:
|
||||||
|
# helm binary
|
||||||
|
helm_version: v3.14.3
|
||||||
|
etcd:
|
||||||
|
# etcd binary
|
||||||
|
etcd_version: v3.5.11
|
||||||
|
image_registry:
|
||||||
|
# ========== image registry ==========
|
||||||
|
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
||||||
|
keepalived_version: 2.0.20
|
||||||
|
# ========== image registry: harbor ==========
|
||||||
|
# harbor image tag
|
||||||
|
harbor_version: v2.10.1
|
||||||
|
# docker-compose binary
|
||||||
|
dockercompose_version: v2.20.3
|
||||||
|
# ========== image registry: docker-registry ==========
|
||||||
|
# docker-registry image tag
|
||||||
|
docker_registry_version: 2.8.3
|
||||||
|
cri:
|
||||||
|
# support: containerd,docker
|
||||||
|
container_manager: containerd
|
||||||
|
sandbox_image:
|
||||||
|
tag: "3.8"
|
||||||
|
# ========== 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:
|
||||||
|
multus:
|
||||||
|
image:
|
||||||
|
tag: v4.3.0
|
||||||
|
# ========== cni ==========
|
||||||
|
# cni_plugins binary (optional)
|
||||||
|
# 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
|
||||||
|
storage_class:
|
||||||
|
# ========== storageclass ==========
|
||||||
|
# ========== storageclass: local ==========
|
||||||
|
local:
|
||||||
|
provisioner_image:
|
||||||
|
tag: 4.2.0
|
||||||
|
linux_utils_image:
|
||||||
|
tag: 4.2.0
|
||||||
|
# ========== storageclass: nfs ==========
|
||||||
|
# nfs provisioner helm version
|
||||||
|
nfs_provisioner_version: 4.2.0
|
||||||
|
dns:
|
||||||
|
dns_image:
|
||||||
|
tag: v1.11.1
|
||||||
|
dns_cache_image:
|
||||||
|
tag: 1.24.0
|
||||||
|
# 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.34.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
|
||||||
|
|
@ -0,0 +1,100 @@
|
||||||
|
apiVersion: kubekey.kubesphere.io/v1
|
||||||
|
kind: Config
|
||||||
|
spec:
|
||||||
|
kubernetes:
|
||||||
|
# helm binary
|
||||||
|
helm_version: v3.18.5
|
||||||
|
etcd:
|
||||||
|
# etcd binary
|
||||||
|
etcd_version: v3.5.11
|
||||||
|
image_registry:
|
||||||
|
# ========== image registry ==========
|
||||||
|
# keepalived image tag. Used for load balancing when there are multiple image registry nodes.
|
||||||
|
keepalived_version: 2.0.20
|
||||||
|
# ========== image registry: harbor ==========
|
||||||
|
# harbor image tag
|
||||||
|
harbor_version: v2.10.1
|
||||||
|
# docker-compose binary
|
||||||
|
dockercompose_version: v2.20.3
|
||||||
|
# ========== image registry: docker-registry ==========
|
||||||
|
# docker-registry image tag
|
||||||
|
docker_registry_version: 2.8.3
|
||||||
|
cri:
|
||||||
|
# support: containerd,docker
|
||||||
|
container_manager: containerd
|
||||||
|
sandbox_image:
|
||||||
|
tag: "3.9"
|
||||||
|
# ========== 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:
|
||||||
|
multus:
|
||||||
|
image:
|
||||||
|
tag: v4.3.0
|
||||||
|
# ========== cni ==========
|
||||||
|
# cni_plugins binary (optional)
|
||||||
|
# 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
|
||||||
|
storage_class:
|
||||||
|
# ========== storageclass ==========
|
||||||
|
# ========== storageclass: local ==========
|
||||||
|
local:
|
||||||
|
provisioner_image:
|
||||||
|
tag: 4.3.0
|
||||||
|
linux_utils_image:
|
||||||
|
tag: 4.3.0
|
||||||
|
# ========== storageclass: nfs ==========
|
||||||
|
# nfs provisioner helm version
|
||||||
|
nfs_provisioner_version: 4.3.0
|
||||||
|
dns:
|
||||||
|
dns_image:
|
||||||
|
tag: v1.11.1
|
||||||
|
dns_cache_image:
|
||||||
|
tag: 1.24.0
|
||||||
|
# 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.34.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
|
||||||
|
|
@ -1,266 +1,288 @@
|
||||||
---
|
---
|
||||||
- name: Binary | Ensure etcd binary is present
|
- name: Binary | Ensure etcd binary is present
|
||||||
tags: ["etcd"]
|
tags: ["etcd"]
|
||||||
|
loop: "{{ .download.arch | toJson }}"
|
||||||
|
when:
|
||||||
|
- .etcd.deployment_type | eq "external"
|
||||||
|
- .etcd.etcd_version | empty | not
|
||||||
command: |
|
command: |
|
||||||
artifact_name={{ get .artifact.artifact_url.etcd .item | splitList "/" | last }}
|
artifact_name={{ get .download.artifact_url.etcd .item | splitList "/" | last }}
|
||||||
artifact_path={{ .binary_dir }}/etcd/{{ .etcd_version }}/{{ .item }}
|
artifact_path={{ .binary_dir }}/etcd/{{ .etcd.etcd_version }}/{{ .item }}
|
||||||
if [ ! -f $artifact_path/$artifact_name ]; then
|
if [ ! -f $artifact_path/$artifact_name ]; then
|
||||||
mkdir -p $artifact_path
|
mkdir -p $artifact_path
|
||||||
# Attempt to download etcd binary
|
# Attempt to download etcd binary
|
||||||
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .artifact.artifact_url.etcd .item }})
|
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .download.artifact_url.etcd .item }})
|
||||||
if [ $http_code != 200 ]; then
|
if [ $http_code != 200 ]; then
|
||||||
echo "Failed to download etcd binary. HTTP status code: $http_code"
|
echo "Failed to download etcd binary. HTTP status code: $http_code"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
curl -L -o $artifact_path/$artifact_name {{ get .artifact.artifact_url.etcd .item }}
|
curl -L -o $artifact_path/$artifact_name {{ get .download.artifact_url.etcd .item }}
|
||||||
fi
|
fi
|
||||||
loop: "{{ .artifact.arch | toJson }}"
|
|
||||||
when: .etcd_version | empty | not
|
|
||||||
|
|
||||||
- name: Binary | Ensure Kubernetes binaries are present
|
- name: Binary | Ensure Kubernetes binaries are present
|
||||||
tags: ["kube"]
|
tags: ["kubernetes"]
|
||||||
|
loop: "{{ .download.arch | toJson }}"
|
||||||
|
when: .kubernetes.kube_version | empty | not
|
||||||
command: |
|
command: |
|
||||||
kube_path={{ .binary_dir }}/kube/{{ .kube_version }}/{{ .item }}
|
kube_path={{ .binary_dir }}/kube/{{ .kubernetes.kube_version }}/{{ .item }}
|
||||||
if [ ! -f $kube_path/kubelet ]; then
|
if [ ! -f $kube_path/kubelet ]; then
|
||||||
mkdir -p $kube_path
|
mkdir -p $kube_path
|
||||||
# Download kubelet if missing
|
# Download kubelet if missing
|
||||||
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .artifact.artifact_url.kubelet .item }})
|
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .download.artifact_url.kubelet .item }})
|
||||||
if [ $http_code != 200 ]; then
|
if [ $http_code != 200 ]; then
|
||||||
echo "Failed to download kubelet. HTTP status code: $http_code"
|
echo "Failed to download kubelet. HTTP status code: $http_code"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
curl -L -o $kube_path/kubelet {{ get .artifact.artifact_url.kubelet .item }}
|
curl -L -o $kube_path/kubelet {{ get .download.artifact_url.kubelet .item }}
|
||||||
fi
|
fi
|
||||||
if [ ! -f $kube_path/kubeadm ]; then
|
if [ ! -f $kube_path/kubeadm ]; then
|
||||||
mkdir -p $kube_path
|
mkdir -p $kube_path
|
||||||
# Download kubeadm if missing
|
# Download kubeadm if missing
|
||||||
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .artifact.artifact_url.kubeadm .item }})
|
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .download.artifact_url.kubeadm .item }})
|
||||||
if [ $http_code != 200 ]; then
|
if [ $http_code != 200 ]; then
|
||||||
echo "Failed to download kubeadm. HTTP status code: $http_code"
|
echo "Failed to download kubeadm. HTTP status code: $http_code"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
curl -L -o $kube_path/kubeadm {{ get .artifact.artifact_url.kubeadm .item }}
|
curl -L -o $kube_path/kubeadm {{ get .download.artifact_url.kubeadm .item }}
|
||||||
fi
|
fi
|
||||||
if [ ! -f $kube_path/kubectl ]; then
|
if [ ! -f $kube_path/kubectl ]; then
|
||||||
mkdir -p $kube_path
|
mkdir -p $kube_path
|
||||||
# Download kubectl if missing
|
# Download kubectl if missing
|
||||||
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .artifact.artifact_url.kubectl .item }})
|
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .download.artifact_url.kubectl .item }})
|
||||||
if [ $http_code != 200 ]; then
|
if [ $http_code != 200 ]; then
|
||||||
echo "Failed to download kubectl. HTTP status code: $http_code"
|
echo "Failed to download kubectl. HTTP status code: $http_code"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
curl -L -o $kube_path/kubectl {{ get .artifact.artifact_url.kubectl .item }}
|
curl -L -o $kube_path/kubectl {{ get .download.artifact_url.kubectl .item }}
|
||||||
fi
|
fi
|
||||||
loop: "{{ .artifact.arch | toJson }}"
|
|
||||||
when: .kube_version | empty | not
|
|
||||||
|
|
||||||
- name: Binary | Ensure CNI plugins are present
|
- name: Binary | Ensure CNI plugins are present
|
||||||
tags: ["cni"]
|
tags: ["kubernetes"]
|
||||||
|
loop: "{{ .download.arch | toJson }}"
|
||||||
|
when: .cni.cni_plugins_version | empty | not
|
||||||
command: |
|
command: |
|
||||||
artifact_name={{ get .artifact.artifact_url.cni_plugins .item | splitList "/" | last }}
|
artifact_name={{ get .download.artifact_url.cni_plugins .item | splitList "/" | last }}
|
||||||
artifact_path={{ .binary_dir }}/cni/plugins/{{ .cni_plugins_version }}/{{ .item }}
|
artifact_path={{ .binary_dir }}/cni/plugins/{{ .cni.cni_plugins_version }}/{{ .item }}
|
||||||
if [ ! -f $artifact_path/$artifact_name ]; then
|
if [ ! -f $artifact_path/$artifact_name ]; then
|
||||||
mkdir -p $artifact_path
|
mkdir -p $artifact_path
|
||||||
# Attempt to download CNI plugins
|
# Attempt to download CNI plugins
|
||||||
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .artifact.artifact_url.cni_plugins .item }})
|
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .download.artifact_url.cni_plugins .item }})
|
||||||
if [ $http_code != 200 ]; then
|
if [ $http_code != 200 ]; then
|
||||||
echo "Failed to download CNI plugins. HTTP status code: $http_code"
|
echo "Failed to download CNI plugins. HTTP status code: $http_code"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
curl -L -o $artifact_path/$artifact_name {{ get .artifact.artifact_url.cni_plugins .item }}
|
curl -L -o $artifact_path/$artifact_name {{ get .download.artifact_url.cni_plugins .item }}
|
||||||
fi
|
fi
|
||||||
loop: "{{ .artifact.arch | toJson }}"
|
|
||||||
when: .cni_plugins_version | empty | not
|
|
||||||
|
|
||||||
- name: Binary | Ensure Helm binary is present
|
- name: Binary | Ensure Helm binary is present
|
||||||
tags: ["helm"]
|
tags: ["kubernetes"]
|
||||||
|
loop: "{{ .download.arch | toJson }}"
|
||||||
|
when: .kubernetes.helm_version | empty | not
|
||||||
command: |
|
command: |
|
||||||
artifact_name={{ get .artifact.artifact_url.helm .item | splitList "/" | last }}
|
artifact_name={{ get .download.artifact_url.helm .item | splitList "/" | last }}
|
||||||
artifact_path={{ .binary_dir }}/helm/{{ .helm_version }}/{{ .item }}
|
artifact_path={{ .binary_dir }}/helm/{{ .kubernetes.helm_version }}/{{ .item }}
|
||||||
if [ ! -f $artifact_path/$artifact_name ]; then
|
if [ ! -f $artifact_path/$artifact_name ]; then
|
||||||
mkdir -p $artifact_path
|
mkdir -p $artifact_path
|
||||||
# Attempt to download Helm binary
|
# Attempt to download Helm binary
|
||||||
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .artifact.artifact_url.helm .item }})
|
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .download.artifact_url.helm .item }})
|
||||||
if [ $http_code != 200 ]; then
|
if [ $http_code != 200 ]; then
|
||||||
echo "Failed to download Helm binary. HTTP status code: $http_code"
|
echo "Failed to download Helm binary. HTTP status code: $http_code"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
curl -L -o $artifact_path/$artifact_name {{ get .artifact.artifact_url.helm .item }}
|
curl -L -o $artifact_path/$artifact_name {{ get .download.artifact_url.helm .item }}
|
||||||
fi
|
fi
|
||||||
loop: "{{ .artifact.arch | toJson }}"
|
|
||||||
when: .helm_version | empty | not
|
|
||||||
|
|
||||||
- name: Binary | Ensure crictl binary is present
|
- name: Binary | Ensure crictl binary is present
|
||||||
tags: ["crictl"]
|
tags: ["kubernetes"]
|
||||||
|
loop: "{{ .download.arch | toJson }}"
|
||||||
|
when: .cri.crictl_version | empty | not
|
||||||
command: |
|
command: |
|
||||||
artifact_name={{ get .artifact.artifact_url.crictl .item | splitList "/" | last }}
|
artifact_name={{ get .download.artifact_url.crictl .item | splitList "/" | last }}
|
||||||
artifact_path={{ .binary_dir }}/crictl/{{ .crictl_version }}/{{ .item }}
|
artifact_path={{ .binary_dir }}/crictl/{{ .cri.crictl_version }}/{{ .item }}
|
||||||
if [ ! -f $artifact_path/$artifact_name ]; then
|
if [ ! -f $artifact_path/$artifact_name ]; then
|
||||||
mkdir -p $artifact_path
|
mkdir -p $artifact_path
|
||||||
# Attempt to download crictl binary
|
# Attempt to download crictl binary
|
||||||
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .artifact.artifact_url.crictl .item }})
|
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .download.artifact_url.crictl .item }})
|
||||||
if [ $http_code != 200 ]; then
|
if [ $http_code != 200 ]; then
|
||||||
echo "Failed to download crictl binary. HTTP status code: $http_code"
|
echo "Failed to download crictl binary. HTTP status code: $http_code"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
curl -L -o $artifact_path/$artifact_name {{ get .artifact.artifact_url.crictl .item }}
|
curl -L -o $artifact_path/$artifact_name {{ get .download.artifact_url.crictl .item }}
|
||||||
fi
|
fi
|
||||||
loop: "{{ .artifact.arch | toJson }}"
|
|
||||||
when: .crictl_version | empty | not
|
|
||||||
|
|
||||||
- name: Binary | Ensure Docker binary is present
|
- name: Binary | Ensure Docker binary is present
|
||||||
tags: ["docker"]
|
tags: ["kubernetes","image_registry"]
|
||||||
|
loop: "{{ .download.arch | toJson }}"
|
||||||
|
when:
|
||||||
|
- .cri.docker_version | empty | not
|
||||||
|
- or (.image_registry.type | empty | not) (.cri.container_manager | eq "docker")
|
||||||
command: |
|
command: |
|
||||||
artifact_name={{ get .artifact.artifact_url.docker .item | splitList "/" | last }}
|
artifact_name={{ get .download.artifact_url.docker .item | splitList "/" | last }}
|
||||||
artifact_path={{ .binary_dir }}/docker/{{ .docker_version }}/{{ .item }}
|
artifact_path={{ .binary_dir }}/docker/{{ .cri.docker_version }}/{{ .item }}
|
||||||
if [ ! -f $artifact_path/$artifact_name ]; then
|
if [ ! -f $artifact_path/$artifact_name ]; then
|
||||||
mkdir -p $artifact_path
|
mkdir -p $artifact_path
|
||||||
# Attempt to download Docker binary
|
# Attempt to download Docker binary
|
||||||
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .artifact.artifact_url.docker .item }})
|
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .download.artifact_url.docker .item }})
|
||||||
if [ $http_code != 200 ]; then
|
if [ $http_code != 200 ]; then
|
||||||
echo "Failed to download Docker binary. HTTP status code: $http_code"
|
echo "Failed to download Docker binary. HTTP status code: $http_code"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
curl -L -o $artifact_path/$artifact_name {{ get .artifact.artifact_url.docker .item }}
|
curl -L -o $artifact_path/$artifact_name {{ get .download.artifact_url.docker .item }}
|
||||||
fi
|
fi
|
||||||
loop: "{{ .artifact.arch | toJson }}"
|
|
||||||
when: .docker_version | empty | not
|
|
||||||
|
|
||||||
- name: Binary | Ensure cri-dockerd binary is present
|
- name: Binary | Ensure cri-dockerd binary is present
|
||||||
tags: ["cridockerd"]
|
tags: ["kubernetes"]
|
||||||
|
loop: "{{ .download.arch | toJson }}"
|
||||||
|
when:
|
||||||
|
- .cri.cridockerd_version | empty | not
|
||||||
|
- .cri.container_manager | eq "docker"
|
||||||
|
- .kubernetes.kube_version | semverCompare ">=v1.24.0"
|
||||||
command: |
|
command: |
|
||||||
artifact_name={{ get .artifact.artifact_url.cridockerd .item | splitList "/" | last }}
|
artifact_name={{ get .download.artifact_url.cridockerd .item | splitList "/" | last }}
|
||||||
artifact_path={{ .binary_dir }}/cri-dockerd/{{ .cridockerd_version }}/{{ .item }}
|
artifact_path={{ .binary_dir }}/cri-dockerd/{{ .cri.cridockerd_version }}/{{ .item }}
|
||||||
if [ ! -f $artifact_path/$artifact_name ]; then
|
if [ ! -f $artifact_path/$artifact_name ]; then
|
||||||
mkdir -p $artifact_path
|
mkdir -p $artifact_path
|
||||||
# Attempt to download cri-dockerd binary
|
# Attempt to download cri-dockerd binary
|
||||||
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .artifact.artifact_url.cridockerd .item }})
|
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .download.artifact_url.cridockerd .item }})
|
||||||
if [ $http_code != 200 ]; then
|
if [ $http_code != 200 ]; then
|
||||||
echo "Failed to download cri-dockerd binary. HTTP status code: $http_code"
|
echo "Failed to download cri-dockerd binary. HTTP status code: $http_code"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
curl -L -o $artifact_path/$artifact_name {{ get .artifact.artifact_url.cridockerd .item }}
|
curl -L -o $artifact_path/$artifact_name {{ get .download.artifact_url.cridockerd .item }}
|
||||||
fi
|
fi
|
||||||
loop: "{{ .artifact.arch | toJson }}"
|
|
||||||
when: .cridockerd_version | empty | not
|
|
||||||
|
|
||||||
- name: Binary | Ensure containerd binary is present
|
- name: Binary | Ensure containerd binary is present
|
||||||
tags: ["containerd"]
|
tags: ["kubernetes"]
|
||||||
|
loop: "{{ .download.arch | toJson }}"
|
||||||
|
when:
|
||||||
|
- .cri.containerd_version | empty | not
|
||||||
|
- .cri.container_manager | eq "containerd"
|
||||||
command: |
|
command: |
|
||||||
artifact_name={{ get .artifact.artifact_url.containerd .item | splitList "/" | last }}
|
artifact_name={{ get .download.artifact_url.containerd .item | splitList "/" | last }}
|
||||||
artifact_path={{ .binary_dir }}/containerd/{{ .containerd_version }}/{{ .item }}
|
artifact_path={{ .binary_dir }}/containerd/{{ .cri.containerd_version }}/{{ .item }}
|
||||||
if [ ! -f $artifact_path/$artifact_name ]; then
|
if [ ! -f $artifact_path/$artifact_name ]; then
|
||||||
mkdir -p $artifact_path
|
mkdir -p $artifact_path
|
||||||
# Attempt to download containerd binary
|
# Attempt to download containerd binary
|
||||||
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .artifact.artifact_url.containerd .item }})
|
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .download.artifact_url.containerd .item }})
|
||||||
if [ $http_code != 200 ]; then
|
if [ $http_code != 200 ]; then
|
||||||
echo "Failed to download containerd binary. HTTP status code: $http_code"
|
echo "Failed to download containerd binary. HTTP status code: $http_code"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
curl -L -o $artifact_path/$artifact_name {{ get .artifact.artifact_url.containerd .item }}
|
curl -L -o $artifact_path/$artifact_name {{ get .download.artifact_url.containerd .item }}
|
||||||
fi
|
fi
|
||||||
loop: "{{ .artifact.arch | toJson }}"
|
|
||||||
when: .containerd_version | empty | not
|
|
||||||
|
|
||||||
- name: Binary | Ensure runc binary is present
|
- name: Binary | Ensure runc binary is present
|
||||||
tags: ["runc"]
|
tags: ["kubernetes"]
|
||||||
|
loop: "{{ .download.arch | toJson }}"
|
||||||
|
when:
|
||||||
|
- .cri.runc_version | empty | not
|
||||||
|
- .cri.container_manager | eq "containerd"
|
||||||
command: |
|
command: |
|
||||||
artifact_name={{ get .artifact.artifact_url.runc .item | splitList "/" | last }}
|
artifact_name={{ get .download.artifact_url.runc .item | splitList "/" | last }}
|
||||||
artifact_path={{ .binary_dir }}/runc/{{ .runc_version }}/{{ .item }}
|
artifact_path={{ .binary_dir }}/runc/{{ .cri.runc_version }}/{{ .item }}
|
||||||
if [ ! -f $artifact_path/$artifact_name ]; then
|
if [ ! -f $artifact_path/$artifact_name ]; then
|
||||||
mkdir -p $artifact_path
|
mkdir -p $artifact_path
|
||||||
# Attempt to download runc binary
|
# Attempt to download runc binary
|
||||||
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .artifact.artifact_url.runc .item }})
|
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .download.artifact_url.runc .item }})
|
||||||
if [ $http_code != 200 ]; then
|
if [ $http_code != 200 ]; then
|
||||||
echo "Failed to download runc binary. HTTP status code: $http_code"
|
echo "Failed to download runc binary. HTTP status code: $http_code"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
curl -L -o $artifact_path/$artifact_name {{ get .artifact.artifact_url.runc .item }}
|
curl -L -o $artifact_path/$artifact_name {{ get .download.artifact_url.runc .item }}
|
||||||
fi
|
fi
|
||||||
loop: "{{ .artifact.arch | toJson }}"
|
|
||||||
when: .runc_version | empty | not
|
|
||||||
|
|
||||||
- name: Binary | Ensure calicoctl binary is present
|
- name: Binary | Ensure calicoctl binary is present
|
||||||
tags: ["calicoctl"]
|
tags: ["kubernetes"]
|
||||||
|
loop: "{{ .download.arch | toJson }}"
|
||||||
|
when:
|
||||||
|
- .cni.calico_version | empty | not
|
||||||
|
- .cni.type | eq "calico"
|
||||||
command: |
|
command: |
|
||||||
artifact_name=calicoctl
|
artifact_name=calicoctl
|
||||||
artifact_path={{ .binary_dir }}/cni/calico/{{ .calico_version }}/{{ .item }}
|
artifact_path={{ .binary_dir }}/cni/calico/{{ .cni.calico_version }}/{{ .item }}
|
||||||
if [ ! -f $artifact_path/$artifact_name ]; then
|
if [ ! -f $artifact_path/$artifact_name ]; then
|
||||||
mkdir -p $artifact_path
|
mkdir -p $artifact_path
|
||||||
# Attempt to download calicoctl binary
|
# Attempt to download calicoctl binary
|
||||||
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .artifact.artifact_url.calicoctl .item }})
|
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .download.artifact_url.calicoctl .item }})
|
||||||
if [ $http_code != 200 ]; then
|
if [ $http_code != 200 ]; then
|
||||||
echo "Failed to download calicoctl binary. HTTP status code: $http_code"
|
echo "Failed to download calicoctl binary. HTTP status code: $http_code"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
curl -L -o $artifact_path/$artifact_name {{ get .artifact.artifact_url.calicoctl .item }}
|
curl -L -o $artifact_path/$artifact_name {{ get .download.artifact_url.calicoctl .item }}
|
||||||
fi
|
fi
|
||||||
loop: "{{ .artifact.arch | toJson }}"
|
|
||||||
when: .calico_version | empty | not
|
|
||||||
|
|
||||||
- name: Binary | Ensure Docker Registry binary is present
|
- name: Binary | Ensure Docker Registry binary is present
|
||||||
tags: ["registry"]
|
tags: ["image_registry"]
|
||||||
|
loop: "{{ .download.arch | toJson }}"
|
||||||
|
when:
|
||||||
|
- .image_registry.docker_registry_version | empty | not
|
||||||
|
- .image_registry.type | eq "docker-registry"
|
||||||
command: |
|
command: |
|
||||||
artifact_name={{ get .artifact.artifact_url.docker_registry .item | splitList "/" | last }}
|
artifact_name={{ get .download.artifact_url.docker_registry .item | splitList "/" | last }}
|
||||||
artifact_path={{ .binary_dir }}/image-registry/docker-registry/{{ .docker_registry_version }}/{{ .item }}
|
artifact_path={{ .binary_dir }}/image-registry/docker-registry/{{ .image_registry.docker_registry_version }}/{{ .item }}
|
||||||
if [ ! -f $artifact_path/$artifact_name ]; then
|
if [ ! -f $artifact_path/$artifact_name ]; then
|
||||||
mkdir -p $artifact_path
|
mkdir -p $artifact_path
|
||||||
# Attempt to download Docker Registry binary
|
# Attempt to download Docker Registry binary
|
||||||
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .artifact.artifact_url.docker_registry .item }})
|
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .download.artifact_url.docker_registry .item }})
|
||||||
if [ $http_code != 200 ]; then
|
if [ $http_code != 200 ]; then
|
||||||
echo "Failed to download Docker Registry binary. HTTP status code: $http_code"
|
echo "Failed to download Docker Registry binary. HTTP status code: $http_code"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
curl -L -o $artifact_path/$artifact_name {{ get .artifact.artifact_url.docker_registry .item }}
|
curl -L -o $artifact_path/$artifact_name {{ get .download.artifact_url.docker_registry .item }}
|
||||||
fi
|
fi
|
||||||
loop: "{{ .artifact.arch | toJson }}"
|
|
||||||
when: .docker_registry_version | empty | not
|
|
||||||
|
|
||||||
- name: Binary | Ensure docker-compose binary is present
|
- name: Binary | Ensure docker-compose binary is present
|
||||||
tags: ["docker-compose"]
|
tags: ["image_registry"]
|
||||||
|
loop: "{{ .download.arch | toJson }}"
|
||||||
|
when:
|
||||||
|
- .cri.dockercompose_version | empty | not
|
||||||
|
- .image_registry.type | eq "harbor"
|
||||||
command: |
|
command: |
|
||||||
compose_name=docker-compose
|
compose_name=docker-compose
|
||||||
compose_path={{ .binary_dir }}/image-registry/docker-compose/{{ .dockercompose_version }}/{{ .item }}
|
compose_path={{ .binary_dir }}/image-registry/docker-compose/{{ .cri.dockercompose_version }}/{{ .item }}
|
||||||
if [ ! -f $compose_path/$compose_name ]; then
|
if [ ! -f $compose_path/$compose_name ]; then
|
||||||
mkdir -p $compose_path
|
mkdir -p $compose_path
|
||||||
# Attempt to download docker-compose binary
|
# Attempt to download docker-compose binary
|
||||||
curl -L -o $compose_path/$compose_name {{ get .artifact.artifact_url.dockercompose .item }}
|
curl -L -o $compose_path/$compose_name {{ get .download.artifact_url.dockercompose .item }}
|
||||||
fi
|
fi
|
||||||
loop: "{{ .artifact.arch | toJson }}"
|
|
||||||
when: .dockercompose_version | empty | not
|
|
||||||
|
|
||||||
- name: Binary | Ensure Harbor binary is present
|
- name: Binary | Ensure Harbor binary is present
|
||||||
tags: ["harbor"]
|
tags: ["image_registry"]
|
||||||
|
loop: "{{ .download.arch | toJson }}"
|
||||||
|
when:
|
||||||
|
- .image_registry.harbor_version | empty | not
|
||||||
|
- .image_registry.type | eq "harbor"
|
||||||
command: |
|
command: |
|
||||||
harbor_name={{ get .artifact.artifact_url.harbor .item | splitList "/" | last }}
|
harbor_name={{ get .download.artifact_url.harbor .item | splitList "/" | last }}
|
||||||
harbor_path={{ .binary_dir }}/image-registry/harbor/{{ .harbor_version }}/{{ .item }}
|
harbor_path={{ .binary_dir }}/image-registry/harbor/{{ .image_registry.harbor_version }}/{{ .item }}
|
||||||
if [ ! -f $harbor_path/$harbor_name ]; then
|
if [ ! -f $harbor_path/$harbor_name ]; then
|
||||||
mkdir -p $harbor_path
|
mkdir -p $harbor_path
|
||||||
# Attempt to download Harbor binary
|
# Attempt to download Harbor binary
|
||||||
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .artifact.artifact_url.harbor .item }})
|
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .download.artifact_url.harbor .item }})
|
||||||
if [ $http_code != 200 ]; then
|
if [ $http_code != 200 ]; then
|
||||||
echo "Failed to download Harbor binary. HTTP status code: $http_code"
|
echo "Failed to download Harbor binary. HTTP status code: $http_code"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
curl -L -o $harbor_path/$harbor_name {{ get .artifact.artifact_url.harbor .item }}
|
curl -L -o $harbor_path/$harbor_name {{ get .download.artifact_url.harbor .item }}
|
||||||
fi
|
fi
|
||||||
loop: "{{ .artifact.arch | toJson }}"
|
|
||||||
when: .harbor_version | empty | not
|
|
||||||
|
|
||||||
- name: Binary | Ensure keepalived binary is present
|
- name: Binary | Ensure keepalived binary is present
|
||||||
tags: ["keepalived"]
|
tags: ["image_registry"]
|
||||||
|
loop: "{{ .download.arch | toJson }}"
|
||||||
|
when:
|
||||||
|
- .image_registry.keepalived_version | empty | not
|
||||||
|
- .image_registry.ha_vip | empty | not
|
||||||
|
- .groups.image_registry | len | lt 1
|
||||||
command: |
|
command: |
|
||||||
artifact_name={{ get .artifact.artifact_url.keepalived .item | splitList "/" | last }}
|
artifact_name={{ get .download.artifact_url.keepalived .item | splitList "/" | last }}
|
||||||
artifact_path={{ .binary_dir }}/image-registry/keepalived/{{ .keepalived_version }}/{{ .item }}
|
artifact_path={{ .binary_dir }}/image-registry/keepalived/{{ .keepalived_version }}/{{ .item }}
|
||||||
if [ ! -f $artifact_path/$artifact_name ]; then
|
if [ ! -f $artifact_path/$artifact_name ]; then
|
||||||
mkdir -p $artifact_path
|
mkdir -p $artifact_path
|
||||||
# Attempt to download keepalived binary
|
# Attempt to download keepalived binary
|
||||||
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .artifact.artifact_url.keepalived .item }})
|
http_code=$(curl -Lo /dev/null -s -w "%{http_code}" {{ get .download.artifact_url.keepalived .item }})
|
||||||
if [ $http_code != 200 ]; then
|
if [ $http_code != 200 ]; then
|
||||||
echo "Failed to download keepalived binary. HTTP status code: $http_code"
|
echo "Failed to download keepalived binary. HTTP status code: $http_code"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
curl -L -o $artifact_path/$artifact_name {{ get .artifact.artifact_url.keepalived .item }}
|
curl -L -o $artifact_path/$artifact_name {{ get .download.artifact_url.keepalived .item }}
|
||||||
fi
|
fi
|
||||||
loop: "{{ .artifact.arch | toJson }}"
|
|
||||||
when: .keepalived_version | empty | not
|
|
||||||
|
|
@ -1,69 +1,78 @@
|
||||||
---
|
---
|
||||||
- name: Helm | Ensure the Calico binary is available
|
- name: Helm | Ensure the Calico binary is available
|
||||||
|
when:
|
||||||
|
- .cni.calico_version | empty | not
|
||||||
|
- .cni.type | eq "calico"
|
||||||
command: |
|
command: |
|
||||||
artifact_name={{ .artifact.artifact_url.calico | splitList "/" | last }}
|
artifact_name={{ .download.artifact_url.calico | splitList "/" | last }}
|
||||||
artifact_path={{ .binary_dir }}/cni/calico
|
artifact_path={{ .binary_dir }}/cni/calico
|
||||||
if [ ! -f $artifact_path/$artifact_name ]; then
|
if [ ! -f $artifact_path/$artifact_name ]; then
|
||||||
mkdir -p $artifact_path
|
mkdir -p $artifact_path
|
||||||
# Download the Calico binary if it does not exist
|
# Download the Calico binary if it does not exist
|
||||||
curl -Lo $artifact_path/$artifact_name {{ .artifact.artifact_url.calico }}
|
curl -Lo $artifact_path/$artifact_name {{ .download.artifact_url.calico }}
|
||||||
fi
|
fi
|
||||||
when: .calico_version | empty | not
|
|
||||||
|
|
||||||
- name: Helm | Ensure the Cilium binary is available
|
- name: Helm | Ensure the Cilium binary is available
|
||||||
|
when:
|
||||||
|
- .cni.cilium_version | empty | not
|
||||||
|
- .cni.type | eq "cilium"
|
||||||
command: |
|
command: |
|
||||||
artifact_name={{ .artifact.artifact_url.cilium | splitList "/" | last }}
|
artifact_name={{ .download.artifact_url.cilium | splitList "/" | last }}
|
||||||
artifact_path={{ .binary_dir }}/cni/cilium
|
artifact_path={{ .binary_dir }}/cni/cilium
|
||||||
if [ ! -f $artifact_path/$artifact_name ]; then
|
if [ ! -f $artifact_path/$artifact_name ]; then
|
||||||
mkdir -p $artifact_path
|
mkdir -p $artifact_path
|
||||||
# Download the Cilium binary if it does not exist
|
# Download the Cilium binary if it does not exist
|
||||||
curl -Lo $artifact_path/$artifact_name {{ .artifact.artifact_url.cilium }}
|
curl -Lo $artifact_path/$artifact_name {{ .download.artifact_url.cilium }}
|
||||||
fi
|
fi
|
||||||
when: .cilium_version | empty | not
|
|
||||||
|
|
||||||
- name: Helm | Ensure the Flannel binary is available
|
- name: Helm | Ensure the Flannel binary is available
|
||||||
|
when:
|
||||||
|
- .cni.flannel_version | empty | not
|
||||||
|
- .cni.type | eq "flannel"
|
||||||
command: |
|
command: |
|
||||||
artifact_name={{ .artifact.artifact_url.flannel | splitList "/" | last }}
|
artifact_name={{ .download.artifact_url.flannel | splitList "/" | last }}
|
||||||
artifact_path={{ .binary_dir }}/cni/flannel
|
artifact_path={{ .binary_dir }}/cni/flannel
|
||||||
if [ ! -f $artifact_path/$artifact_name ]; then
|
if [ ! -f $artifact_path/$artifact_name ]; then
|
||||||
mkdir -p $artifact_path
|
mkdir -p $artifact_path
|
||||||
# Download the Flannel binary if it does not exist
|
# Download the Flannel binary if it does not exist
|
||||||
curl -Lo $artifact_path/$artifact_name {{ .artifact.artifact_url.flannel }}
|
curl -Lo $artifact_path/$artifact_name {{ .download.artifact_url.flannel }}
|
||||||
fi
|
fi
|
||||||
when: .flannel_version | empty | not
|
|
||||||
|
|
||||||
- name: Helm | Ensure the Kube-OVN binary is available
|
- name: Helm | Ensure the Kube-OVN binary is available
|
||||||
tags: ["kubeovn"]
|
when:
|
||||||
|
- .kubeovn_version | empty | not
|
||||||
|
- .cni.type | eq "kubeovn"
|
||||||
command: |
|
command: |
|
||||||
artifact_name={{ .artifact.artifact_url.kubeovn | splitList "/" | last }}
|
artifact_name={{ .download.artifact_url.kubeovn | splitList "/" | last }}
|
||||||
artifact_path={{ .binary_dir }}/cni/kubeovn
|
artifact_path={{ .binary_dir }}/cni/kubeovn
|
||||||
if [ ! -f $artifact_path/$artifact_name ]; then
|
if [ ! -f $artifact_path/$artifact_name ]; then
|
||||||
mkdir -p $artifact_path
|
mkdir -p $artifact_path
|
||||||
# Download the Kube-OVN binary if it does not exist
|
# Download the Kube-OVN binary if it does not exist
|
||||||
curl -Lo $artifact_path/$artifact_name {{ .artifact.artifact_url.kubeovn }}
|
curl -Lo $artifact_path/$artifact_name {{ .download.artifact_url.kubeovn }}
|
||||||
fi
|
fi
|
||||||
when: .kubeovn_version | empty | not
|
|
||||||
|
|
||||||
- name: Helm | Ensure the Hybridnet binary is available
|
- name: Helm | Ensure the Hybridnet binary is available
|
||||||
tags: ["hybridnet"]
|
when:
|
||||||
|
- .cni.hybridnet_version | empty | not
|
||||||
|
- .cni.type | eq "hybridnet"
|
||||||
command: |
|
command: |
|
||||||
artifact_name={{ .artifact.artifact_url.hybridnet | splitList "/" | last }}
|
artifact_name={{ .download.artifact_url.hybridnet | splitList "/" | last }}
|
||||||
artifact_path={{ .binary_dir }}/cni/hybridnet
|
artifact_path={{ .binary_dir }}/cni/hybridnet
|
||||||
if [ ! -f $artifact_path/$artifact_name ]; then
|
if [ ! -f $artifact_path/$artifact_name ]; then
|
||||||
mkdir -p $artifact_path
|
mkdir -p $artifact_path
|
||||||
# Download the Hybridnet binary if it does not exist
|
# Download the Hybridnet binary if it does not exist
|
||||||
curl -Lo $artifact_path/$artifact_name {{ .artifact.artifact_url.hybridnet }}
|
curl -Lo $artifact_path/$artifact_name {{ .download.artifact_url.hybridnet }}
|
||||||
fi
|
fi
|
||||||
when: .hybridnet_version | empty | not
|
|
||||||
|
|
||||||
- name: Helm | Ensure the NFS Provisioner binary is available
|
- name: Helm | Ensure the NFS Provisioner binary is available
|
||||||
tags: ["nfs_provisioner"]
|
when:
|
||||||
|
- .storage_class.nfs_provisioner_version | empty | not
|
||||||
|
- .storage_class.nfs.enabled
|
||||||
command: |
|
command: |
|
||||||
artifact_name={{ .artifact.artifact_url.nfs_provisioner | splitList "/" | last }}
|
artifact_name={{ .download.artifact_url.nfs_provisioner | splitList "/" | last }}
|
||||||
artifact_path={{ .binary_dir }}/sc
|
artifact_path={{ .binary_dir }}/sc
|
||||||
if [ ! -f $artifact_path/$artifact_name ]; then
|
if [ ! -f $artifact_path/$artifact_name ]; then
|
||||||
mkdir -p $artifact_path
|
mkdir -p $artifact_path
|
||||||
# Download the NFS Provisioner binary if it does not exist
|
# Download the NFS Provisioner binary if it does not exist
|
||||||
curl -Lo $artifact_path/$artifact_name {{ .artifact.artifact_url.nfs_provisioner }}
|
curl -Lo $artifact_path/$artifact_name {{ .download.artifact_url.nfs_provisioner }}
|
||||||
fi
|
fi
|
||||||
when: .nfs_provisioner_version | empty | not
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
- name: Image | Download container images
|
||||||
|
image:
|
||||||
|
pull:
|
||||||
|
images_dir: >-
|
||||||
|
{{ .binary_dir }}/images/
|
||||||
|
manifests: "{{ .image_manifests | toJson }}"
|
||||||
|
when:
|
||||||
|
- .image_manifests | default list | empty | not
|
||||||
|
|
@ -1,30 +1,27 @@
|
||||||
---
|
---
|
||||||
- name: Artifact | Extract artifact archive to working directory
|
- name: Artifact | Extract artifact archive to working directory
|
||||||
|
tags: ["always"]
|
||||||
command: |
|
command: |
|
||||||
if [ -f "{{ .artifact_file }}" ]; then
|
if [ -f "{{ .download.artifact_file }}" ]; then
|
||||||
mkdir -p {{ .binary_dir }}
|
mkdir -p {{ .binary_dir }}
|
||||||
tar -zxvf {{ .artifact_file }} -C {{ .binary_dir }}
|
tar -zxvf {{ .artifact_file }} -C {{ .binary_dir }}
|
||||||
fi
|
fi
|
||||||
when: .artifact_file | empty | not
|
when: .download.artifact_file | empty | not
|
||||||
|
|
||||||
- name: Artifact | Download required binaries and images
|
- name: Artifact | Download required binaries and images
|
||||||
when: .artifact_file | empty
|
when: .download.artifact_file | empty
|
||||||
block:
|
block:
|
||||||
# Download core binaries
|
# Download core binaries
|
||||||
- include_tasks: download_binary.yaml
|
- include_tasks: binary.yaml
|
||||||
# Download Helm and CNI binaries
|
# Download Helm and CNI binaries
|
||||||
- include_tasks: download_helm.yaml
|
- include_tasks: helm.yaml
|
||||||
|
tags: ["kubernetes"]
|
||||||
# Download remote images to the local images directory
|
# Download remote images to the local images directory
|
||||||
- name: Artifact | Download container images
|
- include_tasks: images.yaml
|
||||||
image:
|
tags: ["kubernetes", "image_registry"]
|
||||||
pull:
|
|
||||||
images_dir: >-
|
|
||||||
{{ .binary_dir }}/images/
|
|
||||||
manifests: "{{ .image_manifests | toJson }}"
|
|
||||||
when:
|
|
||||||
- .image_manifests | default list | empty | not
|
|
||||||
|
|
||||||
- name: Artifact | Set ownership of working directory to sudo user
|
- name: Artifact | Set ownership of working directory to sudo user
|
||||||
|
tags: ["always"]
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
command: |
|
command: |
|
||||||
chown -R ${SUDO_UID}:${SUDO_GID} {{ .work_dir }}
|
chown -R ${SUDO_UID}:${SUDO_GID} {{ .work_dir }}
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
- name: ETCD | Upgrade etcd if a newer version is available
|
- name: ETCD | Upgrade etcd if a newer version is available
|
||||||
when:
|
when:
|
||||||
- .etcd_install_LoadState.stdout | eq "loaded"
|
- .etcd_install_LoadState.stdout | eq "loaded"
|
||||||
- .etcd_version | semverCompare (printf ">v%s" (index .etcd_install_version "stdout" "etcd Version"))
|
- .etcd.etcd_version | semverCompare (printf ">v%s" (index .etcd_install_version "stdout" "etcd Version"))
|
||||||
include_tasks: upgrade.yaml
|
include_tasks: upgrade.yaml
|
||||||
|
|
||||||
- name: ETCD | Expand the etcd cluster by adding new nodes if required
|
- name: ETCD | Expand the etcd cluster by adding new nodes if required
|
||||||
|
|
@ -1,26 +1,13 @@
|
||||||
|
---
|
||||||
- name: Prepare | Check etcd.service status in systemd
|
- name: Prepare | Ensure installed etcd is running and healthy
|
||||||
block:
|
when: .etcd_install_LoadState.stdout | eq "loaded"
|
||||||
- name: Prepare | Get etcd.service LoadState and save to variable
|
assert:
|
||||||
command: systemctl show etcd.service -p LoadState --value
|
that: .etcd_install_ActiveState.stdout | eq "active"
|
||||||
register: etcd_install_LoadState
|
fail_msg: >-
|
||||||
- name: Prepare | Get etcd.service ActiveState and save to variable
|
etcd service is installed but not running
|
||||||
command: systemctl show etcd.service -p ActiveState --value
|
|
||||||
register: etcd_install_ActiveState
|
|
||||||
- name: Prepare | Ensure installed etcd is running and healthy
|
|
||||||
when: .etcd_install_LoadState.stdout | eq "loaded"
|
|
||||||
assert:
|
|
||||||
that: .etcd_install_ActiveState.stdout | eq "active"
|
|
||||||
fail_msg: >-
|
|
||||||
etcd service is installed but not running
|
|
||||||
|
|
||||||
- name: Prepare | Set etcd node parameters
|
- name: Prepare | Set etcd node parameters
|
||||||
block:
|
block:
|
||||||
- name: Prepare | Set etcd state to existing if already installed
|
|
||||||
when: .etcd_install_LoadState.stdout | eq "loaded"
|
|
||||||
set_fact:
|
|
||||||
etcd:
|
|
||||||
state: existing
|
|
||||||
- name: Prepare | Identify nodes with installed or missing etcd
|
- name: Prepare | Identify nodes with installed or missing etcd
|
||||||
run_once: true
|
run_once: true
|
||||||
add_hostvars:
|
add_hostvars:
|
||||||
|
|
@ -46,37 +33,32 @@
|
||||||
- name: Prepare | Check installed etcd version
|
- name: Prepare | Check installed etcd version
|
||||||
when: .etcd_install_LoadState.stdout | eq "loaded"
|
when: .etcd_install_LoadState.stdout | eq "loaded"
|
||||||
block:
|
block:
|
||||||
- name: Prepare | Get installed etcd version
|
|
||||||
command: etcd --version
|
|
||||||
register: etcd_install_version
|
|
||||||
register_type: yaml
|
|
||||||
- name: Prepare | Ensure target etcd version is not lower than installed version
|
- name: Prepare | Ensure target etcd version is not lower than installed version
|
||||||
when: .etcd_install_LoadState.stdout | eq "loaded"
|
when: .etcd_install_LoadState.stdout | eq "loaded"
|
||||||
assert:
|
assert:
|
||||||
that: .etcd_version | semverCompare (printf ">=v%s" (index .etcd_install_version "stdout" "etcd Version"))
|
that: .etcd_version | semverCompare (printf ">=v%s" (index .etcd_install_version "stdout" "etcd Version"))
|
||||||
fail_msg: >-
|
fail_msg: >-
|
||||||
Installed etcd version: {{ index .etcd_install_version "stdout" "etcd Version" }} is lower than target etcd version: {{ .etcd_version }}
|
Installed etcd version: {{ index .etcd_install_version "stdout" "etcd Version" }} is lower than target etcd version: {{ .etcd.etcd_version }}
|
||||||
|
|
||||||
- name: Prepare | Synchronize etcd package to node if new install or upgrade
|
- name: Prepare | Synchronize etcd package to node if new install or upgrade
|
||||||
when:
|
when:
|
||||||
- .etcd_install_version.error | empty
|
- or (.etcd_install_version.error | empty | not) (.etcd.etcd_version | semverCompare (printf ">v%s" (index .etcd_install_version "stdout" "etcd Version")))
|
||||||
- or (eq .etcd_install_version.stdout "skip") (eq .etcd_version (printf ">=v%s" (index .etcd_install_version "stdout" "etcd Version")))
|
|
||||||
block:
|
block:
|
||||||
- name: Prepare | Copy etcd binary package to remote node
|
- name: Prepare | Copy etcd binary package to remote node
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/etcd/{{ .etcd_version }}/{{ .binary_type }}/etcd-{{ .etcd_version }}-linux-{{ .binary_type }}.tar.gz
|
{{ .binary_dir }}/etcd/{{ .etcd.etcd_version }}/{{ .binary_type }}/etcd-{{ .etcd.etcd_version }}-linux-{{ .binary_type }}.tar.gz
|
||||||
dest: >-
|
dest: >-
|
||||||
{{ .tmp_dir }}/etcd-{{ .etcd_version }}-linux-{{ .binary_type }}.tar.gz
|
{{ .tmp_dir }}/etcd-{{ .etcd.etcd_version }}-linux-{{ .binary_type }}.tar.gz
|
||||||
- name: Prepare | Extract etcd binary package to /usr/local/bin/
|
- name: Prepare | Extract etcd binary package to /usr/local/bin/
|
||||||
command: |
|
command: |
|
||||||
tar --strip-components=1 -C /usr/local/bin/ -xvf {{ .tmp_dir }}/etcd-{{ .etcd_version }}-linux-{{ .binary_type }}.tar.gz \
|
tar --strip-components=1 -C /usr/local/bin/ -xvf {{ .tmp_dir }}/etcd-{{ .etcd.etcd_version }}-linux-{{ .binary_type }}.tar.gz \
|
||||||
--wildcards etcd-{{ .etcd_version }}-linux-{{ .binary_type }}/etcd*
|
--wildcards 'etcd-{{ .etcd.etcd_version }}-linux-{{ .binary_type }}/etcd*'
|
||||||
|
|
||||||
- name: Prepare | Synchronize certificates to node for new install or expansion
|
- name: Prepare | Synchronize certificates to node for new install or expansion
|
||||||
when: >-
|
when: >-
|
||||||
or
|
or
|
||||||
(eq .etcd_install_version.stdout "skip")
|
(.etcd_install_version.error | empty | not)
|
||||||
(and
|
(and
|
||||||
(.installed_etcd | empty | not)
|
(.installed_etcd | empty | not)
|
||||||
(.need_installed_etcd | fromJson | empty | not)
|
(.need_installed_etcd | fromJson | empty | not)
|
||||||
|
|
@ -85,15 +67,15 @@
|
||||||
- name: Prepare | Copy CA certificate to etcd node
|
- name: Prepare | Copy CA certificate to etcd node
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/pki/root.crt
|
{{ .etcd.ca_file }}
|
||||||
dest: /etc/ssl/etcd/ssl/ca.crt
|
dest: /etc/ssl/etcd/ssl/ca.crt
|
||||||
- name: Prepare | Copy server certificate to etcd node
|
- name: Prepare | Copy server certificate to etcd node
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/pki/etcd.crt
|
{{ .etcd.cert_file }}
|
||||||
dest: /etc/ssl/etcd/ssl/server.crt
|
dest: /etc/ssl/etcd/ssl/server.crt
|
||||||
- name: Prepare | Copy server key to etcd node
|
- name: Prepare | Copy server key to etcd node
|
||||||
copy:
|
copy:
|
||||||
src: >-
|
src: >-
|
||||||
{{ .binary_dir }}/pki/etcd.key
|
{{ .etcd.key_file }}
|
||||||
dest: /etc/ssl/etcd/ssl/server.key
|
dest: /etc/ssl/etcd/ssl/server.key
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue