pr feedback - cleanup images before job creation and use IfNotPresent
parent
4b182a065a
commit
e025c13d92
|
|
@ -3751,6 +3751,20 @@ class Kubernetes {
|
||||||
this.jobName = `unity-builder-job-${this.buildGuid}`;
|
this.jobName = `unity-builder-job-${this.buildGuid}`;
|
||||||
this.containerName = `main`;
|
this.containerName = `main`;
|
||||||
await kubernetes_secret_1.default.createSecret(secrets, this.secretName, this.namespace, this.kubeClient);
|
await kubernetes_secret_1.default.createSecret(secrets, this.secretName, this.namespace, this.kubeClient);
|
||||||
|
// For tests, clean up old images before creating job to free space for image pull
|
||||||
|
if (process.env['cloudRunnerTests'] === 'true') {
|
||||||
|
try {
|
||||||
|
cloud_runner_logger_1.default.log('Cleaning up old images in k3d node before pulling new image...');
|
||||||
|
const { CloudRunnerSystem } = await Promise.resolve().then(() => __importStar(__nccwpck_require__(4197)));
|
||||||
|
// Clean up unused images in k3d node using containerd
|
||||||
|
await CloudRunnerSystem.Run('docker exec k3d-unity-builder-agent-0 sh -c "crictl rmi --prune 2>/dev/null || true" || true', true, true);
|
||||||
|
await CloudRunnerSystem.Run('docker exec k3d-unity-builder-agent-0 sh -c "crictl images -q | head -n -1 | xargs -r crictl rmi 2>/dev/null || true" || true', true, true);
|
||||||
|
}
|
||||||
|
catch (cleanupError) {
|
||||||
|
cloud_runner_logger_1.default.logWarning(`Failed to cleanup images before job creation: ${cleanupError}`);
|
||||||
|
// Continue anyway - image might already be cached
|
||||||
|
}
|
||||||
|
}
|
||||||
let output = '';
|
let output = '';
|
||||||
try {
|
try {
|
||||||
cloud_runner_logger_1.default.log('Job does not exist');
|
cloud_runner_logger_1.default.log('Job does not exist');
|
||||||
|
|
@ -3946,6 +3960,7 @@ class KubernetesJobSpecFactory {
|
||||||
ttlSecondsAfterFinished: 9999,
|
ttlSecondsAfterFinished: 9999,
|
||||||
name: containerName,
|
name: containerName,
|
||||||
image,
|
image,
|
||||||
|
imagePullPolicy: process.env['cloudRunnerTests'] === 'true' ? 'IfNotPresent' : 'Always',
|
||||||
command: ['/bin/sh'],
|
command: ['/bin/sh'],
|
||||||
args: [
|
args: [
|
||||||
'-c',
|
'-c',
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -155,6 +155,29 @@ class Kubernetes implements ProviderInterface {
|
||||||
this.jobName = `unity-builder-job-${this.buildGuid}`;
|
this.jobName = `unity-builder-job-${this.buildGuid}`;
|
||||||
this.containerName = `main`;
|
this.containerName = `main`;
|
||||||
await KubernetesSecret.createSecret(secrets, this.secretName, this.namespace, this.kubeClient);
|
await KubernetesSecret.createSecret(secrets, this.secretName, this.namespace, this.kubeClient);
|
||||||
|
|
||||||
|
// For tests, clean up old images before creating job to free space for image pull
|
||||||
|
if (process.env['cloudRunnerTests'] === 'true') {
|
||||||
|
try {
|
||||||
|
CloudRunnerLogger.log('Cleaning up old images in k3d node before pulling new image...');
|
||||||
|
const { CloudRunnerSystem } = await import('../../services/core/cloud-runner-system');
|
||||||
|
// Clean up unused images in k3d node using containerd
|
||||||
|
await CloudRunnerSystem.Run(
|
||||||
|
'docker exec k3d-unity-builder-agent-0 sh -c "crictl rmi --prune 2>/dev/null || true" || true',
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
);
|
||||||
|
await CloudRunnerSystem.Run(
|
||||||
|
'docker exec k3d-unity-builder-agent-0 sh -c "crictl images -q | head -n -1 | xargs -r crictl rmi 2>/dev/null || true" || true',
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
);
|
||||||
|
} catch (cleanupError) {
|
||||||
|
CloudRunnerLogger.logWarning(`Failed to cleanup images before job creation: ${cleanupError}`);
|
||||||
|
// Continue anyway - image might already be cached
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let output = '';
|
let output = '';
|
||||||
try {
|
try {
|
||||||
CloudRunnerLogger.log('Job does not exist');
|
CloudRunnerLogger.log('Job does not exist');
|
||||||
|
|
|
||||||
|
|
@ -81,6 +81,7 @@ class KubernetesJobSpecFactory {
|
||||||
ttlSecondsAfterFinished: 9999,
|
ttlSecondsAfterFinished: 9999,
|
||||||
name: containerName,
|
name: containerName,
|
||||||
image,
|
image,
|
||||||
|
imagePullPolicy: process.env['cloudRunnerTests'] === 'true' ? 'IfNotPresent' : 'Always',
|
||||||
command: ['/bin/sh'],
|
command: ['/bin/sh'],
|
||||||
args: [
|
args: [
|
||||||
'-c',
|
'-c',
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue