From fb474bde504d2549280426d25fde169b3328d39e Mon Sep 17 00:00:00 2001 From: liujian Date: Tue, 13 May 2025 14:40:01 +0800 Subject: [PATCH] feat: change builtin defined variable (#2561) * feat: change inventory_hosts to hostvars Signed-off-by: joyceliu * feat: change inventory_hosts to hostvars Signed-off-by: joyceliu --------- Signed-off-by: joyceliu --- .../init/init-os/tasks/init_ntpserver.yaml | 2 +- .../capkk/roles/init/init-os/tasks/main.yaml | 6 ++-- .../roles/init/init-os/templates/init-os.sh | 34 +++++++++--------- .../precheck/env_check/tasks/kubernetes.yaml | 4 +-- .../precheck/env_check/tasks/network.yaml | 36 +++++++++---------- .../roles/precheck/env_check/tasks/os.yaml | 4 +-- builtin/core/playbooks/add_nodes.yaml | 18 +++++----- builtin/core/playbooks/create_cluster.yaml | 2 +- builtin/core/playbooks/hook/post_install.yaml | 4 +-- builtin/core/playbooks/hook/pre_install.yaml | 4 +-- .../core/roles/init/init-cert/tasks/main.yaml | 8 ++--- .../init/init-os/tasks/init_ntpserver.yaml | 2 +- .../init/init-os/tasks/init_repository.yaml | 4 +-- .../core/roles/init/init-os/tasks/main.yaml | 6 ++-- .../roles/init/init-os/templates/init-os.sh | 34 +++++++++--------- .../core/roles/install/cni/defaults/main.yaml | 4 +-- .../core/roles/install/cri/defaults/main.yaml | 4 +-- .../roles/install/etcd/templates/etcd.env | 8 ++--- .../install/image-registry/defaults/main.yaml | 4 +-- .../tasks/install_registry.yaml | 4 +-- .../roles/install/security/tasks/main.yaml | 6 ++-- .../tasks/init_kubernetes.yaml | 4 +-- .../init-kubernetes/tasks/main.yaml | 14 ++++---- .../templates/kubeadm/kubeadm-init.v1beta2 | 14 ++++---- .../templates/kubeadm/kubeadm-init.v1beta3 | 14 ++++---- .../tasks/join_kubernetes.yaml | 12 +++---- .../join-kubernetes/tasks/main.yaml | 10 +++--- .../templates/kubeadm/kubeadm-join.v1beta2 | 2 +- .../templates/kubeadm/kubeadm-join.v1beta3 | 2 +- .../tasks/high-availability/main.yaml | 4 +-- .../templates/haproxy/haproxy.cfg | 8 ++--- .../templates/kubevip/kubevip.BGP | 4 +-- .../roles/precheck/env_check/tasks/etcd.yaml | 4 +-- .../precheck/env_check/tasks/kubernetes.yaml | 4 +-- .../precheck/env_check/tasks/network.yaml | 2 +- .../roles/precheck/env_check/tasks/os.yaml | 4 +-- pkg/const/common.go | 4 +-- pkg/const/workdir.go | 4 +-- pkg/variable/variable_get_test.go | 10 +++--- plugins/roles/etcd/restore/tasks/main.yaml | 4 +-- 40 files changed, 161 insertions(+), 161 deletions(-) diff --git a/builtin/capkk/roles/init/init-os/tasks/init_ntpserver.yaml b/builtin/capkk/roles/init/init-os/tasks/init_ntpserver.yaml index 94579a6d..5b972c4d 100644 --- a/builtin/capkk/roles/init/init-os/tasks/init_ntpserver.yaml +++ b/builtin/capkk/roles/init/init-os/tasks/init_ntpserver.yaml @@ -15,7 +15,7 @@ {{- range $server := (.ntp.servers | fromJson) }} {{- $internalIPv4 := "" }} {{- $internalIPv6 := "" }} - {{- range $.inventory_hosts }} + {{- range $.hostvars }} {{- if eq .hostname $server }} {{- $internalIPv4 = .internal_ipv4 | default "" }} {{- $internalIPv6 = .internal_ipv6 | default "" }} diff --git a/builtin/capkk/roles/init/init-os/tasks/main.yaml b/builtin/capkk/roles/init/init-os/tasks/main.yaml index 7caccc58..ded40bcf 100644 --- a/builtin/capkk/roles/init/init-os/tasks/main.yaml +++ b/builtin/capkk/roles/init/init-os/tasks/main.yaml @@ -6,11 +6,11 @@ - name: Set hostname command: | - hostnamectl set-hostname {{ .inventory_name }} \ - && sed -i '/^127.0.1.1/s/.*/127.0.1.1 {{ .inventory_name }}/g' /etc/hosts + hostnamectl set-hostname {{ .inventory_hostname }} \ + && sed -i '/^127.0.1.1/s/.*/127.0.1.1 {{ .inventory_hostname }}/g' /etc/hosts when: - .set_hostname - - .inventory_name | ne "localhost" + - .inventory_hostname | ne "localhost" - name: Sync init os to remote template: diff --git a/builtin/capkk/roles/init/init-os/templates/init-os.sh b/builtin/capkk/roles/init/init-os/templates/init-os.sh index fcee678e..2e0d8745 100644 --- a/builtin/capkk/roles/init/init-os/templates/init-os.sh +++ b/builtin/capkk/roles/init/init-os/templates/init-os.sh @@ -214,41 +214,41 @@ cat >>/etc/hosts<>/etc/hosts<> /etc/hosts <> /etc/hosts <> /etc/hosts << EOF # haproxy dns for kubekey begin - {{- $internalIPv4 := index .inventory_hosts (.groups.kube_control_plane | default list | first) "internal_ipv4" | default "" }} - {{- $internalIPv6 := index .inventory_hosts (.groups.kube_control_plane | default list | first) "internal_ipv6" | default "" }} + {{- $internalIPv4 := index .hostvars (.groups.kube_control_plane | default list | first) "internal_ipv4" | default "" }} + {{- $internalIPv6 := index .hostvars (.groups.kube_control_plane | default list | first) "internal_ipv6" | default "" }} {{- if ne $internalIPv4 "" }} {{ $internalIPv4 }} {{ .kubernetes.control_plane_endpoint.host }} {{- else if ne $internalIPv6 "" }} @@ -23,7 +23,7 @@ when: .kubernetes.control_plane_endpoint.type | eq "haproxy" block: - name: Replace control_plane by local hosts - when: .groups.kube_control_plane | default list | has .inventory_name + when: .groups.kube_control_plane | default list | has .inventory_hostname command: | new_dns="# haproxy dns for kubekey begin {{- if ne .internal_ipv4 "" }} @@ -34,7 +34,7 @@ # haproxy dns for kubekey end" sed -i '/# haproxy dns for kubekey begin/,/# haproxy dns for kubekey end/c\'"$new_dns" /etc/hosts - name: Replace worker by haproxy hosts - when: .groups.worker | default list | has .inventory_name + when: .groups.worker | default list | has .inventory_hostname command: | new_dns="# haproxy dns for kubekey begin {{ .kubernetes.control_plane_endpoint.haproxy.address }} {{ .kubernetes.control_plane_endpoint.host }} diff --git a/builtin/core/roles/kubernetes/join-kubernetes/templates/kubeadm/kubeadm-join.v1beta2 b/builtin/core/roles/kubernetes/join-kubernetes/templates/kubeadm/kubeadm-join.v1beta2 index 0223f47b..9ec1c05b 100644 --- a/builtin/core/roles/kubernetes/join-kubernetes/templates/kubeadm/kubeadm-join.v1beta2 +++ b/builtin/core/roles/kubernetes/join-kubernetes/templates/kubeadm/kubeadm-join.v1beta2 @@ -8,7 +8,7 @@ discovery: apiServerEndpoint: {{ .kubernetes.control_plane_endpoint.host }}:{{ .kubernetes.control_plane_endpoint.port }} token: "{{ .kubeadm_token }}" unsafeSkipCAVerification: true -{{- if .groups.kube_control_plane | default list | has .inventory_name }} +{{- if .groups.kube_control_plane | default list | has .inventory_hostname }} controlPlane: localAPIEndpoint: {{- if ne $internalIPv4 "" }} diff --git a/builtin/core/roles/kubernetes/join-kubernetes/templates/kubeadm/kubeadm-join.v1beta3 b/builtin/core/roles/kubernetes/join-kubernetes/templates/kubeadm/kubeadm-join.v1beta3 index dc8fdd2b..98c9e5e6 100644 --- a/builtin/core/roles/kubernetes/join-kubernetes/templates/kubeadm/kubeadm-join.v1beta3 +++ b/builtin/core/roles/kubernetes/join-kubernetes/templates/kubeadm/kubeadm-join.v1beta3 @@ -8,7 +8,7 @@ discovery: apiServerEndpoint: {{ .kubernetes.control_plane_endpoint.host }}:{{ .kubernetes.control_plane_endpoint.port }} token: "{{ .kubeadm_token }}" unsafeSkipCAVerification: true -{{- if .groups.kube_control_plane | default list | has .inventory_name }} +{{- if .groups.kube_control_plane | default list | has .inventory_hostname }} controlPlane: localAPIEndpoint: {{- if ne $internalIPv4 "" }} diff --git a/builtin/core/roles/kubernetes/pre-kubernetes/tasks/high-availability/main.yaml b/builtin/core/roles/kubernetes/pre-kubernetes/tasks/high-availability/main.yaml index 6c746218..86a85b35 100644 --- a/builtin/core/roles/kubernetes/pre-kubernetes/tasks/high-availability/main.yaml +++ b/builtin/core/roles/kubernetes/pre-kubernetes/tasks/high-availability/main.yaml @@ -2,10 +2,10 @@ - include_tasks: high-availability/kube_vip.yaml when: - .kubernetes.control_plane_endpoint.type | eq "kube_vip" - - .groups.kube_control_plane | default list | has .inventory_name + - .groups.kube_control_plane | default list | has .inventory_hostname # only deploy haproxy in worker node. control_plane node use local static pod: kube-apiserver. - include_tasks: high-availability/haproxy.yaml when: - .kubernetes.control_plane_endpoint.type | eq "haproxy" - - .groups.kube_worker | default list | has .inventory_name \ No newline at end of file + - .groups.kube_worker | default list | has .inventory_hostname \ No newline at end of file diff --git a/builtin/core/roles/kubernetes/pre-kubernetes/templates/haproxy/haproxy.cfg b/builtin/core/roles/kubernetes/pre-kubernetes/templates/haproxy/haproxy.cfg index 7377ddd7..eb837d1f 100644 --- a/builtin/core/roles/kubernetes/pre-kubernetes/templates/haproxy/haproxy.cfg +++ b/builtin/core/roles/kubernetes/pre-kubernetes/templates/haproxy/haproxy.cfg @@ -37,11 +37,11 @@ backend kube_api_backend option httpchk GET /healthz http-check expect status 200 {{- range .groups.kube_control_plane | default list }} - {{- $internalIPv4 := index $.inventory_hosts . "internal_ipv4" | default "" }} - {{- $internalIPv6 := index $.inventory_hosts . "internal_ipv6" | default "" }} + {{- $internalIPv4 := index $.hostvars . "internal_ipv4" | default "" }} + {{- $internalIPv6 := index $.hostvars . "internal_ipv6" | default "" }} {{- if ne $internalIPv4 "" }} - server {{ index $.inventory_hosts . "hostname" }} {{ $internalIPv4 }}:{{ $.kubernetes.apiserver.port }} check check-ssl verify none + server {{ index $.hostvars . "hostname" }} {{ $internalIPv4 }}:{{ $.kubernetes.apiserver.port }} check check-ssl verify none {{- else if ne $internalIPv6 "" }} - server {{ index $.inventory_hosts . "hostname" }} {{ $internalIPv6 }}:{{ $.kubernetes.apiserver.port }} check check-ssl verify none + server {{ index $.hostvars . "hostname" }} {{ $internalIPv6 }}:{{ $.kubernetes.apiserver.port }} check check-ssl verify none {{- end }} {{- end }} diff --git a/builtin/core/roles/kubernetes/pre-kubernetes/templates/kubevip/kubevip.BGP b/builtin/core/roles/kubernetes/pre-kubernetes/templates/kubevip/kubevip.BGP index f030a5e5..5b44633a 100644 --- a/builtin/core/roles/kubernetes/pre-kubernetes/templates/kubevip/kubevip.BGP +++ b/builtin/core/roles/kubernetes/pre-kubernetes/templates/kubevip/kubevip.BGP @@ -31,7 +31,7 @@ spec: value: | {{- $ips := list }} {{- range .groups.kube_control_plane | default list }} - {{- $ips = append $ips (index $.inventory_hosts . "internal_ipv4") }} + {{- $ips = append $ips (index $.hostvars . "internal_ipv4") }} {{- end }} {{ $ips | join "," }} - name: bgp_as @@ -44,7 +44,7 @@ spec: value: | {{- $ips := list }} {{- range .groups.kube_control_plane | default list }} - {{- $ips = append $ips (printf "%s:65000::false" (index $.inventory_hosts . "internal_ipv4")) }} + {{- $ips = append $ips (printf "%s:65000::false" (index $.hostvars . "internal_ipv4")) }} {{- end }} {{ $ips | join "," }} - name: lb_enable diff --git a/builtin/core/roles/precheck/env_check/tasks/etcd.yaml b/builtin/core/roles/precheck/env_check/tasks/etcd.yaml index afb14305..073c0b44 100644 --- a/builtin/core/roles/precheck/env_check/tasks/etcd.yaml +++ b/builtin/core/roles/precheck/env_check/tasks/etcd.yaml @@ -24,7 +24,7 @@ ## https://cwiki.yunify.com/pages/viewpage.action?pageId=145920824 - name: Check dev io for etcd when: - - .groups.etcd | default list | has .inventory_name + - .groups.etcd | default list | has .inventory_hostname block: - name: Check fio is exist ignore_errors: true @@ -48,7 +48,7 @@ command: rm -rf {{ .tmp_dir }}/etcd/test-data - name: Check if etcd has installed - when: .groups.etcd | default list | has .inventory_name + when: .groups.etcd | default list | has .inventory_hostname block: - name: Get etcd service ignore_errors: true diff --git a/builtin/core/roles/precheck/env_check/tasks/kubernetes.yaml b/builtin/core/roles/precheck/env_check/tasks/kubernetes.yaml index ff3d09c8..38de7989 100644 --- a/builtin/core/roles/precheck/env_check/tasks/kubernetes.yaml +++ b/builtin/core/roles/precheck/env_check/tasks/kubernetes.yaml @@ -13,7 +13,7 @@ - | {{- $existIP := false }} {{- range .groups.all | default list }} - {{- if eq $.kubernetes.control_plane_endpoint.kube_vip.address (index $.inventory_hosts . "internal_ipv4") }} + {{- if eq $.kubernetes.control_plane_endpoint.kube_vip.address (index $.hostvars . "internal_ipv4") }} {{- $existIP = true }} {{- end }} {{- end }} @@ -31,7 +31,7 @@ when: and .kube_version (ne .kube_version "") - name: Check if kubernetes installed - when: .groups.k8s_cluster | default list | has .inventory_name + when: .groups.k8s_cluster | default list | has .inventory_hostname block: - name: Get kubernetes service ignore_errors: true diff --git a/builtin/core/roles/precheck/env_check/tasks/network.yaml b/builtin/core/roles/precheck/env_check/tasks/network.yaml index 47bd895f..31e4ead7 100644 --- a/builtin/core/roles/precheck/env_check/tasks/network.yaml +++ b/builtin/core/roles/precheck/env_check/tasks/network.yaml @@ -65,7 +65,7 @@ # provisioning time, so to establish a guarantee, we factor these out. # NOTICE: the check blatantly ignores the inet6-case - name: Guarantee that enough network address space is available for all pods - when: .groups.k8s_cluster | default list | has .inventory_name + when: .groups.k8s_cluster | default list | has .inventory_hostname block: - name: Guarantee that enough ipv4 network address space is available for all pods when: .kubernetes.networking.pod_cidr | default "10.233.64.0/18" | splitList "," | first | ipFamily | eq "IPv4" diff --git a/builtin/core/roles/precheck/env_check/tasks/os.yaml b/builtin/core/roles/precheck/env_check/tasks/os.yaml index bfe134ed..3e8e988a 100644 --- a/builtin/core/roles/precheck/env_check/tasks/os.yaml +++ b/builtin/core/roles/precheck/env_check/tasks/os.yaml @@ -24,13 +24,13 @@ - name: Stop if memory is too small for masters assert: that: .process.memInfo.MemTotal | trimSuffix " kB" | atoi | le .cluster_require.minimal_master_memory_mb - when: .groups.kube_control_plane | default list | has .inventory_name + when: .groups.kube_control_plane | default list | has .inventory_hostname - name: Stop if memory is too small for nodes assert: that: .process.memInfo.MemTotal | trimSuffix " kB" | atoi | le .cluster_require.minimal_node_memory_mb when: - - .groups.kube_worker | default list | has .inventory_name + - .groups.kube_worker | default list | has .inventory_hostname - name: Stop if kernel version is too low assert: diff --git a/pkg/const/common.go b/pkg/const/common.go index 40f5a8ea..91a4ea7d 100644 --- a/pkg/const/common.go +++ b/pkg/const/common.go @@ -48,12 +48,12 @@ const ( // === From Global Parameter === const ( // === From system generate === // VariableInventoryName the value which defined in inventory.spec.host. - VariableInventoryName = "inventory_name" + VariableInventoryName = "inventory_hostname" // VariableHostName the value is node hostname, default VariableInventoryName. // If VariableInventoryName is "localhost". try to set the actual name. VariableHostName = "hostname" // VariableGlobalHosts the value is host_var which defined in inventory. - VariableGlobalHosts = "inventory_hosts" + VariableGlobalHosts = "hostvars" // VariableGroupsAll the value is a all host_name slice of VariableGroups. VariableGroupsAll = "all" // VariableUnGrouped the value is a all host_name slice of VariableGroups. diff --git a/pkg/const/workdir.go b/pkg/const/workdir.go index 5ad70c56..d5255836 100644 --- a/pkg/const/workdir.go +++ b/pkg/const/workdir.go @@ -49,8 +49,8 @@ work_dir/ | | | | | |-- playbook.yaml | | | | | |-- /playbookName/variable/ | | | | | | |-- location.yaml -| | | | | | |-- inventory_name1.yaml -| | | | | | |-- inventory_name2.yaml +| | | | | | |-- inventory_hostname1.yaml +| | | | | | |-- inventory_hostname2.yaml | | | | |-- inventories/ | | | | |-- namespace/ diff --git a/pkg/variable/variable_get_test.go b/pkg/variable/variable_get_test.go index f982aefb..a52517f5 100644 --- a/pkg/variable/variable_get_test.go +++ b/pkg/variable/variable_get_test.go @@ -159,19 +159,19 @@ func TestGetAllVariable(t *testing.T) { "images": []any{"abc"}, }, "groups": map[string][]string{"all": {"localhost"}, "ungrouped": {"localhost"}}, - "inventory_hosts": map[string]any{ + "hostvars": map[string]any{ "localhost": map[string]any{ "internal_ipv4": "127.0.0.1", "internal_ipv6": "::1", "artifact": map[string]any{ "images": []any{"abc"}, }, - "inventory_name": "localhost", - "hostname": "localhost", + "inventory_hostname": "localhost", + "hostname": "localhost", }, }, - "inventory_name": "localhost", - "hostname": "localhost", + "inventory_hostname": "localhost", + "hostname": "localhost", }, }, } diff --git a/plugins/roles/etcd/restore/tasks/main.yaml b/plugins/roles/etcd/restore/tasks/main.yaml index 654b114c..51c614b2 100644 --- a/plugins/roles/etcd/restore/tasks/main.yaml +++ b/plugins/roles/etcd/restore/tasks/main.yaml @@ -17,10 +17,10 @@ export $(cat /etc/etcd.env | grep ETCDCTL_CERT) export $(cat /etc/etcd.env | grep ETCDCTL_KEY) etcdctl snapshot restore /tmp/kubekey/etcd/snapshot.db \ - --name={{ .inventory_name }} --endpoints=https://{{ .internal_ipv4 }}:2379 \ + --name={{ .inventory_hostname }} --endpoints=https://{{ .internal_ipv4 }}:2379 \ {{- $ips := list -}} {{- range $element := .groups.etcd -}} - {{- $ips = append $ips (printf "%s=https://%s:2380" (index .inventory_hosts $element "inventory_name") (index .inventory_hosts $element "internal_ipv4") -}} + {{- $ips = append $ips (printf "%s=https://%s:2380" (index .hostvars $element "inventory_hostname") (index .hostvars $element "internal_ipv4") -}} {{- end -}} --initial-cluster={{ $ips | join "," }} \ --initial-advertise-peer-urls=https://{{ .internal_ipv4 }}:2380\