You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

179 lines
6.4 KiB

  1. apiVersion: kubelet.config.k8s.io/v1beta1
  2. kind: KubeletConfiguration
  3. nodeStatusUpdateFrequency: "{{ kubelet_status_update_frequency }}"
  4. failSwapOn: {{ kubelet_fail_swap_on }}
  5. authentication:
  6. anonymous:
  7. enabled: false
  8. webhook:
  9. enabled: {{ kubelet_authentication_token_webhook }}
  10. x509:
  11. clientCAFile: {{ kube_cert_dir }}/ca.crt
  12. authorization:
  13. {% if kubelet_authorization_mode_webhook %}
  14. mode: Webhook
  15. {% else %}
  16. mode: AlwaysAllow
  17. {% endif %}
  18. {% if kubelet_enforce_node_allocatable is defined and kubelet_enforce_node_allocatable != "\"\"" %}
  19. {% set kubelet_enforce_node_allocatable_list = kubelet_enforce_node_allocatable.split(",") %}
  20. enforceNodeAllocatable:
  21. {% for item in kubelet_enforce_node_allocatable_list %}
  22. - {{ item }}
  23. {% endfor %}
  24. {% endif %}
  25. staticPodPath: {{ kube_manifest_dir }}
  26. cgroupDriver: {{ kubelet_cgroup_driver | default('systemd') }}
  27. containerLogMaxFiles: {{ kubelet_logfiles_max_nr }}
  28. containerLogMaxSize: {{ kubelet_logfiles_max_size }}
  29. containerRuntimeEndpoint : {{ cri_socket }}
  30. maxPods: {{ kubelet_max_pods }}
  31. podPidsLimit: {{ kubelet_pod_pids_limit }}
  32. address: {{ kubelet_bind_address }}
  33. readOnlyPort: {{ kube_read_only_port }}
  34. healthzPort: {{ kubelet_healthz_port }}
  35. healthzBindAddress: {{ kubelet_healthz_bind_address }}
  36. kubeletCgroups: {{ kubelet_kubelet_cgroups }}
  37. clusterDomain: {{ dns_domain }}
  38. {% if kubelet_protect_kernel_defaults | bool %}
  39. protectKernelDefaults: true
  40. {% endif %}
  41. {% if kubelet_rotate_certificates | bool %}
  42. rotateCertificates: true
  43. {% endif %}
  44. {% if kubelet_rotate_server_certificates | bool %}
  45. serverTLSBootstrap: true
  46. {% endif %}
  47. {# DNS settings for kubelet #}
  48. {% if enable_nodelocaldns %}
  49. {% set kubelet_cluster_dns = [nodelocaldns_ip] %}
  50. {% elif dns_mode in ['coredns'] %}
  51. {% set kubelet_cluster_dns = [skydns_server] %}
  52. {% elif dns_mode == 'coredns_dual' %}
  53. {% set kubelet_cluster_dns = [skydns_server,skydns_server_secondary] %}
  54. {% elif dns_mode == 'manual' %}
  55. {% set kubelet_cluster_dns = [manual_dns_server] %}
  56. {% else %}
  57. {% set kubelet_cluster_dns = [] %}
  58. {% endif %}
  59. clusterDNS:
  60. {% for dns_address in kubelet_cluster_dns %}
  61. - {{ dns_address }}
  62. {% endfor %}
  63. {# Node reserved CPU/memory #}
  64. {% if kube_reserved | bool %}
  65. kubeReservedCgroup: {{ kube_reserved_cgroups }}
  66. {% endif %}
  67. kubeReserved:
  68. {% if 'kube_control_plane' in group_names %}
  69. cpu: "{{ kube_master_cpu_reserved }}"
  70. memory: {{ kube_master_memory_reserved }}
  71. {% if kube_master_ephemeral_storage_reserved is defined %}
  72. ephemeral-storage: {{ kube_master_ephemeral_storage_reserved }}
  73. {% endif %}
  74. {% if kube_master_pid_reserved is defined %}
  75. pid: "{{ kube_master_pid_reserved }}"
  76. {% endif %}
  77. {% else %}
  78. cpu: "{{ kube_cpu_reserved }}"
  79. memory: {{ kube_memory_reserved }}
  80. {% if kube_ephemeral_storage_reserved is defined %}
  81. ephemeral-storage: {{ kube_ephemeral_storage_reserved }}
  82. {% endif %}
  83. {% if kube_pid_reserved is defined %}
  84. pid: "{{ kube_pid_reserved }}"
  85. {% endif %}
  86. {% endif %}
  87. {% if system_reserved | bool %}
  88. systemReservedCgroup: {{ system_reserved_cgroups }}
  89. systemReserved:
  90. {% if 'kube_control_plane' in group_names %}
  91. cpu: "{{ system_master_cpu_reserved }}"
  92. memory: {{ system_master_memory_reserved }}
  93. {% if system_master_ephemeral_storage_reserved is defined %}
  94. ephemeral-storage: {{ system_master_ephemeral_storage_reserved }}
  95. {% endif %}
  96. {% if system_master_pid_reserved is defined %}
  97. pid: "{{ system_master_pid_reserved }}"
  98. {% endif %}
  99. {% else %}
  100. cpu: "{{ system_cpu_reserved }}"
  101. memory: {{ system_memory_reserved }}
  102. {% if system_ephemeral_storage_reserved is defined %}
  103. ephemeral-storage: {{ system_ephemeral_storage_reserved }}
  104. {% endif %}
  105. {% if system_pid_reserved is defined %}
  106. pid: "{{ system_pid_reserved }}"
  107. {% endif %}
  108. {% endif %}
  109. {% endif %}
  110. {% if ('kube_control_plane' in group_names) and (eviction_hard_control_plane is defined) and eviction_hard_control_plane %}
  111. evictionHard:
  112. {{ eviction_hard_control_plane | to_nice_yaml(indent=2) | indent(2) }}
  113. {% elif ('kube_control_plane' not in group_names) and (eviction_hard is defined) and eviction_hard %}
  114. evictionHard:
  115. {{ eviction_hard | to_nice_yaml(indent=2) | indent(2) }}
  116. {% endif %}
  117. resolvConf: "{{ kube_resolv_conf }}"
  118. {% if kubelet_config_extra_args %}
  119. {{ kubelet_config_extra_args | to_nice_yaml(indent=2) }}
  120. {% endif %}
  121. {% if inventory_hostname in groups['kube_node'] and kubelet_node_config_extra_args %}
  122. {{ kubelet_node_config_extra_args | to_nice_yaml(indent=2) }}
  123. {% endif %}
  124. {% if kubelet_feature_gates or kube_feature_gates %}
  125. featureGates:
  126. {% for feature in (kubelet_feature_gates | default(kube_feature_gates, true)) %}
  127. {{ feature | replace("=", ": ") }}
  128. {% endfor %}
  129. {% endif %}
  130. {% if tls_min_version is defined %}
  131. tlsMinVersion: {{ tls_min_version }}
  132. {% endif %}
  133. {% if tls_cipher_suites is defined %}
  134. tlsCipherSuites:
  135. {% for tls in tls_cipher_suites %}
  136. - {{ tls }}
  137. {% endfor %}
  138. {% endif %}
  139. eventRecordQPS: {{ kubelet_event_record_qps }}
  140. shutdownGracePeriod: {{ kubelet_shutdown_grace_period }}
  141. shutdownGracePeriodCriticalPods: {{ kubelet_shutdown_grace_period_critical_pods }}
  142. {% if not kubelet_fail_swap_on %}
  143. memorySwap:
  144. swapBehavior: {{ kubelet_swap_behavior }}
  145. {% endif %}
  146. {% if kubelet_streaming_connection_idle_timeout is defined %}
  147. streamingConnectionIdleTimeout: {{ kubelet_streaming_connection_idle_timeout }}
  148. {% endif %}
  149. {% if kubelet_image_gc_high_threshold is defined %}
  150. imageGCHighThresholdPercent: {{ kubelet_image_gc_high_threshold }}
  151. {% endif %}
  152. {% if kubelet_image_gc_low_threshold is defined %}
  153. imageGCLowThresholdPercent: {{ kubelet_image_gc_low_threshold }}
  154. {% endif %}
  155. {% if kubelet_make_iptables_util_chains is defined %}
  156. makeIPTablesUtilChains: {{ kubelet_make_iptables_util_chains | bool }}
  157. {% endif %}
  158. {% if kubelet_seccomp_default is defined %}
  159. seccompDefault: {{ kubelet_seccomp_default | bool }}
  160. {% endif %}
  161. {% if kubelet_cpu_manager_policy is defined %}
  162. cpuManagerPolicy: {{ kubelet_cpu_manager_policy }}
  163. {% endif %}
  164. {% if kubelet_cpu_manager_policy_options is defined %}
  165. cpuManagerPolicyOptions:
  166. {{ kubelet_cpu_manager_policy_options | to_nice_yaml(indent=2) }}
  167. {% endif %}
  168. {% if kubelet_topology_manager_policy is defined %}
  169. topologyManagerPolicy: {{ kubelet_topology_manager_policy }}
  170. {% endif %}
  171. {% if kubelet_topology_manager_scope is defined %}
  172. topologyManagerScope: {{ kubelet_topology_manager_scope }}
  173. {% endif %}
  174. {% if kubelet_tracing %}
  175. tracing:
  176. endpoint: {{ kubelet_tracing_endpoint }}
  177. samplingRatePerMillion: {{ kubelet_tracing_sampling_rate_per_million }}
  178. {% endif %}
  179. maxParallelImagePulls: {{ kubelet_max_parallel_image_pulls }}