Files
home-cluster/bootstrap/templates/kubernetes/k0s/k0sctl.yaml.j2
T

98 lines
2.8 KiB
YAML

---
apiVersion: k0sctl.k0sproject.io/v1beta1
kind: Cluster
metadata:
name: home-kubernetes
spec:
hosts:
{% for item in nodes.inventory %}
{% if item.controller %}
- role: controller+worker
{% else %}
- role: worker
{% endif %}
ssh:
address: "{{ item.address }}"
user: "{{ item.ssh_username }}"
installFlags:
{% if item.controller %}
- --disable-components=metrics-server
- --no-taints
{% endif %}
- --kubelet-extra-args="--image-gc-low-threshold=50 --image-gc-high-threshold=60"
files:
- name: bootstrap-scripts
src: scripts
hooks:
apply:
before:
- bash ~/apply-system.sh "{{ item.name }}"
{% if item.controller %}
- bash ~/apply-kube-vip.sh
{% endif %}
reset:
before:
- bash ~/reset-cilium.sh
after:
- bash ~/reset-system.sh
{% endfor %}
k0s:
# renovate: datasource=github-releases depName=k0sproject/k0s
version: v1.29.1+k0s.0
config:
apiVersion: k0s.k0sproject.io/v1beta1
kind: ClusterConfig
metadata:
name: home-kubernetes
spec:
telemetry:
enabled: false
controllerManager:
extraArgs:
bind-address: "0.0.0.0"
scheduler:
extraArgs:
bind-address: "0.0.0.0"
storage:
etcd:
extraArgs:
listen-metrics-urls: http://0.0.0.0:2381
api:
sans:
{% if cluster.endpoint_vip %}
- "{{ cluster.endpoint_vip }}"
{% endif %}
{% for item in cluster.tls_sans %}
- "{{ item }}"
{% endfor %}
{% for item in controllers %}
{% if item.controller %}
- "{{ item.address }}"
- "{{ item.name }}"
{% endif %}
{% endfor %}
network:
podCIDR: "{{ cluster.pod_network.split(',')[0] }}"
serviceCIDR: "{{ cluster.service_network.split(',')[0] }}"
provider: custom
kubeProxy:
disabled: true
nodeLocalLoadBalancing:
enabled: true
type: EnvoyProxy
extensions:
helm:
repositories:
- name: cilium
url: https://helm.cilium.io
charts:
- name: cilium
chartname: cilium/cilium
# renovate: datasource=helm depName=cilium repository=https://helm.cilium.io
version: 1.15.0
namespace: kube-system
values: |2
{% filter indent(width=18, first=True) %}
{% include 'partials/cilium-values-init.partial.yaml.j2' %}
{% endfilter %}