From c66400741e2d25100f4c3179fed63f714235314c Mon Sep 17 00:00:00 2001 From: Philipp Rosch <103377777+cypr0@users.noreply.github.com> Date: Tue, 8 Oct 2024 00:19:43 +0200 Subject: [PATCH] Fix 'xargs: command line too long' in SOPS encryption task (#1594) Co-authored-by: Devin Buhl --- .taskfiles/Sops/Taskfile.yaml | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/.taskfiles/Sops/Taskfile.yaml b/.taskfiles/Sops/Taskfile.yaml index 5bb2885a..ff9342c9 100644 --- a/.taskfiles/Sops/Taskfile.yaml +++ b/.taskfiles/Sops/Taskfile.yaml @@ -12,19 +12,13 @@ tasks: encrypt: desc: Encrypt all Kubernetes SOPS secrets cmds: - - for: { var: file } - task: .encrypt-file - vars: - file: "{{.ITEM}}" - vars: - file: - sh: find "{{.KUBERNETES_DIR}}" -type f -name "*.sops.*" | xargs -I {} sh -c 'sops filestatus {} | jq --exit-status ".encrypted == false" > /dev/null && echo {}' - - .encrypt-file: - internal: true - cmd: sops --encrypt --in-place {{.file}} - requires: - vars: ["file"] + - cmd: | + find "{{.KUBERNETES_DIR}}" -type f -name "*.sops.*" | while read -r file; do + if sops filestatus "$file" | jq --exit-status ".encrypted == false" > /dev/null; then + sops --encrypt --in-place "$file" + echo "Encrypted $file" + fi + done preconditions: - msg: Missing Sops config file sh: test -f {{.SOPS_CONFIG_FILE}}