Skip to content

Commit 810640c

Browse files
committed
fix: πŸ› Make kubelet log redirection optional for windows
1 parent 0279249 commit 810640c

File tree

4 files changed

+51
-21
lines changed

4 files changed

+51
-21
lines changed

β€Žimages/capi/ansible/windows/roles/kubernetes/defaults/main.ymlβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ kubernetes_bins:
1616
- kubeadm
1717
- kubectl
1818
- kubelet
19-
- kube-log-runner
19+
kubernetes_auto_kubelet_service_restart: true

β€Žimages/capi/ansible/windows/roles/kubernetes/tasks/sc.ymlβ€Ž

Lines changed: 48 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,52 @@
1515
# Install kubelet as a windows service
1616
# Requires --windows-service flag: https://github.com/kubernetes/kubernetes/blob/7f23a743e8c23ac6489340bbb34fa6f1d392db9d/cmd/kubelet/app/options/osflags_windows.go#L26
1717
# Does not support kubeadm KUBELET_KUBEADM_ARGS which is used by Cluster API to pass extra user args
18-
- name: Install kubelet as service
19-
ansible.windows.win_service:
20-
name: kubelet
21-
start_mode: auto
22-
path: >
23-
"{{ kubernetes_install_path }}\kube-log-runner.exe" --log-file={{ systemdrive.stdout | trim }}/var/log/kubelet/kubelet.log
24-
{{kubernetes_install_path }}\kubelet.exe --windows-service
25-
--cert-dir={{ systemdrive.stdout | trim }}/var/lib/kubelet/pki
26-
--config={{ systemdrive.stdout | trim }}/var/lib/kubelet/config.yaml
27-
--bootstrap-kubeconfig={{ systemdrive.stdout | trim }}/etc/kubernetes/bootstrap-kubelet.conf
28-
--kubeconfig={{ systemdrive.stdout | trim }}/etc/kubernetes/kubelet.conf
29-
--pod-infra-container-image="{{ pause_image }}"
30-
--enable-debugging-handlers --cgroups-per-qos=false --enforce-node-allocatable=""
31-
--container-runtime-endpoint="npipe:////./pipe/containerd-containerd"
32-
--resolv-conf=""
18+
- name: Install kubelet service - with restart template
19+
when: kubernetes_auto_kubelet_service_restart | bool
20+
block:
21+
- name: Install kube-log-runner
22+
ansible.windows.win_get_url:
23+
url: "{{ kubernetes_base_url }}/kube-log-runner.exe"
24+
dest: "{{ kubernetes_install_path }}\\"
25+
retries: 5
26+
delay: 3
27+
register: kubernetes_download
28+
until: kubernetes_download is not failed
29+
- name: Install kubelet as service
30+
ansible.windows.win_service:
31+
name: kubelet
32+
start_mode: auto
33+
path: >
34+
"{{ kubernetes_install_path }}\kube-log-runner.exe" --log-file={{ systemdrive.stdout | trim }}/var/log/kubelet/kubelet.log
35+
{{ kubernetes_install_path }}\kubelet.exe --windows-service
36+
--cert-dir={{ systemdrive.stdout | trim }}/var/lib/kubelet/pki
37+
--config={{ systemdrive.stdout | trim }}/var/lib/kubelet/config.yaml
38+
--bootstrap-kubeconfig={{ systemdrive.stdout | trim }}/etc/kubernetes/bootstrap-kubelet.conf
39+
--kubeconfig={{ systemdrive.stdout | trim }}/etc/kubernetes/kubelet.conf
40+
--pod-infra-container-image="{{ pause_image }}"
41+
--enable-debugging-handlers --cgroups-per-qos=false --enforce-node-allocatable=""
42+
--container-runtime-endpoint="npipe:////./pipe/containerd-containerd"
43+
--resolv-conf=""
3344
34-
- name: Create file to restart kubelet as a windows service
35-
ansible.windows.win_template:
36-
src: templates/RestartKubelet.ps1
37-
dest: "{{ kubernetes_install_path }}\\RestartKubelet.ps1"
45+
- name: Create file to restart kubelet as a windows service
46+
ansible.windows.win_template:
47+
src: templates/RestartKubelet.ps1
48+
dest: "{{ kubernetes_install_path }}\\RestartKubelet.ps1"
49+
50+
- name: Install kubelet service - without restart template
51+
when: not kubernetes_auto_kubelet_service_restart | bool
52+
block:
53+
- name: Install kubelet as service
54+
ansible.windows.win_service:
55+
name: kubelet
56+
start_mode: manual
57+
path: >
58+
{{ kubernetes_install_path }}\kubelet.exe --windows-service
59+
--cert-dir={{ systemdrive.stdout | trim }}/var/lib/kubelet/pki
60+
--config={{ systemdrive.stdout | trim }}/var/lib/kubelet/config.yaml
61+
--bootstrap-kubeconfig={{ systemdrive.stdout | trim }}/etc/kubernetes/bootstrap-kubelet.conf
62+
--kubeconfig={{ systemdrive.stdout | trim }}/etc/kubernetes/kubelet.conf
63+
--hostname-override=$(hostname) --pod-infra-container-image=`"{{ pause_image }}`"
64+
--enable-debugging-handlers --cgroups-per-qos=false --enforce-node-allocatable=`"`"
65+
--resolv-conf=`"`" --log-dir={{ systemdrive.stdout | trim }}/var/log/kubelet
66+
--logtostderr=false {{ additional_kubelet_args if additional_kubelet_args is defined }}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"ansible_common_vars": "runtime={{user `runtime`}} containerd_url={{user `containerd_url`}} containerd_sha256={{user `containerd_sha256_windows`}} pause_image={{user `pause_image`}} additional_debug_files=\"{{user `additional_debug_files`}}\" containerd_additional_settings={{user `containerd_additional_settings`}} custom_role_names=\"{{user `custom_role_names`}}\" http_proxy={{user `http_proxy`}} https_proxy={{user `https_proxy`}} no_proxy={{user `no_proxy`}} kubernetes_base_url={{user `kubernetes_base_url`}} kubernetes_semver={{user `kubernetes_semver`}} kubernetes_install_path={{user `kubernetes_install_path`}} cloudbase_init_url=\"{{user `cloudbase_init_url`}}\" cloudbase_plugins=\"{{user `cloudbase_plugins`}}\" cloudbase_metadata_services=\"{{user `cloudbase_metadata_services`}}\" cloudbase_plugins_unattend=\"{{user `cloudbase_plugins_unattend`}}\" cloudbase_metadata_services_unattend=\"{{user `cloudbase_metadata_services_unattend`}}\" prepull={{user `prepull`}} windows_updates_kbs=\"{{user `windows_updates_kbs`}}\" windows_updates_categories=\"{{user `windows_updates_categories`}}\" windows_service_manager={{user `windows_service_manager`}} nssm_url={{user `nssm_url`}} distribution_version={{user `distribution_version`}} netbios_host_name_compatibility={{user `netbios_host_name_compatibility`}} disable_hypervisor={{ user `disable_hypervisor` }} cloudbase_logging_serial_port={{ user `cloudbase_logging_serial_port` }} cloudbase_real_time_clock_utc={{ user `cloudbase_real_time_clock_utc` }} load_additional_components={{ user `load_additional_components`}} ecr_credential_provider={{ user `ecr_credential_provider` }} additional_registry_images={{ user `additional_registry_images`}} additional_registry_images_list={{ user `additional_registry_images_list`}} additional_url_images={{ user `additional_url_images`}} additional_url_images_list={{ user `additional_url_images_list`}} additional_executables={{ user `additional_executables`}} additional_executables_list={{ user `additional_executables_list`}} additional_executables_destination_path={{ user `additional_executables_destination_path`}} ssh_source_url={{user `ssh_source_url` }} debug_tools={{user `debug_tools`}}"
2+
"ansible_common_vars": "runtime={{user `runtime`}} containerd_url={{user `containerd_url`}} containerd_sha256={{user `containerd_sha256_windows`}} pause_image={{user `pause_image`}} additional_debug_files=\"{{user `additional_debug_files`}}\" containerd_additional_settings={{user `containerd_additional_settings`}} custom_role_names=\"{{user `custom_role_names`}}\" http_proxy={{user `http_proxy`}} https_proxy={{user `https_proxy`}} no_proxy={{user `no_proxy`}} kubernetes_base_url={{user `kubernetes_base_url`}} kubernetes_semver={{user `kubernetes_semver`}} kubernetes_install_path={{user `kubernetes_install_path`}} cloudbase_init_url=\"{{user `cloudbase_init_url`}}\" cloudbase_plugins=\"{{user `cloudbase_plugins`}}\" cloudbase_metadata_services=\"{{user `cloudbase_metadata_services`}}\" cloudbase_plugins_unattend=\"{{user `cloudbase_plugins_unattend`}}\" cloudbase_metadata_services_unattend=\"{{user `cloudbase_metadata_services_unattend`}}\" prepull={{user `prepull`}} windows_updates_kbs=\"{{user `windows_updates_kbs`}}\" windows_updates_categories=\"{{user `windows_updates_categories`}}\" windows_service_manager={{user `windows_service_manager`}} nssm_url={{user `nssm_url`}} distribution_version={{user `distribution_version`}} netbios_host_name_compatibility={{user `netbios_host_name_compatibility`}} disable_hypervisor={{ user `disable_hypervisor` }} cloudbase_logging_serial_port={{ user `cloudbase_logging_serial_port` }} cloudbase_real_time_clock_utc={{ user `cloudbase_real_time_clock_utc` }} load_additional_components={{ user `load_additional_components`}} ecr_credential_provider={{ user `ecr_credential_provider` }} additional_registry_images={{ user `additional_registry_images`}} additional_registry_images_list={{ user `additional_registry_images_list`}} additional_url_images={{ user `additional_url_images`}} additional_url_images_list={{ user `additional_url_images_list`}} additional_executables={{ user `additional_executables`}} additional_executables_list={{ user `additional_executables_list`}} additional_executables_destination_path={{ user `additional_executables_destination_path`}} ssh_source_url={{user `ssh_source_url` }} debug_tools={{user `debug_tools`}} kubernetes_auto_kubelet_service_restart={{ user `enable_auto_kubelet_service_restart` }}"
33
}

β€Žimages/capi/packer/ova/packer-windows.jsonβ€Ž

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,7 @@
248248
"containerd_version": null,
249249
"disable_hypervisor": null,
250250
"disk_size": "81920",
251+
"enable_auto_kubelet_service_restart": "false",
251252
"firmware": "bios",
252253
"http_port_max": "",
253254
"http_port_min": "",

0 commit comments

Comments
Β (0)