prole/infrastructure/roles/k3s/templates/config.yaml.j2
chrisfu 60820b2b7c Checkpoint: ArgoCD IO load distribution and K3s configuration updates
ArgoCD IO load distribution: Updated k8s/argocd/install.yaml to use hostPath volumes for application-controller (/prole/d001), redis (/prole/d002), and repo-server (/prole/d003). Updated Ansible configure task to create hostPath directories on myrddin.prole.org.

K3s configuration and testing: Added test playbooks for kubeconfig rewriting and argument validation. Updated K3s install, configure, and image import tasks. Configured required mounts and host-specific variables for myrddin.prole.org.

Miscellaneous: Updated conf/prole.cfg with K3S_TOKEN. Bumped prole-db version and updated recovery manifest templates. Minor UI adjustments in cluster screen.
Co-authored-by: Junie <junie@jetbrains.com>
2026-03-04 12:23:15 -08:00

102 lines
2.7 KiB
Django/Jinja

{% if k3s_role == 'server' %}
{% if k3s_cluster_init | bool %}
cluster-init: true
{% elif k3s_server_url %}
server: "{{ k3s_server_url }}"
{% endif %}
{% else %}
server: "{{ k3s_server_url }}"
{% endif %}
{% if k3s_token %}
token: "{{ k3s_token }}"
{% endif %}
{% if k3s_role == 'server' and k3s_write_kubeconfig_mode %}
write-kubeconfig-mode: "{{ k3s_write_kubeconfig_mode }}"
{% endif %}
{% if k3s_role == 'server' and k3s_kubeconfig_group %}
write-kubeconfig-group: "{{ k3s_kubeconfig_group }}"
{% endif %}
{% if k3s_tls_sans | length %}
tls-san:
{% for item in k3s_tls_sans %}
- "{{ item }}"
{% endfor %}
{% endif %}
{% if k3s_role == 'server' and k3s_disable | length %}
disable:
{% for item in k3s_disable %}
- "{{ item }}"
{% endfor %}
{% endif %}
{% if k3s_disable_agent | bool %}
disable-agent: true
{% endif %}
{% if k3s_data_dir is defined and k3s_data_dir %}
data-dir: "{{ k3s_data_dir }}"
{% endif %}
{% if k3s_node_labels | length %}
node-label:
{% for item in k3s_node_labels %}
- "{{ item }}"
{% endfor %}
{% endif %}
{% if k3s_node_taints | length %}
node-taint:
{% for item in k3s_node_taints %}
- "{{ item }}"
{% endfor %}
{% endif %}
{# --- kube-apiserver tuning (request/etcd timeouts) --- #}
{% if k3s_kube_apiserver_args is defined and k3s_kube_apiserver_args | length %}
kube-apiserver-arg:
{% for item in k3s_kube_apiserver_args %}
- "{{ item }}"
{% endfor %}
{% endif %}
{# --- Control-plane leader election tuning (forgiving leases) --- #}
{% if k3s_kube_controller_manager_args is defined and k3s_kube_controller_manager_args | length %}
kube-controller-manager-arg:
{% for item in k3s_kube_controller_manager_args %}
- "{{ item }}"
{% endfor %}
{% endif %}
{% if k3s_kube_scheduler_args is defined and k3s_kube_scheduler_args | length %}
kube-scheduler-arg:
{% for item in k3s_kube_scheduler_args %}
- "{{ item }}"
{% endfor %}
{% endif %}
{% if k3s_cloud_controller_manager_args is defined and k3s_cloud_controller_manager_args | length %}
kube-cloud-controller-manager-arg:
{% for item in k3s_cloud_controller_manager_args %}
- "{{ item }}"
{% endfor %}
{% endif %}
{# --- Embedded etcd tuning (optional) --- #}
{% if k3s_etcd_args is defined and k3s_etcd_args | length %}
etcd-arg:
{% for item in k3s_etcd_args %}
- "{{ item }}"
{% endfor %}
{% endif %}
{# --- kubelet tuning (node housekeeping/heartbeats) --- #}
{% if k3s_kubelet_args is defined and k3s_kubelet_args | length %}
kubelet-arg:
{% for item in k3s_kubelet_args %}
- "{{ item }}"
{% endfor %}
{% endif %}
{% if k3s_node_ip is defined and k3s_node_ip %}
node-ip: "{{ k3s_node_ip }}"
{% endif %}
{% if k3s_flannel_iface is defined and k3s_flannel_iface %}
flannel-iface: "{{ k3s_flannel_iface }}"
{% endif %}