From 25c566ba6ba7db60b72fe4b24e73a7135491a4dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Kara=C5=9B?= Date: Thu, 6 Nov 2025 15:13:16 +0100 Subject: [PATCH] Fix `kubectl-mongodb` permissions --- .evergreen-functions.yml | 4 ++++ .../kubectl_mongodb/download_kubectl_plugin.py | 14 ++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/.evergreen-functions.yml b/.evergreen-functions.yml index 983421024..a300a7735 100644 --- a/.evergreen-functions.yml +++ b/.evergreen-functions.yml @@ -524,6 +524,8 @@ functions: download_multi_cluster_binary: - command: subprocess.exec params: + include_expansions_in_env: + - workdir working_dir: src/github.com/mongodb/mongodb-kubernetes binary: scripts/release/kubectl_mongodb/download_kubectl_plugin.sh env: @@ -791,6 +793,8 @@ functions: - code_snippets_reset - task_name - MDB_BASH_DEBUG + add_to_path: + - ${workdir}/bin script: | ./scripts/code_snippets/tests/${task_name} diff --git a/scripts/release/kubectl_mongodb/download_kubectl_plugin.py b/scripts/release/kubectl_mongodb/download_kubectl_plugin.py index 53e5853a3..6029224bf 100755 --- a/scripts/release/kubectl_mongodb/download_kubectl_plugin.py +++ b/scripts/release/kubectl_mongodb/download_kubectl_plugin.py @@ -41,12 +41,18 @@ def download_kubectl_plugin_from_s3( # change the file's permissions to make file executable os.chmod(local_path, 0o755) + logger.info(f"Successfully downloaded artifact to {local_path}") + if copy_to_bin_path: - shutil.copyfile(local_path, KUBECTL_MONGODB_PLUGIN_BIN_PATH) + kubectl_mongodb_workdir_path = os.path.join(os.getenv("workdir", ""), KUBECTL_MONGODB_PLUGIN_BIN_PATH) + # copy content, stat-info (mode too), timestamps.. + shutil.copy2(local_path, kubectl_mongodb_workdir_path) + # preserve owner and group + st = os.stat(local_path) + os.chown(kubectl_mongodb_workdir_path, st.st_uid, st.st_gid) + + logger.info(f"Copied kubectl-mongodb plugin to {kubectl_mongodb_workdir_path} for tests usage") - logger.info( - f"Successfully downloaded artifact to {local_path}{f" and {KUBECTL_MONGODB_PLUGIN_BIN_PATH}" if copy_to_bin_path else ""}" - ) except ClientError as e: if e.response["Error"]["Code"] == "404": raise Exception(f"Artifact not found at s3://{s3_bucket}/{s3_plugin_path}: {e}")