fix: address talos comments (#1253)
* fix: update cni to cilium in taskfile Signed-off-by: Devin Buhl <devin@buhl.casa> * fix: more updates Signed-off-by: Devin Buhl <devin@buhl.casa> * fix: more cleanup Signed-off-by: Devin Buhl <devin@buhl.casa> * chore: housekeeping Signed-off-by: Devin Buhl <devin@buhl.casa> --------- Signed-off-by: Devin Buhl <devin@buhl.casa>
This commit is contained in:
1 parent
ab93b0e44e
commit
90ca5f026f
16 files changed
+126
-101
No files matched your search
@@ -15,5 +15,7 @@ export K8S_AUTH_KUBECONFIG="$(expand_path ./kubeconfig)"
|
|||||||
# k0s
|
# k0s
|
||||||
export DISABLE_TELEMETRY="true"
|
export DISABLE_TELEMETRY="true"
|
||||||
export DISABLE_UPGRADE_CHECK="true"
|
export DISABLE_UPGRADE_CHECK="true"
|
||||||
|
# Talos
|
||||||
|
export TALOSCONFIG="$(expand_path ./kubernetes/talos/clusterconfig/talosconfig)"
|
||||||
# Bin
|
# Bin
|
||||||
PATH_add "$(expand_path ./.bin)"
|
PATH_add "$(expand_path ./.bin)"
|
||||||
@@ -27,20 +27,26 @@ bootstrap_nodes:
|
|||||||
master:
|
master:
|
||||||
- name: k8s-0
|
- name: k8s-0
|
||||||
address: 10.10.10.100
|
address: 10.10.10.100
|
||||||
username: fake
|
ssh:
|
||||||
|
username: fake
|
||||||
- name: k8s-1
|
- name: k8s-1
|
||||||
address: 10.10.10.101
|
address: 10.10.10.101
|
||||||
username: fake
|
ssh:
|
||||||
|
username: fake
|
||||||
- name: k8s-2
|
- name: k8s-2
|
||||||
address: 10.10.10.102
|
address: 10.10.10.102
|
||||||
username: fake
|
ssh:
|
||||||
|
username: fake
|
||||||
worker:
|
worker:
|
||||||
- name: k8s-3
|
- name: k8s-3
|
||||||
address: 10.10.10.103
|
address: 10.10.10.103
|
||||||
username: fake
|
ssh:
|
||||||
|
username: fake
|
||||||
- name: k8s-4
|
- name: k8s-4
|
||||||
address: 10.10.10.104
|
address: 10.10.10.104
|
||||||
username: fake
|
ssh:
|
||||||
|
username: fake
|
||||||
- name: k8s-5
|
- name: k8s-5
|
||||||
address: 10.10.10.105
|
address: 10.10.10.105
|
||||||
username: fake
|
ssh:
|
||||||
|
username: fake
|
||||||
@@ -27,20 +27,26 @@ bootstrap_nodes:
|
|||||||
master:
|
master:
|
||||||
- name: k8s-0
|
- name: k8s-0
|
||||||
address: 10.10.10.100
|
address: 10.10.10.100
|
||||||
username: fake
|
ssh:
|
||||||
|
username: fake
|
||||||
- name: k8s-1
|
- name: k8s-1
|
||||||
address: 10.10.10.101
|
address: 10.10.10.101
|
||||||
username: fake
|
ssh:
|
||||||
|
username: fake
|
||||||
- name: k8s-2
|
- name: k8s-2
|
||||||
address: 10.10.10.102
|
address: 10.10.10.102
|
||||||
username: fake
|
ssh:
|
||||||
|
username: fake
|
||||||
worker:
|
worker:
|
||||||
- name: k8s-3
|
- name: k8s-3
|
||||||
address: 10.10.10.103
|
address: 10.10.10.103
|
||||||
username: fake
|
ssh:
|
||||||
|
username: fake
|
||||||
- name: k8s-4
|
- name: k8s-4
|
||||||
address: 10.10.10.104
|
address: 10.10.10.104
|
||||||
username: fake
|
ssh:
|
||||||
|
username: fake
|
||||||
- name: k8s-5
|
- name: k8s-5
|
||||||
address: 10.10.10.105
|
address: 10.10.10.105
|
||||||
username: fake
|
ssh:
|
||||||
|
username: fake
|
||||||
@@ -29,20 +29,26 @@ bootstrap_nodes:
|
|||||||
master:
|
master:
|
||||||
- name: k8s-0
|
- name: k8s-0
|
||||||
address: 10.10.10.100
|
address: 10.10.10.100
|
||||||
username: fake
|
ssh:
|
||||||
|
username: fake
|
||||||
- name: k8s-1
|
- name: k8s-1
|
||||||
address: 10.10.10.101
|
address: 10.10.10.101
|
||||||
username: fake
|
ssh:
|
||||||
|
username: fake
|
||||||
- name: k8s-2
|
- name: k8s-2
|
||||||
address: 10.10.10.102
|
address: 10.10.10.102
|
||||||
username: fake
|
ssh:
|
||||||
|
username: fake
|
||||||
worker:
|
worker:
|
||||||
- name: k8s-3
|
- name: k8s-3
|
||||||
address: 10.10.10.103
|
address: 10.10.10.103
|
||||||
username: fake
|
ssh:
|
||||||
|
username: fake
|
||||||
- name: k8s-4
|
- name: k8s-4
|
||||||
address: 10.10.10.104
|
address: 10.10.10.104
|
||||||
username: fake
|
ssh:
|
||||||
|
username: fake
|
||||||
- name: k8s-5
|
- name: k8s-5
|
||||||
address: 10.10.10.105
|
address: 10.10.10.105
|
||||||
username: fake
|
ssh:
|
||||||
|
username: fake
|
||||||
@@ -27,26 +27,26 @@ bootstrap_nodes:
|
|||||||
master:
|
master:
|
||||||
- name: k8s-0
|
- name: k8s-0
|
||||||
address: 10.10.10.100
|
address: 10.10.10.100
|
||||||
username: fake
|
talos:
|
||||||
diskSerial: fake
|
disk_device: fake
|
||||||
- name: k8s-1
|
- name: k8s-1
|
||||||
address: 10.10.10.101
|
address: 10.10.10.101
|
||||||
username: fake
|
talos:
|
||||||
diskSerial: fake
|
disk_device: fake
|
||||||
- name: k8s-2
|
- name: k8s-2
|
||||||
address: 10.10.10.102
|
address: 10.10.10.102
|
||||||
username: fake
|
talos:
|
||||||
diskSerial: fake
|
disk_device: fake
|
||||||
worker:
|
worker:
|
||||||
- name: k8s-3
|
- name: k8s-3
|
||||||
address: 10.10.10.103
|
address: 10.10.10.103
|
||||||
username: fake
|
talos:
|
||||||
diskSerial: fake
|
disk_device: fake
|
||||||
- name: k8s-4
|
- name: k8s-4
|
||||||
address: 10.10.10.104
|
address: 10.10.10.104
|
||||||
username: fake
|
talos:
|
||||||
diskSerial: fake
|
disk_device: fake
|
||||||
- name: k8s-5
|
- name: k8s-5
|
||||||
address: 10.10.10.105
|
address: 10.10.10.105
|
||||||
username: fake
|
talos:
|
||||||
diskSerial: fake
|
disk_device: fake
|
||||||
@@ -7,6 +7,9 @@ vars:
|
|||||||
TALHELPER_SECRET_FILE: "{{.TALOS_DIR}}/talhelper.sops.yaml"
|
TALHELPER_SECRET_FILE: "{{.TALOS_DIR}}/talhelper.sops.yaml"
|
||||||
TALHELPER_CONFIG_FILE: "{{.TALOS_DIR}}/talconfig.yaml"
|
TALHELPER_CONFIG_FILE: "{{.TALOS_DIR}}/talconfig.yaml"
|
||||||
|
|
||||||
|
env:
|
||||||
|
TALOSCONFIG: "{{.TALOS_DIR}}/clusterconfig/talosconfig"
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
|
|
||||||
gensecret:
|
gensecret:
|
||||||
@@ -46,13 +49,15 @@ tasks:
|
|||||||
desc: Generate talos kubeconfig
|
desc: Generate talos kubeconfig
|
||||||
prompt: This will overwrite the existing kubeconfig... continue?
|
prompt: This will overwrite the existing kubeconfig... continue?
|
||||||
dir: "{{.TALOS_DIR}}"
|
dir: "{{.TALOS_DIR}}"
|
||||||
cmd: talosctl kubeconfig {{.ROOT_DIR}} --force
|
cmd: talosctl --nodes {{.node}} kubeconfig {{.ROOT_DIR}} --force
|
||||||
|
requires:
|
||||||
|
vars: ["node"]
|
||||||
|
|
||||||
apply-extras:
|
apply-extras:
|
||||||
desc: Apply extras
|
desc: Apply extras
|
||||||
dir: "{{.TALOS_DIR}}"
|
dir: "{{.TALOS_DIR}}"
|
||||||
cmds:
|
cmds:
|
||||||
- kubectl --kubeconfig {{.KUBECONFIG_FILE}} kustomize --enable-helm ./cni | kubectl apply --kubeconfig {{.KUBECONFIG_FILE}} --server-side --filename -
|
- kubectl --kubeconfig {{.KUBECONFIG_FILE}} kustomize --enable-helm ./cilium | kubectl apply --kubeconfig {{.KUBECONFIG_FILE}} --server-side --filename -
|
||||||
- kubectl --kubeconfig {{.KUBECONFIG_FILE}} kustomize --enable-helm ./kubelet-csr-approver | kubectl apply --kubeconfig {{.KUBECONFIG_FILE}} --server-side --filename -
|
- kubectl --kubeconfig {{.KUBECONFIG_FILE}} kustomize --enable-helm ./kubelet-csr-approver | kubectl apply --kubeconfig {{.KUBECONFIG_FILE}} --server-side --filename -
|
||||||
preconditions:
|
preconditions:
|
||||||
- { msg: "Missing kubeconfig", sh: "test -f {{.KUBECONFIG_FILE}}" }
|
- { msg: "Missing kubeconfig", sh: "test -f {{.KUBECONFIG_FILE}}" }
|
||||||
|
|||||||
@@ -362,7 +362,7 @@ You have two different options for setting up your local workstation. First one
|
|||||||
|
|
||||||
```sh
|
```sh
|
||||||
task talos:bootstrap
|
task talos:bootstrap
|
||||||
task talos:kubeconfig
|
task talos:kubeconfig node=$master_node_ip_address
|
||||||
```
|
```
|
||||||
|
|
||||||
4. Install Cilium and kubelet-csr-approver into the cluster
|
4. Install Cilium and kubelet-csr-approver into the cluster
|
||||||
|
|||||||
@@ -58,10 +58,10 @@ def _validate_distribution(distribution: str) -> None:
|
|||||||
def _validate_node(node: dict, node_cidr: str, distribution: str) -> None:
|
def _validate_node(node: dict, node_cidr: str, distribution: str) -> None:
|
||||||
if not node.get("name"):
|
if not node.get("name"):
|
||||||
raise ValueError(f"A node is missing a name")
|
raise ValueError(f"A node is missing a name")
|
||||||
if not node.get("username") and distribution not in ["k0s", "k3s"]:
|
if not node.get("ssh", {}).get("username") and distribution in ["k0s", "k3s"]:
|
||||||
raise ValueError(f"Node {node.get('name')} is missing a username")
|
raise ValueError(f"Node {node.get('name')} is missing a SSH username")
|
||||||
if not node.get("diskSerial") and distribution in ["talos"]:
|
if not node.get("disk_device") and distribution in ["talos"]:
|
||||||
raise ValueError(f"Node {node.get('name')} is missing a disk serial")
|
raise ValueError(f"Node {node.get('name')} is missing a disk device")
|
||||||
if not re.match(r"^[a-z0-9-\.]+$", node.get('name')):
|
if not re.match(r"^[a-z0-9-\.]+$", node.get('name')):
|
||||||
raise ValueError(f"Node {node.get('name')} has an invalid name")
|
raise ValueError(f"Node {node.get('name')} has an invalid name")
|
||||||
ip = _validate_ip(node.get("address"))
|
ip = _validate_ip(node.get("address"))
|
||||||
|
|||||||
@@ -1,14 +1,12 @@
|
|||||||
---
|
---
|
||||||
# https://github.com/PyratLabs/ansible-role-k3s
|
|
||||||
# renovate: datasource=github-releases depName=k3s-io/k3s
|
|
||||||
k3s_release_version: v1.29.0+k3s1
|
|
||||||
k3s_install_hard_links: true
|
|
||||||
k3s_become: true
|
k3s_become: true
|
||||||
k3s_etcd_datastore: true
|
k3s_etcd_datastore: true
|
||||||
k3s_use_unsupported_config: true
|
k3s_install_hard_links: true
|
||||||
k3s_registration_address: "#{ bootstrap_kube_api_addr }#"
|
k3s_registration_address: "#{ bootstrap_kube_api_addr }#"
|
||||||
# /var/lib/rancher/k3s/server/manifests
|
# renovate: datasource=github-releases depName=k3s-io/k3s
|
||||||
|
k3s_release_version: v1.29.0+k3s1
|
||||||
k3s_server_manifests_templates:
|
k3s_server_manifests_templates:
|
||||||
- custom-cilium-helmchart.yaml
|
- custom-cilium-helmchart.yaml
|
||||||
- kube-vip-ds.yaml
|
- kube-vip-ds.yaml
|
||||||
- kube-vip-rbac.yaml
|
- kube-vip-rbac.yaml
|
||||||
|
k3s_use_unsupported_config: true
|
||||||
@@ -1,27 +1,6 @@
|
|||||||
---
|
---
|
||||||
# https://rancher.com/docs/k3s/latest/en/installation/install-options/server-config/
|
|
||||||
# https://github.com/PyratLabs/ansible-role-k3s
|
|
||||||
k3s_control_node: true
|
k3s_control_node: true
|
||||||
k3s_server:
|
k3s_server:
|
||||||
#% if bootstrap_advanced_flags.dual_stack_ipv4_first|default(false) %#
|
|
||||||
node-ip: "{{ ansible_host }},{{ ansible_default_ipv6.address }}"
|
|
||||||
#% else %#
|
|
||||||
node-ip: "{{ ansible_host }}"
|
|
||||||
#% endif %#
|
|
||||||
tls-san:
|
|
||||||
- "#{ bootstrap_kube_api_addr }#"
|
|
||||||
#% for item in bootstrap_kube_additional_tls_sans %#
|
|
||||||
- "{{ item }}"
|
|
||||||
#% endfor %#
|
|
||||||
docker: false
|
|
||||||
flannel-backend: "none" # quote
|
|
||||||
disable: ["flannel", "local-storage", "metrics-server", "servicelb", "traefik"]
|
|
||||||
disable-network-policy: true
|
|
||||||
disable-cloud-controller: true
|
|
||||||
disable-kube-proxy: true
|
|
||||||
write-kubeconfig-mode: "644"
|
|
||||||
pause-image: registry.k8s.io/pause:3.9
|
|
||||||
secrets-encryption: true
|
|
||||||
#% if bootstrap_advanced_flags.dual_stack_ipv4_first|default(false) %#
|
#% if bootstrap_advanced_flags.dual_stack_ipv4_first|default(false) %#
|
||||||
cluster-cidr: "#{ bootstrap_cluster_cidr.split(',')[0] }#,#{ bootstrap_cluster_cidr.split(',')[1] }#"
|
cluster-cidr: "#{ bootstrap_cluster_cidr.split(',')[0] }#,#{ bootstrap_cluster_cidr.split(',')[1] }#"
|
||||||
service-cidr: "#{ bootstrap_service_cidr.split(',')[0] }#,#{ bootstrap_service_cidr.split(',')[1] }#"
|
service-cidr: "#{ bootstrap_service_cidr.split(',')[0] }#,#{ bootstrap_service_cidr.split(',')[1] }#"
|
||||||
@@ -29,13 +8,32 @@ k3s_server:
|
|||||||
cluster-cidr: "#{ bootstrap_cluster_cidr }#"
|
cluster-cidr: "#{ bootstrap_cluster_cidr }#"
|
||||||
service-cidr: "#{ bootstrap_service_cidr }#"
|
service-cidr: "#{ bootstrap_service_cidr }#"
|
||||||
#% endif %#
|
#% endif %#
|
||||||
etcd-expose-metrics: true # Required to monitor etcd with kube-prometheus-stack
|
disable: ["flannel", "local-storage", "metrics-server", "servicelb", "traefik"]
|
||||||
kube-controller-manager-arg:
|
disable-cloud-controller: true
|
||||||
- "bind-address=0.0.0.0" # Required to monitor kube-controller-manager with kube-prometheus-stack
|
disable-kube-proxy: true
|
||||||
kube-scheduler-arg:
|
disable-network-policy: true
|
||||||
- "bind-address=0.0.0.0" # Required to monitor kube-scheduler with kube-prometheus-stack
|
docker: false
|
||||||
|
etcd-expose-metrics: true
|
||||||
|
flannel-backend: "none"
|
||||||
kube-apiserver-arg:
|
kube-apiserver-arg:
|
||||||
- "anonymous-auth=true" # Required for external LB health-checks
|
- "anonymous-auth=true"
|
||||||
|
kube-controller-manager-arg:
|
||||||
|
- "bind-address=0.0.0.0"
|
||||||
|
kube-scheduler-arg:
|
||||||
|
- "bind-address=0.0.0.0"
|
||||||
kubelet-arg:
|
kubelet-arg:
|
||||||
- "image-gc-high-threshold=55"
|
- "image-gc-high-threshold=55"
|
||||||
- "image-gc-low-threshold=50"
|
- "image-gc-low-threshold=50"
|
||||||
|
#% if bootstrap_advanced_flags.dual_stack_ipv4_first|default(false) %#
|
||||||
|
node-ip: "{{ ansible_host }},{{ ansible_default_ipv6.address }}"
|
||||||
|
#% else %#
|
||||||
|
node-ip: "{{ ansible_host }}"
|
||||||
|
#% endif %#
|
||||||
|
pause-image: registry.k8s.io/pause:3.9
|
||||||
|
secrets-encryption: true
|
||||||
|
tls-san:
|
||||||
|
- "#{ bootstrap_kube_api_addr }#"
|
||||||
|
#% for item in bootstrap_kube_additional_tls_sans %#
|
||||||
|
- "{{ item }}"
|
||||||
|
#% endfor %#
|
||||||
|
write-kubeconfig-mode: "644"
|
||||||
@@ -1,14 +1,12 @@
|
|||||||
---
|
---
|
||||||
# https://rancher.com/docs/k3s/latest/en/installation/install-options/agent-config/
|
|
||||||
# https://github.com/PyratLabs/ansible-role-k3s
|
|
||||||
k3s_control_node: false
|
k3s_control_node: false
|
||||||
k3s_agent:
|
k3s_agent:
|
||||||
|
kubelet-arg:
|
||||||
|
- "image-gc-high-threshold=55"
|
||||||
|
- "image-gc-low-threshold=50"
|
||||||
#% if bootstrap_advanced_flags.dual_stack_ipv4_first|default(false) %#
|
#% if bootstrap_advanced_flags.dual_stack_ipv4_first|default(false) %#
|
||||||
node-ip: "{{ ansible_host }},{{ ansible_default_ipv6.address }}"
|
node-ip: "{{ ansible_host }},{{ ansible_default_ipv6.address }}"
|
||||||
#% else %#
|
#% else %#
|
||||||
node-ip: "{{ ansible_host }}"
|
node-ip: "{{ ansible_host }}"
|
||||||
#% endif %#
|
#% endif %#
|
||||||
pause-image: registry.k8s.io/pause:3.9
|
pause-image: registry.k8s.io/pause:3.9
|
||||||
kubelet-arg:
|
|
||||||
- "image-gc-high-threshold=55"
|
|
||||||
- "image-gc-low-threshold=50"
|
|
||||||
@@ -5,15 +5,15 @@ kubernetes:
|
|||||||
hosts:
|
hosts:
|
||||||
#% for item in bootstrap_nodes.master %#
|
#% for item in bootstrap_nodes.master %#
|
||||||
"#{ item.name }#":
|
"#{ item.name }#":
|
||||||
ansible_user: "#{ item.username }#"
|
ansible_user: "#{ item.ssh.username }#"
|
||||||
ansible_host: "#{ item.address }#"
|
ansible_host: "#{ item.address }#"
|
||||||
#% endfor %#
|
#% endfor %#
|
||||||
#% if bootstrap_nodes.worker | length > 0 %#
|
#% if bootstrap_nodes.worker|length > 0 %#
|
||||||
worker:
|
worker:
|
||||||
hosts:
|
hosts:
|
||||||
#% for item in bootstrap_nodes.worker %#
|
#% for item in bootstrap_nodes.worker %#
|
||||||
"#{ item.name }#":
|
"#{ item.name }#":
|
||||||
ansible_user: "#{ item.username }#"
|
ansible_user: "#{ item.ssh.username }#"
|
||||||
ansible_host: "#{ item.address }#"
|
ansible_host: "#{ item.address }#"
|
||||||
#% endfor %#
|
#% endfor %#
|
||||||
#% endif %#
|
#% endif %#
|
||||||
@@ -30,10 +30,6 @@
|
|||||||
|
|
||||||
- name: User Configuration
|
- name: User Configuration
|
||||||
block:
|
block:
|
||||||
- name: User Configuration | SSH keys
|
|
||||||
ansible.posix.authorized_key:
|
|
||||||
user: "{{ ansible_user }}"
|
|
||||||
key: "https://github.com/#{ bootstrap_github_username }#.keys"
|
|
||||||
- name: User Configuration | Silence login
|
- name: User Configuration | Silence login
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
dest: "{{ '/home/' + ansible_user if ansible_user != 'root' else '/root' }}/.hushlogin"
|
dest: "{{ '/home/' + ansible_user if ansible_user != 'root' else '/root' }}/.hushlogin"
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ spec:
|
|||||||
- role: controller+worker
|
- role: controller+worker
|
||||||
ssh:
|
ssh:
|
||||||
address: "#{ item.address }#"
|
address: "#{ item.address }#"
|
||||||
user: "#{ item.username }#"
|
user: "#{ item.ssh.username }#"
|
||||||
installFlags:
|
installFlags:
|
||||||
- --disable-components=metrics-server
|
- --disable-components=metrics-server
|
||||||
- --no-taints
|
- --no-taints
|
||||||
@@ -24,12 +24,11 @@ spec:
|
|||||||
after:
|
after:
|
||||||
- curl -sfL https://raw.githubusercontent.com/#{ bootstrap_github_username }#/#{ bootstrap_github_repository_name }#/#{ bootstrap_advanced_flags.github_repository_branch|default('main', true) }#/kubernetes/k0s/resources/reset-system.sh | bash -s -
|
- curl -sfL https://raw.githubusercontent.com/#{ bootstrap_github_username }#/#{ bootstrap_github_repository_name }#/#{ bootstrap_advanced_flags.github_repository_branch|default('main', true) }#/kubernetes/k0s/resources/reset-system.sh | bash -s -
|
||||||
#% endfor %#
|
#% endfor %#
|
||||||
#% if bootstrap_nodes.worker | length > 0 %#
|
|
||||||
#% for item in bootstrap_nodes.worker %#
|
#% for item in bootstrap_nodes.worker %#
|
||||||
- role: worker
|
- role: worker
|
||||||
ssh:
|
ssh:
|
||||||
address: "#{ item.address }#"
|
address: "#{ item.address }#"
|
||||||
user: "#{ item.username }#"
|
user: "#{ item.ssh.username }#"
|
||||||
hooks:
|
hooks:
|
||||||
apply:
|
apply:
|
||||||
before:
|
before:
|
||||||
@@ -40,7 +39,6 @@ spec:
|
|||||||
after:
|
after:
|
||||||
- curl -sfL https://raw.githubusercontent.com/#{ bootstrap_github_username }#/#{ bootstrap_github_repository_name }#/#{ bootstrap_advanced_flags.github_repository_branch|default('main', true) }#/kubernetes/k0s/resources/reset-system.sh | bash -s -
|
- curl -sfL https://raw.githubusercontent.com/#{ bootstrap_github_username }#/#{ bootstrap_github_repository_name }#/#{ bootstrap_advanced_flags.github_repository_branch|default('main', true) }#/kubernetes/k0s/resources/reset-system.sh | bash -s -
|
||||||
#% endfor %#
|
#% endfor %#
|
||||||
#% endif %#
|
|
||||||
k0s:
|
k0s:
|
||||||
# renovate: datasource=github-releases depName=k0sproject/k0s
|
# renovate: datasource=github-releases depName=k0sproject/k0s
|
||||||
version: v1.28.6+k0s.0
|
version: v1.28.6+k0s.0
|
||||||
@@ -51,16 +49,14 @@ spec:
|
|||||||
enabled: false
|
enabled: false
|
||||||
controllerManager:
|
controllerManager:
|
||||||
extraArgs:
|
extraArgs:
|
||||||
# Required to monitor kube-controller-manager with kube-prometheus-stack
|
|
||||||
bind-address: "0.0.0.0"
|
bind-address: "0.0.0.0"
|
||||||
scheduler:
|
scheduler:
|
||||||
extraArgs:
|
extraArgs:
|
||||||
# Required to monitor kube-scheduler with kube-prometheus-stack
|
|
||||||
bind-address: "0.0.0.0"
|
bind-address: "0.0.0.0"
|
||||||
storage:
|
storage:
|
||||||
etcd:
|
etcd:
|
||||||
extraArgs:
|
extraArgs:
|
||||||
listen-metrics-urls: http://0.0.0.0:2381 # Required to monitor etcd with kube-prometheus-stack
|
listen-metrics-urls: http://0.0.0.0:2381
|
||||||
api:
|
api:
|
||||||
sans:
|
sans:
|
||||||
#% if bootstrap_kube_api_addr %#
|
#% if bootstrap_kube_api_addr %#
|
||||||
|
|||||||
@@ -25,12 +25,18 @@ nodes:
|
|||||||
#% for item in bootstrap_nodes.master %#
|
#% for item in bootstrap_nodes.master %#
|
||||||
- hostname: "#{ item.name }#"
|
- hostname: "#{ item.name }#"
|
||||||
ipAddress: "#{ item.address }#"
|
ipAddress: "#{ item.address }#"
|
||||||
|
#% if item.talos.disk_device.startswith('/') %#
|
||||||
|
installDisk: "#{ item.talos.disk_device }#"
|
||||||
|
#% else %#
|
||||||
installDiskSelector:
|
installDiskSelector:
|
||||||
serial: "#{ item.diskSerial }#"
|
serial: "#{ item.talos.disk_device }#"
|
||||||
|
#% endif %#
|
||||||
controlPlane: true
|
controlPlane: true
|
||||||
networkInterfaces:
|
networkInterfaces:
|
||||||
- interface: eth0
|
- interface: eth0
|
||||||
dhcp: false
|
dhcp: false
|
||||||
|
addresses:
|
||||||
|
- "#{ item.address }#/#{ bootstrap_node_cidr.split('/') | last }#"
|
||||||
mtu: 1500
|
mtu: 1500
|
||||||
routes:
|
routes:
|
||||||
- network: 0.0.0.0/0
|
- network: 0.0.0.0/0
|
||||||
@@ -38,22 +44,26 @@ nodes:
|
|||||||
vip:
|
vip:
|
||||||
ip: "#{ bootstrap_kube_api_addr }#"
|
ip: "#{ bootstrap_kube_api_addr }#"
|
||||||
#% endfor %#
|
#% endfor %#
|
||||||
#% if bootstrap_nodes.worker | length > 0 %#
|
|
||||||
#% for item in bootstrap_nodes.worker %#
|
#% for item in bootstrap_nodes.worker %#
|
||||||
- hostname: "#{ item.name }#"
|
- hostname: "#{ item.name }#"
|
||||||
ipAddress: "#{ item.address }#"
|
ipAddress: "#{ item.address }#"
|
||||||
|
#% if item.talos.disk_device.startswith('/') %#
|
||||||
|
installDisk: "#{ item.talos.disk_device }#"
|
||||||
|
#% else %#
|
||||||
installDiskSelector:
|
installDiskSelector:
|
||||||
serial: "#{ item.diskSerial }#"
|
serial: "#{ item.talos.disk_device }#"
|
||||||
|
#% endif %#
|
||||||
controlPlane: false
|
controlPlane: false
|
||||||
networkInterfaces:
|
networkInterfaces:
|
||||||
- interface: eth0
|
- interface: eth0
|
||||||
dhcp: false
|
dhcp: false
|
||||||
|
addresses:
|
||||||
|
- "#{ item.address }#/#{ bootstrap_node_cidr.split('/') | last }#"
|
||||||
mtu: 1500
|
mtu: 1500
|
||||||
routes:
|
routes:
|
||||||
- network: 0.0.0.0/0
|
- network: 0.0.0.0/0
|
||||||
gateway: "#{ bootstrap_node_cidr | nthhost(1) }#"
|
gateway: "#{ bootstrap_node_cidr | nthhost(1) }#"
|
||||||
#% endfor %#
|
#% endfor %#
|
||||||
#% endif %#
|
|
||||||
|
|
||||||
controlPlane:
|
controlPlane:
|
||||||
patches:
|
patches:
|
||||||
|
|||||||
@@ -74,16 +74,20 @@ bootstrap_service_cidr: 10.43.0.0/16
|
|||||||
bootstrap_nodes:
|
bootstrap_nodes:
|
||||||
# Use only 1, 3 or more odd master nodes, recommended is 3
|
# Use only 1, 3 or more odd master nodes, recommended is 3
|
||||||
master:
|
master:
|
||||||
# - name: # name or hostname of the master node (must match [a-z0-9-\.]+)
|
# - name: # name or hostname of the node (must match [a-z0-9-\.]+)
|
||||||
# address: # ip address of the master node
|
# address: # ip address of the node
|
||||||
# username: # ssh username of the master node
|
# ssh:
|
||||||
# diskSerial: # (Required: Talos) Serial number of Disk for this master node
|
# username: # (Required: k3s/k0s) SSH username of the node
|
||||||
|
# talos:
|
||||||
|
# disk_device: # (Required: Talos) Device Path or Serial number of Disk for this node
|
||||||
# ...
|
# ...
|
||||||
worker: # set to [] or omit if no workers are needed
|
worker: # set to [] or omit if no workers are needed
|
||||||
# - name: # name or hostname of the worker node (must match [a-z0-9-\.]+)
|
# - name: # name or hostname of the node (must match [a-z0-9-\.]+)
|
||||||
# address: # ip address of the worker node
|
# address: # ip address of the node
|
||||||
# username: # ssh username of the worker node
|
# ssh:
|
||||||
# diskSerial: # (Required: Talos) Serial number of Disk for this worker node
|
# username: # (Required: k3s/k0s) SSH username of the node
|
||||||
|
# talos:
|
||||||
|
# disk_device: # (Required: Talos) Device Path or Serial number of Disk for this node
|
||||||
# ...
|
# ...
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|||||||
Reference in new issue
Block a user