#% 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 files: - name: containerd-config src: resources/containerd/ perm: 0644 user: root group: root #% endif %# #% if loop.first %# hooks: &hooks #% if item.role | default('') == 'controller+worker' %# apply: before: - sudo mv ~/unprivileged-ports.toml /etc/k0s/containerd.d/unprivileged-ports.toml #% if spegel.enabled | default(false) %# - sudo mv ~/spegel.toml /etc/k0s/containerd.d/spegel.toml #% endif %# #% endif %# reset: before: - sudo ip link delete cilium_host > /dev/null 2>&1 || true - sudo ip link delete cilium_net > /dev/null 2>&1 || true - sudo ip link delete cilium_vxlan > /dev/null 2>&1 || true - sudo iptables -t nat -F - sudo iptables -t mangle -F - sudo iptables -t filter -F - sudo iptables -t raw -F - sudo iptables -X - sudo ip6tables -t nat -F - sudo ip6tables -t mangle -F - sudo ip6tables -t filter -F - sudo ip6tables -t raw -F - sudo ip6tables -X - sudo rm -rf /etc/cni/net.d after: - sudo shutdown -r now #% else %# hooks: *hooks #% endif %# #% endfor %# #% if bootstrap_nodes.worker | default([]) | length > 0 %# #% for item in bootstrap_nodes.worker %# - role: worker ssh: address: "#{ item.address }#" user: "#{ item.username }#" files: - name: containerd-config src: resources/containerd/ perm: 0644 user: root group: root hooks: *hooks #% 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" storage: etcd: extraArgs: listen-metrics-urls: http://0.0.0.0:2381 # Required to monitor etcd with kube-prometheus-stack api: network: podCIDR: "#{ bootstrap_cluster_cidr.split(',')[0] }#" serviceCIDR: "#{ bootstrap_service_cidr.split(',')[0] }#" sans: - "#{ bootstrap_kube_api_addr }#" #% if bootstrap_kube_api_hostname | default('') %# - "#{ bootstrap_kube_api_hostname }#" #% endif %# #% for item in bootstrap_nodes.master %# #% if item.address != bootstrap_kube_api_addr %# - "#{ item.address }#" #% endif %# #% if (not bootstrap_kube_api_hostname | default('')) or (item.name != bootstrap_kube_api_hostname | default('')) %# - "#{ item.name }#" #% endif %# #% endfor %# network: 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=github-releases depName=cilium/cilium version: "1.14.5" namespace: kube-system values: |2 #% filter indent(width=18, first=True) %# #% include 'partials/cilium-values-init.partial.yaml.j2' %# #% endfilter %# #% endif %#