TASK [k3s/master : Configure kubectl cluster to https://{{ apiserver_endpoint | ansible.utils.ipwrap }}:6443] ************************************************************************************************************************************************
Wednesday 14 September 2022 19:24:28 +0300 (0:00:00.659) 0:02:17.051 ***
fatal: [192.168.192.8]: FAILED! => {"changed": true, "cmd": ["k3s", "kubectl", "config", "set-cluster", "default", "--server=https://{{", "apiserver_endpoint", "|", "ansible.utils.ipwrap", "}}:6443", "--kubeconfig", "/home/{{", "ansible_user", "}}/.kube/config"], "delta": "0:00:00.196304", "end": "2022-09-14 19:24:29.395461", "msg": "non-zero return code", "rc": 1, "start": "2022-09-14 19:24:29.199157", "stderr": "error: Unexpected args: [default apiserver_endpoint | ansible.utils.ipwrap }}:6443 ansible_user }}/.kube/config]", "stderr_lines": ["error: Unexpected args: [default apiserver_endpoint | ansible.utils.ipwrap }}:6443 ansible_user }}/.kube/config]"], "stdout": "Set a cluster entry in kubeconfig.\n\n Specifying a name that already exists will merge new fields on top of existing values for those fields.\n\nExamples:\n # Set only the server field on the e2e cluster entry without touching other values\n kubectl config set-cluster e2e --server=https://1.2.3.4\n \n # Embed certificate authority data for the e2e cluster entry\n kubectl config set-cluster e2e --embed-certs --certificate-authority=~/.kube/e2e/kubernetes.ca.crt\n \n # Disable cert checking for the e2e cluster entry\n kubectl config set-cluster e2e --insecure-skip-tls-verify=true\n \n # Set custom TLS server name to use for validation for the e2e cluster entry\n kubectl config set-cluster e2e --tls-server-name=my-cluster-name\n \n # Set proxy url for the e2e cluster entry\n kubectl config set-cluster e2e --proxy-url=https://1.2.3.4\n\nOptions:\n --embed-certs=false:\n\tembed-certs for the cluster entry in kubeconfig\n\n --proxy-url='':\n\tproxy-url for the cluster entry in kubeconfig\n\nUsage:\n kubectl config set-cluster NAME [--server=server] [--certificate-authority=path/to/certificate/authority] [--insecure-skip-tls-verify=true] [--tls-server-name=example.com] [options]\n\nUse \"kubectl options\" for a list of global command-line options (applies to all commands).", "stdout_lines": ["Set a cluster entry in kubeconfig.", "", " Specifying a name that already exists will merge new fields on top of existing values for those fields.", "", "Examples:", " # Set only the server field on the e2e cluster entry without touching other values", " kubectl config set-cluster e2e --server=https://1.2.3.4", " ", " # Embed certificate authority data for the e2e cluster entry", " kubectl config set-cluster e2e --embed-certs --certificate-authority=~/.kube/e2e/kubernetes.ca.crt", " ", " # Disable cert checking for the e2e cluster entry", " kubectl config set-cluster e2e --insecure-skip-tls-verify=true", " ", " # Set custom TLS server name to use for validation for the e2e cluster entry", " kubectl config set-cluster e2e --tls-server-name=my-cluster-name", " ", " # Set proxy url for the e2e cluster entry", " kubectl config set-cluster e2e --proxy-url=https://1.2.3.4", "", "Options:", " --embed-certs=false:", "\tembed-certs for the cluster entry in kubeconfig", "", " --proxy-url='':", "\tproxy-url for the cluster entry in kubeconfig", "", "Usage:", " kubectl config set-cluster NAME [--server=server] [--certificate-authority=path/to/certificate/authority] [--insecure-skip-tls-verify=true] [--tls-server-name=example.com] [options]", "", "Use \"kubectl options\" for a list of global command-line options (applies to all commands)."]}
fatal: [192.168.192.7]: FAILED! => {"changed": true, "cmd": ["k3s", "kubectl", "config", "set-cluster", "default", "--server=https://{{", "apiserver_endpoint", "|", "ansible.utils.ipwrap", "}}:6443", "--kubeconfig", "/home/{{", "ansible_user", "}}/.kube/config"], "delta": "0:00:00.164204", "end": "2022-09-14 19:24:29.422157", "msg": "non-zero return code", "rc": 1, "start": "2022-09-14 19:24:29.257953", "stderr": "error: Unexpected args: [default apiserver_endpoint | ansible.utils.ipwrap }}:6443 ansible_user }}/.kube/config]", "stderr_lines": ["error: Unexpected args: [default apiserver_endpoint | ansible.utils.ipwrap }}:6443 ansible_user }}/.kube/config]"], "stdout": "Set a cluster entry in kubeconfig.\n\n Specifying a name that already exists will merge new fields on top of existing values for those fields.\n\nExamples:\n # Set only the server field on the e2e cluster entry without touching other values\n kubectl config set-cluster e2e --server=https://1.2.3.4\n \n # Embed certificate authority data for the e2e cluster entry\n kubectl config set-cluster e2e --embed-certs --certificate-authority=~/.kube/e2e/kubernetes.ca.crt\n \n # Disable cert checking for the e2e cluster entry\n kubectl config set-cluster e2e --insecure-skip-tls-verify=true\n \n # Set custom TLS server name to use for validation for the e2e cluster entry\n kubectl config set-cluster e2e --tls-server-name=my-cluster-name\n \n # Set proxy url for the e2e cluster entry\n kubectl config set-cluster e2e --proxy-url=https://1.2.3.4\n\nOptions:\n --embed-certs=false:\n\tembed-certs for the cluster entry in kubeconfig\n\n --proxy-url='':\n\tproxy-url for the cluster entry in kubeconfig\n\nUsage:\n kubectl config set-cluster NAME [--server=server] [--certificate-authority=path/to/certificate/authority] [--insecure-skip-tls-verify=true] [--tls-server-name=example.com] [options]\n\nUse \"kubectl options\" for a list of global command-line options (applies to all commands).", "stdout_lines": ["Set a cluster entry in kubeconfig.", "", " Specifying a name that already exists will merge new fields on top of existing values for those fields.", "", "Examples:", " # Set only the server field on the e2e cluster entry without touching other values", " kubectl config set-cluster e2e --server=https://1.2.3.4", " ", " # Embed certificate authority data for the e2e cluster entry", " kubectl config set-cluster e2e --embed-certs --certificate-authority=~/.kube/e2e/kubernetes.ca.crt", " ", " # Disable cert checking for the e2e cluster entry", " kubectl config set-cluster e2e --insecure-skip-tls-verify=true", " ", " # Set custom TLS server name to use for validation for the e2e cluster entry", " kubectl config set-cluster e2e --tls-server-name=my-cluster-name", " ", " # Set proxy url for the e2e cluster entry", " kubectl config set-cluster e2e --proxy-url=https://1.2.3.4", "", "Options:", " --embed-certs=false:", "\tembed-certs for the cluster entry in kubeconfig", "", " --proxy-url='':", "\tproxy-url for the cluster entry in kubeconfig", "", "Usage:", " kubectl config set-cluster NAME [--server=server] [--certificate-authority=path/to/certificate/authority] [--insecure-skip-tls-verify=true] [--tls-server-name=example.com] [options]", "", "Use \"kubectl options\" for a list of global command-line options (applies to all commands)."]}
fatal: [192.168.192.9]: FAILED! => {"changed": true, "cmd": ["k3s", "kubectl", "config", "set-cluster", "default", "--server=https://{{", "apiserver_endpoint", "|", "ansible.utils.ipwrap", "}}:6443", "--kubeconfig", "/home/{{", "ansible_user", "}}/.kube/config"], "delta": "0:00:00.240263", "end": "2022-09-14 19:24:29.459260", "msg": "non-zero return code", "rc": 1, "start": "2022-09-14 19:24:29.218997", "stderr": "error: Unexpected args: [default apiserver_endpoint | ansible.utils.ipwrap }}:6443 ansible_user }}/.kube/config]", "stderr_lines": ["error: Unexpected args: [default apiserver_endpoint | ansible.utils.ipwrap }}:6443 ansible_user }}/.kube/config]"], "stdout": "Set a cluster entry in kubeconfig.\n\n Specifying a name that already exists will merge new fields on top of existing values for those fields.\n\nExamples:\n # Set only the server field on the e2e cluster entry without touching other values\n kubectl config set-cluster e2e --server=https://1.2.3.4\n \n # Embed certificate authority data for the e2e cluster entry\n kubectl config set-cluster e2e --embed-certs --certificate-authority=~/.kube/e2e/kubernetes.ca.crt\n \n # Disable cert checking for the e2e cluster entry\n kubectl config set-cluster e2e --insecure-skip-tls-verify=true\n \n # Set custom TLS server name to use for validation for the e2e cluster entry\n kubectl config set-cluster e2e --tls-server-name=my-cluster-name\n \n # Set proxy url for the e2e cluster entry\n kubectl config set-cluster e2e --proxy-url=https://1.2.3.4\n\nOptions:\n --embed-certs=false:\n\tembed-certs for the cluster entry in kubeconfig\n\n --proxy-url='':\n\tproxy-url for the cluster entry in kubeconfig\n\nUsage:\n kubectl config set-cluster NAME [--server=server] [--certificate-authority=path/to/certificate/authority] [--insecure-skip-tls-verify=true] [--tls-server-name=example.com] [options]\n\nUse \"kubectl options\" for a list of global command-line options (applies to all commands).", "stdout_lines": ["Set a cluster entry in kubeconfig.", "", " Specifying a name that already exists will merge new fields on top of existing values for those fields.", "", "Examples:", " # Set only the server field on the e2e cluster entry without touching other values", " kubectl config set-cluster e2e --server=https://1.2.3.4", " ", " # Embed certificate authority data for the e2e cluster entry", " kubectl config set-cluster e2e --embed-certs --certificate-authority=~/.kube/e2e/kubernetes.ca.crt", " ", " # Disable cert checking for the e2e cluster entry", " kubectl config set-cluster e2e --insecure-skip-tls-verify=true", " ", " # Set custom TLS server name to use for validation for the e2e cluster entry", " kubectl config set-cluster e2e --tls-server-name=my-cluster-name", " ", " # Set proxy url for the e2e cluster entry", " kubectl config set-cluster e2e --proxy-url=https://1.2.3.4", "", "Options:", " --embed-certs=false:", "\tembed-certs for the cluster entry in kubeconfig", "", " --proxy-url='':", "\tproxy-url for the cluster entry in kubeconfig", "", "Usage:", " kubectl config set-cluster NAME [--server=server] [--certificate-authority=path/to/certificate/authority] [--insecure-skip-tls-verify=true] [--tls-server-name=example.com] [options]", "", "Use \"kubectl options\" for a list of global command-line options (applies to all commands)."]}
After this the role has ended successfully but still I'm not able to ping VIP ip from any of the nodes and i don't see it in ip a
output.
---
k3s_version: v1.24.4+k3s1
# this is the user that has ssh access to these machines
ansible_user: les
systemd_dir: /etc/systemd/system
# Set your timezone
system_timezone: "Europe/Moscow"
# interface which will be used for flannel
#flannel_iface: "eth0"
flannel_iface: "ens33"
# apiserver_endpoint is virtual ip-address which will be configured on each master
apiserver_endpoint: "192.168.192.222"
# k3s_token is required masters can talk together securely
# this token should be alpha numeric only
k3s_token: "super-puper-k3s-token-that-i-should-not-show-to-anybody"
# The IP on which the node is reachable in the cluster.
# Here, a sensible default is provided, you can still override
# it for each of your hosts, though.
k3s_node_ip: '{{ ansible_facts[flannel_iface]["ipv4"]["address"] }}'
# these arguments are recommended for servers as well as agents:
extra_args: >-
--flannel-iface={{ flannel_iface }}
--node-ip={{ k3s_node_ip }}
# change these to your liking, the only required one is --disable servicelb
extra_server_args: >-
{{ extra_args }}
--disable servicelb
--disable traefik
extra_agent_args: >-
{{ extra_args }}
# image tag for kube-vip
kube_vip_tag_version: "v0.5.0"
# image tag for metal lb
metal_lb_speaker_tag_version: "v0.13.5"
metal_lb_controller_tag_version: "v0.13.5"
# metallb ip range for load balancer
metal_lb_ip_range: "192.168.192.80-192.168.192.90"