diff --git a/src/server/lib/kubernetes/jobFactory.ts b/src/server/lib/kubernetes/jobFactory.ts index 37ea3f10..029022a4 100644 --- a/src/server/lib/kubernetes/jobFactory.ts +++ b/src/server/lib/kubernetes/jobFactory.ts @@ -120,7 +120,8 @@ export interface BuildJobConfig { } export function createBuildJob(config: BuildJobConfig): V1Job { - const ttl = config.isStatic ? 86400 : undefined; + // Keep failed pods for 24 hours for debugging purposes + const ttl = 86400; return createKubernetesJob({ name: config.jobName, @@ -172,7 +173,8 @@ export interface HelmJobConfig { } export function createHelmJob(config: HelmJobConfig): V1Job { - const ttl = config.isStatic ? 86400 : undefined; + // Keep failed pods for 24 hours for debugging purposes + const ttl = 86400; const timeout = config.timeout || 1800; // 30 minutes default const labels: Record = { diff --git a/src/server/lib/nativeBuild/__tests__/utils.test.ts b/src/server/lib/nativeBuild/__tests__/utils.test.ts index 7a6a99b1..9bc33209 100644 --- a/src/server/lib/nativeBuild/__tests__/utils.test.ts +++ b/src/server/lib/nativeBuild/__tests__/utils.test.ts @@ -80,7 +80,7 @@ describe('nativeBuild/utils', () => { expect(manifest.metadata.annotations['lifecycle.io/triggered-at']).toBeDefined(); // Check spec - expect(manifest.spec.ttlSecondsAfterFinished).toBeUndefined(); // No TTL by default for non-static builds + expect(manifest.spec.ttlSecondsAfterFinished).toBe(86400); // 24 hours TTL for all builds expect(manifest.spec.backoffLimit).toBe(0); expect(manifest.spec.activeDeadlineSeconds).toBe(1800); @@ -92,7 +92,7 @@ describe('nativeBuild/utils', () => { expect(manifest.spec.template.spec.volumes).toEqual([{ name: 'workspace', emptyDir: {} }]); }); - it('sets TTL for static builds', () => { + it('sets TTL for all builds including static builds', () => { const options = { jobName: 'test-job', namespace: 'test-ns', @@ -113,7 +113,7 @@ describe('nativeBuild/utils', () => { }; const manifest = createBuildJobManifest(options); - expect(manifest.spec.ttlSecondsAfterFinished).toBe(86400); // 24 hours for static builds + expect(manifest.spec.ttlSecondsAfterFinished).toBe(86400); // 24 hours for all builds }); }); });