diff --git a/core/src/plugins/kubernetes/container/build/common.ts b/core/src/plugins/kubernetes/container/build/common.ts index a9d2d7d029..b00afd905d 100644 --- a/core/src/plugins/kubernetes/container/build/common.ts +++ b/core/src/plugins/kubernetes/container/build/common.ts @@ -501,7 +501,7 @@ export function getUtilContainer(authSecretName: string, provider: KubernetesPro command: [ "/bin/sh", "-c", - "until pgrep -f '^[^ ]+rsync' > /dev/null; do echo waiting for rsync to finish...; sleep 1; done", + "until test $(pgrep -f '^[^ ]+rsync' | wc -l) = 1; do echo waiting for rsync to finish...; sleep 1; done", ], }, }, diff --git a/core/src/plugins/kubernetes/hot-reload/helpers.ts b/core/src/plugins/kubernetes/hot-reload/helpers.ts index fafab755a0..7f953cd93c 100644 --- a/core/src/plugins/kubernetes/hot-reload/helpers.ts +++ b/core/src/plugins/kubernetes/hot-reload/helpers.ts @@ -172,7 +172,7 @@ export function configureHotReload({ command: [ "/bin/sh", "-c", - "until pgrep -f '^[^ ]+rsync' > /dev/null; do echo waiting for rsync to finish...; sleep 1; done", + "until test $(pgrep -f '^[^ ]+rsync' | wc -l) = 1; do echo waiting for rsync to finish...; sleep 1; done", ], }, }, diff --git a/core/test/unit/src/plugins/kubernetes/container/build/buildkit.ts b/core/test/unit/src/plugins/kubernetes/container/build/buildkit.ts index 8d13c586b7..0eb4559139 100644 --- a/core/test/unit/src/plugins/kubernetes/container/build/buildkit.ts +++ b/core/test/unit/src/plugins/kubernetes/container/build/buildkit.ts @@ -123,7 +123,7 @@ describe("buildkit build", () => { command: [ "/bin/sh", "-c", - "until pgrep -f '^[^ ]+rsync' > /dev/null; do echo waiting for rsync to finish...; sleep 1; done", + "until test $(pgrep -f '^[^ ]+rsync' | wc -l) = 1; do echo waiting for rsync to finish...; sleep 1; done", ], }, }, diff --git a/core/test/unit/src/plugins/kubernetes/container/build/common.ts b/core/test/unit/src/plugins/kubernetes/container/build/common.ts index 970d3e7094..58d3482bd3 100644 --- a/core/test/unit/src/plugins/kubernetes/container/build/common.ts +++ b/core/test/unit/src/plugins/kubernetes/container/build/common.ts @@ -93,7 +93,7 @@ describe("common build", () => { command: [ "/bin/sh", "-c", - "until pgrep -f '^[^ ]+rsync' > /dev/null; do echo waiting for rsync to finish...; sleep 1; done", + "until test $(pgrep -f '^[^ ]+rsync' | wc -l) = 1; do echo waiting for rsync to finish...; sleep 1; done", ], }, }, diff --git a/core/test/unit/src/plugins/kubernetes/hot-reload.ts b/core/test/unit/src/plugins/kubernetes/hot-reload.ts index 23bbc98b6c..3d958e2252 100644 --- a/core/test/unit/src/plugins/kubernetes/hot-reload.ts +++ b/core/test/unit/src/plugins/kubernetes/hot-reload.ts @@ -108,7 +108,7 @@ describe("configureHotReload", () => { command: [ "/bin/sh", "-c", - "until pgrep -f '^[^ ]+rsync' > /dev/null; do echo waiting for rsync to finish...; sleep 1; done", + "until test $(pgrep -f '^[^ ]+rsync' | wc -l) = 1; do echo waiting for rsync to finish...; sleep 1; done", ], }, }, @@ -240,7 +240,7 @@ describe("configureHotReload", () => { command: [ "/bin/sh", "-c", - "until pgrep -f '^[^ ]+rsync' > /dev/null; do echo waiting for rsync to finish...; sleep 1; done", + "until test $(pgrep -f '^[^ ]+rsync' | wc -l) = 1; do echo waiting for rsync to finish...; sleep 1; done", ], }, }, diff --git a/static/kubernetes/system/build-sync/templates/deployment.yaml b/static/kubernetes/system/build-sync/templates/deployment.yaml index 8d298197fd..abd3a89583 100644 --- a/static/kubernetes/system/build-sync/templates/deployment.yaml +++ b/static/kubernetes/system/build-sync/templates/deployment.yaml @@ -62,7 +62,7 @@ spec: # actually killing the pod. If the transfer takes more than 30 seconds, which is unlikely, the pod # will be killed anyway. The command works by counting the number of rsync processes. This works # because rsync forks for every connection. - command: ["/bin/sh", "-c", "until pgrep -f '^[^ ]+rsync' > /dev/null; do echo waiting for rsync to finish...; sleep 1; done"] + command: ["/bin/sh", "-c", "until test $(pgrep -f '^[^ ]+rsync' | wc -l) = 1; do echo waiting for rsync to finish...; sleep 1; done"] volumeMounts: - mountPath: /data name: garden-build-sync