diff --git a/core/packages/gcp-metadata/src/gcp-residency.ts b/core/packages/gcp-metadata/src/gcp-residency.ts index 8c65d260efa2..1fdf14c36d84 100644 --- a/core/packages/gcp-metadata/src/gcp-residency.ts +++ b/core/packages/gcp-metadata/src/gcp-residency.ts @@ -47,11 +47,15 @@ export function isGoogleCloudServerless(): boolean { * `K_SERVICE` is used in Cloud Run and newer Cloud Functions environments: * - See {@link https://cloud.google.com/run/docs/container-contract#env-vars Cloud Run environment variables}. * - See {@link https://cloud.google.com/functions/docs/env-var Cloud Functions newer runtimes}. + * + * `CLOUD_RUN_WORKER_POOL` is used for Cloud Run worker pools: + * - See {@link https://cloud.google.com/run/docs/container-contract#env-vars Cloud Run environment variables}. */ const isGFEnvironment = process.env.CLOUD_RUN_JOB || process.env.FUNCTION_NAME || - process.env.K_SERVICE; + process.env.K_SERVICE || + process.env.CLOUD_RUN_WORKER_POOL; return !!isGFEnvironment; } diff --git a/core/packages/gcp-metadata/test/gcp-residency.test.ts b/core/packages/gcp-metadata/test/gcp-residency.test.ts index c4e2422e2cd3..d84d8bd0890c 100644 --- a/core/packages/gcp-metadata/test/gcp-residency.test.ts +++ b/core/packages/gcp-metadata/test/gcp-residency.test.ts @@ -57,6 +57,12 @@ describe('gcp-residency', () => { assert(gcpResidency.isGoogleCloudServerless()); }); + it('should return `true` if `CLOUD_RUN_WORKER_POOL` env is set', () => { + process.env.CLOUD_RUN_WORKER_POOL = '1'; + + assert(gcpResidency.isGoogleCloudServerless()); + }); + it('should return `false` if none of the envs are set', () => { assert.equal(gcpResidency.isGoogleCloudServerless(), false); }); diff --git a/core/packages/gcp-metadata/test/utils/gcp-residency.ts b/core/packages/gcp-metadata/test/utils/gcp-residency.ts index 65734021edee..0660b4cec0e0 100644 --- a/core/packages/gcp-metadata/test/utils/gcp-residency.ts +++ b/core/packages/gcp-metadata/test/utils/gcp-residency.ts @@ -109,6 +109,7 @@ export class GCPResidencyUtil { delete customEnv.CLOUD_RUN_JOB; delete customEnv.FUNCTION_NAME; delete customEnv.K_SERVICE; + delete customEnv.CLOUD_RUN_WORKER_POOL; this.stubs.processEnv ??= this.sandbox.stub(process, 'env'); this.stubs.processEnv.value(customEnv);