(
kubernetes_config: P,
workspace_root_dir: P,
envs: &[(&str, &str)],
chart: &ChartInfo,
)
| 181 | } |
| 182 | |
| 183 | pub fn apply_chart_backup<P>( |
| 184 | kubernetes_config: P, |
| 185 | workspace_root_dir: P, |
| 186 | envs: &[(&str, &str)], |
| 187 | chart: &ChartInfo, |
| 188 | ) -> Result<(), HelmError> |
| 189 | where |
| 190 | P: AsRef<Path>, |
| 191 | { |
| 192 | let secrets = kubectl_exec_get_secrets( |
| 193 | &kubernetes_config, |
| 194 | chart.clone().namespace.to_string().as_str(), |
| 195 | "", |
| 196 | envs.to_vec(), |
| 197 | ) |
| 198 | .map_err(|e| { |
| 199 | CmdError( |
| 200 | chart.clone().name, |
| 201 | HelmCommand::UPGRADE, |
| 202 | CommandError::new(e.message_safe(), e.message_raw(), None), |
| 203 | ) |
| 204 | })? |
| 205 | .items; |
| 206 | |
| 207 | for secret in secrets { |
| 208 | if secret.metadata.name.contains("-q-backup") { |
| 209 | let path = match create_yaml_file_from_secret(&workspace_root_dir, secret.clone()) { |
| 210 | Ok(path) => path, |
| 211 | Err(e) => match e.message_safe().to_lowercase().contains("no content") { |
| 212 | true => match kubectl_delete_secret( |
| 213 | &kubernetes_config, |
| 214 | envs.to_vec(), |
| 215 | Some(chart.clone().namespace.to_string().as_str()), |
| 216 | secret.metadata.name, |
| 217 | ) { |
| 218 | Ok(_) => continue, |
| 219 | Err(e) => { |
| 220 | return Err(CmdError( |
| 221 | chart.clone().name, |
| 222 | HelmCommand::UPGRADE, |
| 223 | CommandError::new(e.message_safe(), e.message_raw(), None), |
| 224 | )); |
| 225 | } |
| 226 | }, |
| 227 | false => { |
| 228 | return Err(CmdError( |
| 229 | chart.clone().name, |
| 230 | HelmCommand::UPGRADE, |
| 231 | CommandError::new(e.message_safe(), e.message_raw(), None), |
| 232 | )); |
| 233 | } |
| 234 | }, |
| 235 | }; |
| 236 | |
| 237 | if let Err(e) = kubectl_apply_with_path(&kubernetes_config, envs.to_vec(), path.as_str(), None) { |
| 238 | return Err(CmdError( |
| 239 | chart.clone().name, |
| 240 | HelmCommand::UPGRADE, |
no test coverage detected