mirror of
https://github.com/dredx/prole.git
synced 2026-09-27 04:24:31 +00:00
- k3s: render server-only config keys only for servers; add regression test; make guardrail test non-sudo - k3s/site: add post-provision node labeling tasks + playbook tier; extend inventory node label mapping - registry: default namespace to common-services and skip redundant image pushes by probing registry manifests (installer + init scripts)
116 lines
3.8 KiB
Django/Jinja
116 lines
3.8 KiB
Django/Jinja
{% set _k3s_server_line_needed = (k3s_role != 'server') or ((k3s_role == 'server') and (not (k3s_cluster_init | bool)) and (k3s_server_url is defined) and k3s_server_url) %}
|
|
{% if k3s_role == 'server' and k3s_cluster_init | bool %}
|
|
cluster-init: true
|
|
{% endif %}
|
|
{% if _k3s_server_line_needed %}
|
|
server: "{{ k3s_server_url }}"
|
|
{% endif %}
|
|
{% set _k3s_effective_token = k3s_token %}
|
|
{% if k3s_role == 'server' and (k3s_server_token is defined) and k3s_server_token %}
|
|
{% set _k3s_effective_token = k3s_server_token %}
|
|
{% endif %}
|
|
{% if _k3s_effective_token %}
|
|
token: "{{ _k3s_effective_token }}"
|
|
{% endif %}
|
|
{% if k3s_role == 'server' and k3s_datastore_endpoint is defined and k3s_datastore_endpoint | length %}
|
|
datastore-endpoint: "{{ k3s_datastore_endpoint }}"
|
|
{% if k3s_datastore_cafile is defined and k3s_datastore_cafile | length %}
|
|
datastore-cafile: "{{ k3s_datastore_cafile }}"
|
|
{% endif %}
|
|
{% if k3s_datastore_certfile is defined and k3s_datastore_certfile | length %}
|
|
datastore-certfile: "{{ k3s_datastore_certfile }}"
|
|
{% endif %}
|
|
{% if k3s_datastore_keyfile is defined and k3s_datastore_keyfile | length %}
|
|
datastore-keyfile: "{{ k3s_datastore_keyfile }}"
|
|
{% endif %}
|
|
{% 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_role == 'server' and 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_role == 'server' and 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_service_node_labels | length %}
|
|
node-label:
|
|
{% for item in k3s_service_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_role == 'server' and 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_role == 'server' and 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_role == 'server' and 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_role == 'server' and 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_role == 'server' and 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 %}
|