Configurable PVC SPEC via env var
parent
7880d8ea91
commit
33356263db
|
|
@ -2371,6 +2371,7 @@ const async_wait_until_1 = __importDefault(__webpack_require__(41299));
|
||||||
const core = __importStar(__webpack_require__(42186));
|
const core = __importStar(__webpack_require__(42186));
|
||||||
const k8s = __importStar(__webpack_require__(89679));
|
const k8s = __importStar(__webpack_require__(89679));
|
||||||
const cloud_runner_logger_1 = __importDefault(__webpack_require__(22855));
|
const cloud_runner_logger_1 = __importDefault(__webpack_require__(22855));
|
||||||
|
const yaml_1 = __importDefault(__webpack_require__(13552));
|
||||||
class KubernetesStorage {
|
class KubernetesStorage {
|
||||||
static createPersistentVolumeClaim(buildParameters, pvcName, kubeClient, namespace) {
|
static createPersistentVolumeClaim(buildParameters, pvcName, kubeClient, namespace) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
|
@ -2419,7 +2420,7 @@ class KubernetesStorage {
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
core.error('Failed to watch PVC');
|
core.error('Failed to watch PVC');
|
||||||
core.error(JSON.stringify(error, undefined, 4));
|
core.error(error.toString());
|
||||||
core.error(`PVC Body: ${JSON.stringify((yield kubeClient.readNamespacedPersistentVolumeClaim(name, namespace)).body, undefined, 4)}`);
|
core.error(`PVC Body: ${JSON.stringify((yield kubeClient.readNamespacedPersistentVolumeClaim(name, namespace)).body, undefined, 4)}`);
|
||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
|
|
@ -2435,13 +2436,15 @@ class KubernetesStorage {
|
||||||
};
|
};
|
||||||
pvc.spec = {
|
pvc.spec = {
|
||||||
accessModes: ['ReadWriteOnce'],
|
accessModes: ['ReadWriteOnce'],
|
||||||
storageClassName: process.env.K8s_STORAGE_CLASS || 'standard',
|
|
||||||
resources: {
|
resources: {
|
||||||
requests: {
|
requests: {
|
||||||
storage: buildParameters.kubeVolumeSize,
|
storage: buildParameters.kubeVolumeSize,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
if (process.env.K8S_PVC_SPEC) {
|
||||||
|
pvc.spec = yaml_1.default.parse(process.env.K8S_PVC_SPEC);
|
||||||
|
}
|
||||||
const result = yield kubeClient.createNamespacedPersistentVolumeClaim(namespace, pvc);
|
const result = yield kubeClient.createNamespacedPersistentVolumeClaim(namespace, pvc);
|
||||||
return result;
|
return result;
|
||||||
});
|
});
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -3,6 +3,7 @@ import * as core from '@actions/core';
|
||||||
import * as k8s from '@kubernetes/client-node';
|
import * as k8s from '@kubernetes/client-node';
|
||||||
import BuildParameters from '../../build-parameters';
|
import BuildParameters from '../../build-parameters';
|
||||||
import CloudRunnerLogger from '../services/cloud-runner-logger';
|
import CloudRunnerLogger from '../services/cloud-runner-logger';
|
||||||
|
import YAML from 'yaml';
|
||||||
|
|
||||||
class KubernetesStorage {
|
class KubernetesStorage {
|
||||||
public static async createPersistentVolumeClaim(
|
public static async createPersistentVolumeClaim(
|
||||||
|
|
@ -54,9 +55,9 @@ class KubernetesStorage {
|
||||||
intervalBetweenAttempts: 15000,
|
intervalBetweenAttempts: 15000,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
} catch (error) {
|
} catch (error: any) {
|
||||||
core.error('Failed to watch PVC');
|
core.error('Failed to watch PVC');
|
||||||
core.error(JSON.stringify(error, undefined, 4));
|
core.error(error.toString());
|
||||||
core.error(
|
core.error(
|
||||||
`PVC Body: ${JSON.stringify(
|
`PVC Body: ${JSON.stringify(
|
||||||
(await kubeClient.readNamespacedPersistentVolumeClaim(name, namespace)).body,
|
(await kubeClient.readNamespacedPersistentVolumeClaim(name, namespace)).body,
|
||||||
|
|
@ -82,13 +83,15 @@ class KubernetesStorage {
|
||||||
};
|
};
|
||||||
pvc.spec = {
|
pvc.spec = {
|
||||||
accessModes: ['ReadWriteOnce'],
|
accessModes: ['ReadWriteOnce'],
|
||||||
storageClassName: process.env.K8s_STORAGE_CLASS || 'standard',
|
|
||||||
resources: {
|
resources: {
|
||||||
requests: {
|
requests: {
|
||||||
storage: buildParameters.kubeVolumeSize,
|
storage: buildParameters.kubeVolumeSize,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
if (process.env.K8S_PVC_SPEC) {
|
||||||
|
pvc.spec = YAML.parse(process.env.K8S_PVC_SPEC);
|
||||||
|
}
|
||||||
const result = await kubeClient.createNamespacedPersistentVolumeClaim(namespace, pvc);
|
const result = await kubeClient.createNamespacedPersistentVolumeClaim(namespace, pvc);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue