From b595b3c0c839d0d222aabe6c7e5786bd2044c5cc Mon Sep 17 00:00:00 2001 From: Tomer Newman Date: Fri, 1 Nov 2024 10:07:28 +0200 Subject: [PATCH] Checking if worker image exists (#1234) Until now we assumed the worker image exists if the kmod image exist, which caused a bug. Now we ensure that the worker image existence locally will also be checked. --- pkg/mcproducer/scripts/pull-image.sh | 5 +++-- pkg/mcproducer/scripts/replace-kernel-module.sh | 5 +++-- pkg/mcproducer/testdata/machineconfig-test.yaml | 4 ++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/pkg/mcproducer/scripts/pull-image.sh b/pkg/mcproducer/scripts/pull-image.sh index 9f0129d38..cd11ab3ae 100644 --- a/pkg/mcproducer/scripts/pull-image.sh +++ b/pkg/mcproducer/scripts/pull-image.sh @@ -6,8 +6,9 @@ kernel_module_image="$KERNEL_MODULE_IMAGE" kernel_module_image_tag=$(uname -r) full_kernel_module_image="$kernel_module_image:$kernel_module_image_tag" -if [ -n "$(podman images -q $full_kernel_module_image 2> /dev/null)" ]; then - echo "Image $full_kernel_module_image exist locally. Nothing to do, removing $kmm_config_file_filepath" +if [ -n "$(podman images -q "$full_kernel_module_image" 2> /dev/null)" ] && \ + [ -n "$(podman images -q "$worker_image" 2> /dev/null)" ]; then + echo "Images $full_kernel_module_image and $worker_image exist locally. Nothing to do, removing $kmm_config_file_filepath" rm -f $kmm_config_file_filepath else podman pull --authfile /var/lib/kubelet/config.json $worker_image diff --git a/pkg/mcproducer/scripts/replace-kernel-module.sh b/pkg/mcproducer/scripts/replace-kernel-module.sh index 2ba52418b..affc893d7 100644 --- a/pkg/mcproducer/scripts/replace-kernel-module.sh +++ b/pkg/mcproducer/scripts/replace-kernel-module.sh @@ -25,8 +25,9 @@ EOF } echo "before checking image presence" -if [ -n "$(podman images -q $full_kernel_module_image 2> /dev/null)" ]; then - echo "Image $full_kernel_module_image found on the local file system, creating kmm config file" +if [ -n "$(podman images -q "$full_kernel_module_image" 2> /dev/null)" ] && \ + [ -n "$(podman images -q "$worker_image" 2> /dev/null)" ]; then + echo "Images $full_kernel_module_image and $worker_image found on the local file system, creating kmm config file" create_kmm_config echo "creating volume" podman volume create $worker_volume_name diff --git a/pkg/mcproducer/testdata/machineconfig-test.yaml b/pkg/mcproducer/testdata/machineconfig-test.yaml index e2fb2ea65..8b150545d 100644 --- a/pkg/mcproducer/testdata/machineconfig-test.yaml +++ b/pkg/mcproducer/testdata/machineconfig-test.yaml @@ -69,14 +69,14 @@ spec: user: name: "root" contents: - source: "data:text/plain;base64,IyEvYmluL2Jhc2gKCmttbV9jb25maWdfZmlsZV9maWxlcGF0aD0iJFdPUktFUl9DT05GSUdfRklMRVBBVEgiCmluX3RyZWVfbW9kdWxlX3RvX3JlbW92ZT0iJElOX1RSRUVfTU9EVUxFX1RPX1JFTU9WRSIKa2VybmVsX21vZHVsZT0iJEtFUk5FTF9NT0RVTEUiCndvcmtlcl9pbWFnZT0iJFdPUktFUl9JTUFHRSIKa2VybmVsX21vZHVsZV9pbWFnZT0iJEtFUk5FTF9NT0RVTEVfSU1BR0UiCmZpcm13YXJlX2ZpbGVzX3BhdGg9IiRGSVJNV0FSRV9GSUxFU19QQVRIIgprZXJuZWxfbW9kdWxlX2ltYWdlX3RhZz0kKHVuYW1lIC1yKQpmdWxsX2tlcm5lbF9tb2R1bGVfaW1hZ2U9IiRrZXJuZWxfbW9kdWxlX2ltYWdlOiRrZXJuZWxfbW9kdWxlX2ltYWdlX3RhZyIKd29ya2VyX3BvZF9uYW1lPWttbS1wb2QKd29ya2VyX3ZvbHVtZV9uYW1lPWttbS12b2x1bWUKCmNyZWF0ZV9rbW1fY29uZmlnKCkgewogICAgIyBXcml0ZSBZQU1MIGNvbnRlbnQgdG8gdGhlIGZpbGUKICAgIGNhdCA8PEVPRiA+ICIka21tX2NvbmZpZ19maWxlX2ZpbGVwYXRoIgpjb250YWluZXJJbWFnZTogJGZ1bGxfa2VybmVsX21vZHVsZV9pbWFnZQppblRyZWVNb2R1bGVUb1JlbW92ZTogJGluX3RyZWVfbW9kdWxlX3RvX3JlbW92ZQptb2Rwcm9iZToKICBkaXJOYW1lOiAvb3B0CiAgbW9kdWxlTmFtZTogJGtlcm5lbF9tb2R1bGUKRU9GCiAgICBlY2hvICJsb2dnaW5nIGNvbnRlbnRzIG9mIHRoZSB3b3JrZXIgY29uZmlnIGZpbGU6IgogICAgY2F0ICIka21tX2NvbmZpZ19maWxlX2ZpbGVwYXRoIgp9CgplY2hvICJiZWZvcmUgY2hlY2tpbmcgaW1hZ2UgcHJlc2VuY2UiCmlmIFsgLW4gIiQocG9kbWFuIGltYWdlcyAtcSAkZnVsbF9rZXJuZWxfbW9kdWxlX2ltYWdlIDI+IC9kZXYvbnVsbCkiIF07IHRoZW4KICAgIGVjaG8gIkltYWdlICRmdWxsX2tlcm5lbF9tb2R1bGVfaW1hZ2UgZm91bmQgb24gdGhlIGxvY2FsIGZpbGUgc3lzdGVtLCBjcmVhdGluZyBrbW0gY29uZmlnIGZpbGUiCiAgICBjcmVhdGVfa21tX2NvbmZpZwogICAgZWNobyAiY3JlYXRpbmcgdm9sdW1lIgogICAgcG9kbWFuIHZvbHVtZSBjcmVhdGUgJHdvcmtlcl92b2x1bWVfbmFtZQogICAgcG9kbWFuIHBvZCBjcmVhdGUgLS1uYW1lICR3b3JrZXJfcG9kX25hbWUKICAgIGVjaG8gImNyZWF0aW5nIGluaXQgY29udGFpbmVyIgogICAgY29weWNtZD0ibWtkaXIgLXAgL3RtcC9vcHQvbGliL21vZHVsZXMgJiYgY3AgLVIgL29wdC9saWIvbW9kdWxlcy8qIC90bXAvb3B0L2xpYi9tb2R1bGVzOyIKICAgIGlmIFtbIC1uICIkRklSTVdBUkVfRklMRVNfUEFUSCIgXV07IHRoZW4KICAgICAgZm9sZGVycz0oInRtcCIgIiRmaXJtd2FyZV9maWxlc19wYXRoIik7CiAgICAgIHBhdGhfdG9fY29weV9maXJtd2FyZT0kKHByaW50ZiAnLyVzJyAiJHtmb2xkZXJzW0BdJS99IikKICAgICAgY29weWNtZCs9IiBta2RpciAtcCAke3BhdGhfdG9fY29weV9maXJtd2FyZX0gJiYgXAogICAgICBjcCAtUiAke2Zpcm13YXJlX2ZpbGVzX3BhdGh9LyogJHtwYXRoX3RvX2NvcHlfZmlybXdhcmV9IgogICAgZmkKICAgIHBvZG1hbiBjcmVhdGUgXAogICAgICAgICAgLS1wb2QgJHdvcmtlcl9wb2RfbmFtZSBcCiAgICAgICAgICAtLWluaXQtY3RyPWFsd2F5cyBcCiAgICAgICAgICAtLXJtIFwKICAgICAgICAgIC12ICR3b3JrZXJfdm9sdW1lX25hbWU6L3RtcCBcCiAgICAgICAgICAkZnVsbF9rZXJuZWxfbW9kdWxlX2ltYWdlIFwKICAgICAgICAgIC9iaW4vc2ggLWMgIiR7Y29weWNtZH0iCiAgICBlY2hvICJjcmVhdGluZyB3b3JrZXIgY29udGFpbmVyIgogICAgd29ya2VyX3BvZF9pZD0kKAogICAgcG9kbWFuIGNyZWF0ZSBcCiAgICAgIC0tcG9kICR3b3JrZXJfcG9kX25hbWVcCiAgICAgIC0tdXNlcj1yb290IFwKICAgICAgLS1wcml2aWxlZ2VkIFwKICAgICAgLS1ybSBcCiAgICAgIC12ICR3b3JrZXJfdm9sdW1lX25hbWU6L3RtcCBcCiAgICAgIC12IC9saWIvbW9kdWxlczovbGliL21vZHVsZXMgXAogICAgICAtdiAka21tX2NvbmZpZ19maWxlX2ZpbGVwYXRoOi9ldGMva21tLXdvcmtlci9jb25maWcueWFtbCBcCiAgICAgICR3b3JrZXJfaW1hZ2UgXAogICAgICBrbW9kIGxvYWQgL2V0Yy9rbW0td29ya2VyL2NvbmZpZy55YW1sKQogICAgZWNobyAicnVubmluZyB3b3JrZXIgcG9kIgogICAgcG9kbWFuIHBvZCBzdGFydCAkd29ya2VyX3BvZF9uYW1lCiAgICBpZiBbICQ/IC1lcSAwIF07IHRoZW4KICAgICAgICBlY2hvICJPT1Qga2VybmVsIG1vZHVsZSAka2VybmVsX21vZHVsZSBpcyBpbnNlcnRlZCIKICAgIGVsc2UKICAgICAgICBlY2hvICJmYWlsZWQgdG8gaW5zZXJ0IE9PVCBrZXJuZWwgbW9kdWxlICRrZXJuZWxfbW9kdWxlIgogICAgZmkKICAgIHBvZG1hbiB3YWl0ICR3b3JrZXJfcG9kX2lkCiAgICBlY2hvICJyZW1vdmluZyBrbW0tcG9kIgogICAgcG9kbWFuIHBvZCBybSAkd29ya2VyX3BvZF9uYW1lCiAgICBlY2hvICJyZW1vdmluZyB2b2x1bWUiCiAgICBwb2RtYW4gdm9sdW1lIHJtICR3b3JrZXJfdm9sdW1lX25hbWUKZWxzZQogICAgZWNobyAiSW1hZ2UgJGZ1bGxfa2VybmVsX21vZHVsZV9pbWFnZSBpcyBub3QgcHJlc2VudCBpbiBsb2NhbCByZWdpc3RyeSwgd2lsbCB0cnkgYWZ0ZXIgcmVib290IgpmaQo=" + source: "data:text/plain;base64,IyEvYmluL2Jhc2gKCmttbV9jb25maWdfZmlsZV9maWxlcGF0aD0iJFdPUktFUl9DT05GSUdfRklMRVBBVEgiCmluX3RyZWVfbW9kdWxlX3RvX3JlbW92ZT0iJElOX1RSRUVfTU9EVUxFX1RPX1JFTU9WRSIKa2VybmVsX21vZHVsZT0iJEtFUk5FTF9NT0RVTEUiCndvcmtlcl9pbWFnZT0iJFdPUktFUl9JTUFHRSIKa2VybmVsX21vZHVsZV9pbWFnZT0iJEtFUk5FTF9NT0RVTEVfSU1BR0UiCmZpcm13YXJlX2ZpbGVzX3BhdGg9IiRGSVJNV0FSRV9GSUxFU19QQVRIIgprZXJuZWxfbW9kdWxlX2ltYWdlX3RhZz0kKHVuYW1lIC1yKQpmdWxsX2tlcm5lbF9tb2R1bGVfaW1hZ2U9IiRrZXJuZWxfbW9kdWxlX2ltYWdlOiRrZXJuZWxfbW9kdWxlX2ltYWdlX3RhZyIKd29ya2VyX3BvZF9uYW1lPWttbS1wb2QKd29ya2VyX3ZvbHVtZV9uYW1lPWttbS12b2x1bWUKCmNyZWF0ZV9rbW1fY29uZmlnKCkgewogICAgIyBXcml0ZSBZQU1MIGNvbnRlbnQgdG8gdGhlIGZpbGUKICAgIGNhdCA8PEVPRiA+ICIka21tX2NvbmZpZ19maWxlX2ZpbGVwYXRoIgpjb250YWluZXJJbWFnZTogJGZ1bGxfa2VybmVsX21vZHVsZV9pbWFnZQppblRyZWVNb2R1bGVUb1JlbW92ZTogJGluX3RyZWVfbW9kdWxlX3RvX3JlbW92ZQptb2Rwcm9iZToKICBkaXJOYW1lOiAvb3B0CiAgbW9kdWxlTmFtZTogJGtlcm5lbF9tb2R1bGUKRU9GCiAgICBlY2hvICJsb2dnaW5nIGNvbnRlbnRzIG9mIHRoZSB3b3JrZXIgY29uZmlnIGZpbGU6IgogICAgY2F0ICIka21tX2NvbmZpZ19maWxlX2ZpbGVwYXRoIgp9CgplY2hvICJiZWZvcmUgY2hlY2tpbmcgaW1hZ2UgcHJlc2VuY2UiCmlmIFsgLW4gIiQocG9kbWFuIGltYWdlcyAtcSAiJGZ1bGxfa2VybmVsX21vZHVsZV9pbWFnZSIgMj4gL2Rldi9udWxsKSIgXSAmJiBcCiAgIFsgLW4gIiQocG9kbWFuIGltYWdlcyAtcSAiJHdvcmtlcl9pbWFnZSIgMj4gL2Rldi9udWxsKSIgXTsgdGhlbgogICAgZWNobyAiSW1hZ2VzICRmdWxsX2tlcm5lbF9tb2R1bGVfaW1hZ2UgYW5kICR3b3JrZXJfaW1hZ2UgZm91bmQgb24gdGhlIGxvY2FsIGZpbGUgc3lzdGVtLCBjcmVhdGluZyBrbW0gY29uZmlnIGZpbGUiCiAgICBjcmVhdGVfa21tX2NvbmZpZwogICAgZWNobyAiY3JlYXRpbmcgdm9sdW1lIgogICAgcG9kbWFuIHZvbHVtZSBjcmVhdGUgJHdvcmtlcl92b2x1bWVfbmFtZQogICAgcG9kbWFuIHBvZCBjcmVhdGUgLS1uYW1lICR3b3JrZXJfcG9kX25hbWUKICAgIGVjaG8gImNyZWF0aW5nIGluaXQgY29udGFpbmVyIgogICAgY29weWNtZD0ibWtkaXIgLXAgL3RtcC9vcHQvbGliL21vZHVsZXMgJiYgY3AgLVIgL29wdC9saWIvbW9kdWxlcy8qIC90bXAvb3B0L2xpYi9tb2R1bGVzOyIKICAgIGlmIFtbIC1uICIkRklSTVdBUkVfRklMRVNfUEFUSCIgXV07IHRoZW4KICAgICAgZm9sZGVycz0oInRtcCIgIiRmaXJtd2FyZV9maWxlc19wYXRoIik7CiAgICAgIHBhdGhfdG9fY29weV9maXJtd2FyZT0kKHByaW50ZiAnLyVzJyAiJHtmb2xkZXJzW0BdJS99IikKICAgICAgY29weWNtZCs9IiBta2RpciAtcCAke3BhdGhfdG9fY29weV9maXJtd2FyZX0gJiYgXAogICAgICBjcCAtUiAke2Zpcm13YXJlX2ZpbGVzX3BhdGh9LyogJHtwYXRoX3RvX2NvcHlfZmlybXdhcmV9IgogICAgZmkKICAgIHBvZG1hbiBjcmVhdGUgXAogICAgICAgICAgLS1wb2QgJHdvcmtlcl9wb2RfbmFtZSBcCiAgICAgICAgICAtLWluaXQtY3RyPWFsd2F5cyBcCiAgICAgICAgICAtLXJtIFwKICAgICAgICAgIC12ICR3b3JrZXJfdm9sdW1lX25hbWU6L3RtcCBcCiAgICAgICAgICAkZnVsbF9rZXJuZWxfbW9kdWxlX2ltYWdlIFwKICAgICAgICAgIC9iaW4vc2ggLWMgIiR7Y29weWNtZH0iCiAgICBlY2hvICJjcmVhdGluZyB3b3JrZXIgY29udGFpbmVyIgogICAgd29ya2VyX3BvZF9pZD0kKAogICAgcG9kbWFuIGNyZWF0ZSBcCiAgICAgIC0tcG9kICR3b3JrZXJfcG9kX25hbWVcCiAgICAgIC0tdXNlcj1yb290IFwKICAgICAgLS1wcml2aWxlZ2VkIFwKICAgICAgLS1ybSBcCiAgICAgIC12ICR3b3JrZXJfdm9sdW1lX25hbWU6L3RtcCBcCiAgICAgIC12IC9saWIvbW9kdWxlczovbGliL21vZHVsZXMgXAogICAgICAtdiAka21tX2NvbmZpZ19maWxlX2ZpbGVwYXRoOi9ldGMva21tLXdvcmtlci9jb25maWcueWFtbCBcCiAgICAgICR3b3JrZXJfaW1hZ2UgXAogICAgICBrbW9kIGxvYWQgL2V0Yy9rbW0td29ya2VyL2NvbmZpZy55YW1sKQogICAgZWNobyAicnVubmluZyB3b3JrZXIgcG9kIgogICAgcG9kbWFuIHBvZCBzdGFydCAkd29ya2VyX3BvZF9uYW1lCiAgICBpZiBbICQ/IC1lcSAwIF07IHRoZW4KICAgICAgICBlY2hvICJPT1Qga2VybmVsIG1vZHVsZSAka2VybmVsX21vZHVsZSBpcyBpbnNlcnRlZCIKICAgIGVsc2UKICAgICAgICBlY2hvICJmYWlsZWQgdG8gaW5zZXJ0IE9PVCBrZXJuZWwgbW9kdWxlICRrZXJuZWxfbW9kdWxlIgogICAgZmkKICAgIHBvZG1hbiB3YWl0ICR3b3JrZXJfcG9kX2lkCiAgICBlY2hvICJyZW1vdmluZyBrbW0tcG9kIgogICAgcG9kbWFuIHBvZCBybSAkd29ya2VyX3BvZF9uYW1lCiAgICBlY2hvICJyZW1vdmluZyB2b2x1bWUiCiAgICBwb2RtYW4gdm9sdW1lIHJtICR3b3JrZXJfdm9sdW1lX25hbWUKZWxzZQogICAgZWNobyAiSW1hZ2UgJGZ1bGxfa2VybmVsX21vZHVsZV9pbWFnZSBpcyBub3QgcHJlc2VudCBpbiBsb2NhbCByZWdpc3RyeSwgd2lsbCB0cnkgYWZ0ZXIgcmVib290IgpmaQo=" - path: "/usr/local/bin/pull-kernel-module-image.sh" mode: 493 overwrite: true user: name: "root" contents: - source: "data:text/plain;base64,IyEvYmluL2Jhc2gKCgp3b3JrZXJfaW1hZ2U9IiRXT1JLRVJfSU1BR0UiCmtlcm5lbF9tb2R1bGVfaW1hZ2U9IiRLRVJORUxfTU9EVUxFX0lNQUdFIgprZXJuZWxfbW9kdWxlX2ltYWdlX3RhZz0kKHVuYW1lIC1yKQpmdWxsX2tlcm5lbF9tb2R1bGVfaW1hZ2U9IiRrZXJuZWxfbW9kdWxlX2ltYWdlOiRrZXJuZWxfbW9kdWxlX2ltYWdlX3RhZyIKCmlmIFsgLW4gIiQocG9kbWFuIGltYWdlcyAtcSAkZnVsbF9rZXJuZWxfbW9kdWxlX2ltYWdlIDI+IC9kZXYvbnVsbCkiIF07IHRoZW4KICAgIGVjaG8gIkltYWdlICRmdWxsX2tlcm5lbF9tb2R1bGVfaW1hZ2UgZXhpc3QgbG9jYWxseS4gTm90aGluZyB0byBkbywgcmVtb3ZpbmcgJGttbV9jb25maWdfZmlsZV9maWxlcGF0aCIKICAgIHJtIC1mICRrbW1fY29uZmlnX2ZpbGVfZmlsZXBhdGgKZWxzZQogICAgcG9kbWFuIHB1bGwgLS1hdXRoZmlsZSAvdmFyL2xpYi9rdWJlbGV0L2NvbmZpZy5qc29uICR3b3JrZXJfaW1hZ2UKICAgIGlmIFsgJD8gLWVxIDAgXTsgdGhlbgogICAgICAgIGVjaG8gIkltYWdlICR3b3JrZXJfaW1hZ2UgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHB1bGxlZCIKICAgIGVsc2UKICAgICAgICBlY2hvICJGYWlsZWQgdG8gcHVsbCBpbWFnZSAkd29ya2VyX2ltYWdlIgogICAgICAgIGV4aXQgMQogICAgZmkKCiAgICBlY2hvICJQdWxsaW5nIGltYWdlICRmdWxsX2tlcm5lbF9tb2R1bGVfaW1hZ2UiCiAgICBwb2RtYW4gcHVsbCAtLWF1dGhmaWxlIC92YXIvbGliL2t1YmVsZXQvY29uZmlnLmpzb24gJGZ1bGxfa2VybmVsX21vZHVsZV9pbWFnZQogICAgaWYgWyAkPyAtZXEgMCBdOyB0aGVuCiAgICAgICAgZWNobyAiSW1hZ2UgJGZ1bGxfa2VybmVsX21vZHVsZV9pbWFnZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgcHVsbGVkIgogICAgZWxzZQogICAgICAgIGVjaG8gIkZhaWxlZCB0byBwdWxsIGltYWdlICRmdWxsX2tlcm5lbF9tb2R1bGVfaW1hZ2UiCiAgICAgICAgZXhpdCAxCiAgICBmaQogICAgZWNobyAiUmVib290aW5nLi4uIgogICAgcmVib290CmZpCg==" + source: "data:text/plain;base64,IyEvYmluL2Jhc2gKCgp3b3JrZXJfaW1hZ2U9IiRXT1JLRVJfSU1BR0UiCmtlcm5lbF9tb2R1bGVfaW1hZ2U9IiRLRVJORUxfTU9EVUxFX0lNQUdFIgprZXJuZWxfbW9kdWxlX2ltYWdlX3RhZz0kKHVuYW1lIC1yKQpmdWxsX2tlcm5lbF9tb2R1bGVfaW1hZ2U9IiRrZXJuZWxfbW9kdWxlX2ltYWdlOiRrZXJuZWxfbW9kdWxlX2ltYWdlX3RhZyIKCmlmIFsgLW4gIiQocG9kbWFuIGltYWdlcyAtcSAiJGZ1bGxfa2VybmVsX21vZHVsZV9pbWFnZSIgMj4gL2Rldi9udWxsKSIgXSAmJiBcCiAgIFsgLW4gIiQocG9kbWFuIGltYWdlcyAtcSAiJHdvcmtlcl9pbWFnZSIgMj4gL2Rldi9udWxsKSIgXTsgdGhlbgogICAgZWNobyAiSW1hZ2VzICRmdWxsX2tlcm5lbF9tb2R1bGVfaW1hZ2UgYW5kICR3b3JrZXJfaW1hZ2UgZXhpc3QgbG9jYWxseS4gTm90aGluZyB0byBkbywgcmVtb3ZpbmcgJGttbV9jb25maWdfZmlsZV9maWxlcGF0aCIKICAgIHJtIC1mICRrbW1fY29uZmlnX2ZpbGVfZmlsZXBhdGgKZWxzZQogICAgcG9kbWFuIHB1bGwgLS1hdXRoZmlsZSAvdmFyL2xpYi9rdWJlbGV0L2NvbmZpZy5qc29uICR3b3JrZXJfaW1hZ2UKICAgIGlmIFsgJD8gLWVxIDAgXTsgdGhlbgogICAgICAgIGVjaG8gIkltYWdlICR3b3JrZXJfaW1hZ2UgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHB1bGxlZCIKICAgIGVsc2UKICAgICAgICBlY2hvICJGYWlsZWQgdG8gcHVsbCBpbWFnZSAkd29ya2VyX2ltYWdlIgogICAgICAgIGV4aXQgMQogICAgZmkKCiAgICBlY2hvICJQdWxsaW5nIGltYWdlICRmdWxsX2tlcm5lbF9tb2R1bGVfaW1hZ2UiCiAgICBwb2RtYW4gcHVsbCAtLWF1dGhmaWxlIC92YXIvbGliL2t1YmVsZXQvY29uZmlnLmpzb24gJGZ1bGxfa2VybmVsX21vZHVsZV9pbWFnZQogICAgaWYgWyAkPyAtZXEgMCBdOyB0aGVuCiAgICAgICAgZWNobyAiSW1hZ2UgJGZ1bGxfa2VybmVsX21vZHVsZV9pbWFnZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgcHVsbGVkIgogICAgZWxzZQogICAgICAgIGVjaG8gIkZhaWxlZCB0byBwdWxsIGltYWdlICRmdWxsX2tlcm5lbF9tb2R1bGVfaW1hZ2UiCiAgICAgICAgZXhpdCAxCiAgICBmaQogICAgZWNobyAiUmVib290aW5nLi4uIgogICAgcmVib290CmZpCg==" - path: "/usr/local/bin/wait-for-dispatcher.sh" mode: 493 overwrite: true