Configurable PVC SPEC via env var
							parent
							
								
									ff449d4da0
								
							
						
					
					
						commit
						236ed3e20b
					
				|  | @ -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(error); |                 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(error); |       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