132 lines
4.6 KiB
YAML
132 lines
4.6 KiB
YAML
{% if bootstrap_distribution == 'k0s' %}
|
|
---
|
|
apiVersion: k0sctl.k0sproject.io/v1beta1
|
|
kind: Cluster
|
|
metadata:
|
|
name: k0s-cluster
|
|
spec:
|
|
hosts:
|
|
{% for item in bootstrap_nodes.master %}
|
|
- role: {{ item.role | default('controller+worker') }}
|
|
ssh:
|
|
address: {{ item.address }}
|
|
user: {{ item.username }}
|
|
installFlags:
|
|
- --disable-components=metrics-server
|
|
{% if item.role | default('') == 'controller+worker' %}
|
|
- --no-taints
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% if bootstrap_nodes.worker | default([]) | length > 0 %}
|
|
{% for item in bootstrap_nodes.worker %}
|
|
- role: worker
|
|
ssh:
|
|
address: {{ item.address }}
|
|
user: {{ item.username }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
k0s:
|
|
# renovate: datasource=github-releases depName=k0sproject/k0s
|
|
version: "v1.28.5+k0s.0"
|
|
dynamicConfig: false
|
|
config:
|
|
spec:
|
|
telemetry:
|
|
enabled: false
|
|
controllerManager:
|
|
extraArgs:
|
|
# Required to monitor kube-controller-manager with kube-prometheus-stack
|
|
bind-address: "0.0.0.0"
|
|
scheduler:
|
|
extraArgs:
|
|
# Required to monitor kube-scheduler with kube-prometheus-stack
|
|
bind-address: "0.0.0.0"
|
|
api:
|
|
sans:
|
|
- {{ bootstrap_kube_api_addr }}
|
|
{% if bootstrap_kubeapi_hostname is defined %}
|
|
- {{ bootstrap_kubeapi_hostname }}
|
|
{% endif %}
|
|
{% for item in bootstrap_nodes.master %}
|
|
{% if item.address != bootstrap_kube_api_addr %}
|
|
- {{ item.address }}
|
|
{% endif %}
|
|
{% if (bootstrap_kubeapi_hostname is not defined) or (item.name != bootstrap_kubeapi_hostname) %}
|
|
- {{ item.name }}
|
|
{% endif %}
|
|
{% endfor %}
|
|
extensions:
|
|
helm:
|
|
repositories:
|
|
- name: cilium
|
|
url: https://helm.cilium.io
|
|
charts:
|
|
- name: cilium
|
|
chartname: cilium/cilium
|
|
# renovate: datasource=github-releases depName=cilium/cilium
|
|
version: "1.14.5"
|
|
namespace: kube-system
|
|
values: |2
|
|
autoDirectNodeRoutes: true
|
|
bpf:
|
|
masquerade: true
|
|
bgp:
|
|
enabled: false
|
|
cluster:
|
|
name: home-cluster
|
|
id: 1
|
|
containerRuntime:
|
|
integration: containerd
|
|
socketPath: /var/run/k0s/containerd.sock
|
|
endpointRoutes:
|
|
enabled: true
|
|
hubble:
|
|
enabled: false
|
|
ipam:
|
|
mode: kubernetes
|
|
ipv4NativeRoutingCIDR: "{{ bootstrap_cluster_cidr }}"
|
|
{% if bootstrap_ipv6_enabled | default(false) %}
|
|
ipv6NativeRoutingCIDR: "{{ bootstrap_cluster_cidr_v6 }}"
|
|
ipv6:
|
|
enabled: true
|
|
{% endif %}
|
|
{% if bootstrap_nodes.master | length == 1 and not bootstrap_kube_api_addr %}
|
|
k8sServiceHost: {{ bootstrap_nodes.master[0].address }}
|
|
{% else %}
|
|
k8sServiceHost: {{ bootstrap_kube_api_addr }}
|
|
{% endif %}
|
|
k8sServicePort: 6443
|
|
kubeProxyReplacement: true
|
|
kubeProxyReplacementHealthzBindAddr: 0.0.0.0:10256
|
|
l2announcements:
|
|
{% if bootstrap_ipv6_enabled | default(false) %}
|
|
enabled: false
|
|
{% else %}
|
|
enabled: true
|
|
# https://github.com/cilium/cilium/issues/26586
|
|
leaseDuration: 120s
|
|
leaseRenewDeadline: 60s
|
|
leaseRetryPeriod: 1s
|
|
{% endif %}
|
|
loadBalancer:
|
|
algorithm: maglev
|
|
mode: {{ bootstrap_cilium_loadbalancer_mode | default('dsr', true) }}
|
|
localRedirectPolicy: true
|
|
operator:
|
|
replicas: 1
|
|
rollOutPods: true
|
|
rollOutCiliumPods: true
|
|
routingMode: native
|
|
securityContext:
|
|
privileged: true
|
|
network:
|
|
kubeProxy:
|
|
disabled: true
|
|
{% if bootstrap_nodes.master | length > 1 %}
|
|
nodeLocalLoadBalancing:
|
|
enabled: true
|
|
type: EnvoyProxy
|
|
{% endif %}
|
|
provider: custom
|
|
{% endif %}
|