feat: added app to fill a pvc in 1GB increments #24
							
								
								
									
										63
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										63
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							| @ -356,9 +356,9 @@ dependencies = [ | |||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "cc" | name = "cc" | ||||||
| version = "1.2.19" | version = "1.2.20" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "8e3a13707ac958681c13b39b458c073d0d9bc8a22cb1b2f4c8e55eb72c13f362" | checksum = "04da6a0d40b948dfc4fa8f5bbf402b0fc1a64a28dbf7d12ffd683550f2c1b63a" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "shlex", |  "shlex", | ||||||
| ] | ] | ||||||
| @ -382,9 +382,9 @@ dependencies = [ | |||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "chrono" | name = "chrono" | ||||||
| version = "0.4.40" | version = "0.4.41" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" | checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "android-tzdata", |  "android-tzdata", | ||||||
|  "iana-time-zone", |  "iana-time-zone", | ||||||
| @ -519,7 +519,7 @@ version = "0.1.16" | |||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" | checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "getrandom 0.2.15", |  "getrandom 0.2.16", | ||||||
|  "once_cell", |  "once_cell", | ||||||
|  "tiny-keccak", |  "tiny-keccak", | ||||||
| ] | ] | ||||||
| @ -1289,9 +1289,9 @@ dependencies = [ | |||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "getrandom" | name = "getrandom" | ||||||
| version = "0.2.15" | version = "0.2.16" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" | checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "cfg-if", |  "cfg-if", | ||||||
|  "js-sys", |  "js-sys", | ||||||
| @ -1409,6 +1409,7 @@ dependencies = [ | |||||||
|  "serde-value", |  "serde-value", | ||||||
|  "serde_json", |  "serde_json", | ||||||
|  "serde_yaml", |  "serde_yaml", | ||||||
|  |  "temp-file", | ||||||
|  "tokio", |  "tokio", | ||||||
|  "url", |  "url", | ||||||
|  "uuid", |  "uuid", | ||||||
| @ -2064,9 +2065,9 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" | |||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "jiff" | name = "jiff" | ||||||
| version = "0.2.8" | version = "0.2.10" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "e5ad87c89110f55e4cd4dc2893a9790820206729eaf221555f742d540b0724a0" | checksum = "5a064218214dc6a10fbae5ec5fa888d80c45d611aba169222fc272072bf7aef6" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "jiff-static", |  "jiff-static", | ||||||
|  "log", |  "log", | ||||||
| @ -2077,9 +2078,9 @@ dependencies = [ | |||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "jiff-static" | name = "jiff-static" | ||||||
| version = "0.2.8" | version = "0.2.10" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "d076d5b64a7e2fe6f0743f02c43ca4a6725c0f904203bfe276a5b3e793103605" | checksum = "199b7932d97e325aff3a7030e141eafe7f2c6268e1d1b24859b753a627f45254" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "proc-macro2", |  "proc-macro2", | ||||||
|  "quote", |  "quote", | ||||||
| @ -2238,9 +2239,9 @@ checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" | |||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "libm" | name = "libm" | ||||||
| version = "0.2.11" | version = "0.2.13" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" | checksum = "c9627da5196e5d8ed0b0495e61e518847578da83483c37288316d9b2e03a7f72" | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "libredfish" | name = "libredfish" | ||||||
| @ -2947,7 +2948,7 @@ version = "0.2.21" | |||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" | checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "zerocopy 0.8.24", |  "zerocopy 0.8.25", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| @ -3073,7 +3074,7 @@ version = "0.6.4" | |||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "getrandom 0.2.15", |  "getrandom 0.2.16", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| @ -3121,7 +3122,7 @@ version = "0.5.0" | |||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" | checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "getrandom 0.2.15", |  "getrandom 0.2.16", | ||||||
|  "libredox", |  "libredox", | ||||||
|  "thiserror 2.0.12", |  "thiserror 2.0.12", | ||||||
| ] | ] | ||||||
| @ -3259,7 +3260,7 @@ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" | |||||||
| dependencies = [ | dependencies = [ | ||||||
|  "cc", |  "cc", | ||||||
|  "cfg-if", |  "cfg-if", | ||||||
|  "getrandom 0.2.15", |  "getrandom 0.2.16", | ||||||
|  "libc", |  "libc", | ||||||
|  "untrusted", |  "untrusted", | ||||||
|  "windows-sys 0.52.0", |  "windows-sys 0.52.0", | ||||||
| @ -3806,9 +3807,9 @@ dependencies = [ | |||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "signal-hook-registry" | name = "signal-hook-registry" | ||||||
| version = "1.4.2" | version = "1.4.5" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" | checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "libc", |  "libc", | ||||||
| ] | ] | ||||||
| @ -3996,9 +3997,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" | |||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "syn" | name = "syn" | ||||||
| version = "2.0.100" | version = "2.0.101" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" | checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "proc-macro2", |  "proc-macro2", | ||||||
|  "quote", |  "quote", | ||||||
| @ -4079,6 +4080,12 @@ version = "1.0.1" | |||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" | checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "temp-file" | ||||||
|  | version = "0.1.9" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "b5ff282c3f91797f0acb021f3af7fffa8a78601f0f2fd0a9f79ee7dcf9a9af9e" | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "tempfile" | name = "tempfile" | ||||||
| version = "3.19.1" | version = "3.19.1" | ||||||
| @ -4259,9 +4266,9 @@ dependencies = [ | |||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "tokio-util" | name = "tokio-util" | ||||||
| version = "0.7.14" | version = "0.7.15" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" | checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "bytes", |  "bytes", | ||||||
|  "futures-core", |  "futures-core", | ||||||
| @ -5096,11 +5103,11 @@ dependencies = [ | |||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "zerocopy" | name = "zerocopy" | ||||||
| version = "0.8.24" | version = "0.8.25" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" | checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "zerocopy-derive 0.8.24", |  "zerocopy-derive 0.8.25", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| @ -5116,9 +5123,9 @@ dependencies = [ | |||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "zerocopy-derive" | name = "zerocopy-derive" | ||||||
| version = "0.8.24" | version = "0.8.25" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" | checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "proc-macro2", |  "proc-macro2", | ||||||
|  "quote", |  "quote", | ||||||
|  | |||||||
| @ -37,3 +37,4 @@ k3d-rs = { path = "../k3d" } | |||||||
| directories = "6.0.0" | directories = "6.0.0" | ||||||
| lazy_static = "1.5.0" | lazy_static = "1.5.0" | ||||||
| dockerfile_builder = "0.1.5" | dockerfile_builder = "0.1.5" | ||||||
|  | temp-file = "0.1.9" | ||||||
|  | |||||||
| @ -9,6 +9,8 @@ use helm_wrapper_rs::blocking::{DefaultHelmExecutor, HelmExecutor}; | |||||||
| pub use non_blank_string_rs::NonBlankString; | pub use non_blank_string_rs::NonBlankString; | ||||||
| use serde::Serialize; | use serde::Serialize; | ||||||
| use std::collections::HashMap; | use std::collections::HashMap; | ||||||
|  | use std::path::Path; | ||||||
|  | use temp_file::TempFile; | ||||||
| 
 | 
 | ||||||
| #[derive(Debug, Clone, Serialize)] | #[derive(Debug, Clone, Serialize)] | ||||||
| pub struct HelmChartScore { | pub struct HelmChartScore { | ||||||
| @ -17,6 +19,7 @@ pub struct HelmChartScore { | |||||||
|     pub chart_name: NonBlankString, |     pub chart_name: NonBlankString, | ||||||
|     pub chart_version: Option<NonBlankString>, |     pub chart_version: Option<NonBlankString>, | ||||||
|     pub values_overrides: Option<HashMap<NonBlankString, String>>, |     pub values_overrides: Option<HashMap<NonBlankString, String>>, | ||||||
|  |     pub values_yaml: Option<String>, | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| impl<T: Topology + HelmCommand> Score<T> for HelmChartScore { | impl<T: Topology + HelmCommand> Score<T> for HelmChartScore { | ||||||
| @ -48,6 +51,16 @@ impl<T: Topology + HelmCommand> Interpret<T> for HelmChartInterpret { | |||||||
|             .namespace |             .namespace | ||||||
|             .as_ref() |             .as_ref() | ||||||
|             .unwrap_or_else(|| todo!("Get namespace from active kubernetes cluster")); |             .unwrap_or_else(|| todo!("Get namespace from active kubernetes cluster")); | ||||||
|  | 
 | ||||||
|  |         let tf: TempFile; | ||||||
|  |         let yaml_path: Option<&Path> = match self.score.values_yaml.as_ref() { | ||||||
|  |             Some(yaml_str) => { | ||||||
|  |                 tf = temp_file::with_contents(yaml_str.as_bytes()); | ||||||
|  |                 Some(tf.path()) | ||||||
|  |             } | ||||||
|  |             None => None, | ||||||
|  |         }; | ||||||
|  | 
 | ||||||
|         let helm_executor = DefaultHelmExecutor::new(); |         let helm_executor = DefaultHelmExecutor::new(); | ||||||
|         let res = helm_executor.install_or_upgrade( |         let res = helm_executor.install_or_upgrade( | ||||||
|             &ns, |             &ns, | ||||||
| @ -55,9 +68,10 @@ impl<T: Topology + HelmCommand> Interpret<T> for HelmChartInterpret { | |||||||
|             &self.score.chart_name, |             &self.score.chart_name, | ||||||
|             self.score.chart_version.as_ref(), |             self.score.chart_version.as_ref(), | ||||||
|             self.score.values_overrides.as_ref(), |             self.score.values_overrides.as_ref(), | ||||||
|             None, |             yaml_path, | ||||||
|             None, |             None, | ||||||
|         ); |         ); | ||||||
|  | 
 | ||||||
|         let status = match res { |         let status = match res { | ||||||
|             Ok(status) => status, |             Ok(status) => status, | ||||||
|             Err(err) => return Err(InterpretError::new(err.to_string())), |             Err(err) => return Err(InterpretError::new(err.to_string())), | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user