MCPcopy Create free account
hub / github.com/Qovery/engine / apply_chart_backup

Function apply_chart_backup

lib-engine/src/cmd/helm_utils.rs:183–261  ·  view source on GitHub ↗
(
    kubernetes_config: P,
    workspace_root_dir: P,
    envs: &[(&str, &str)],
    chart: &ChartInfo,
)

Source from the content-addressed store, hash-verified

181}
182
183pub fn apply_chart_backup<P>(
184 kubernetes_config: P,
185 workspace_root_dir: P,
186 envs: &[(&str, &str)],
187 chart: &ChartInfo,
188) -> Result<(), HelmError>
189where
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,

Callers 1

execMethod · 0.85

Calls 8

kubectl_exec_get_secretsFunction · 0.85
kubectl_delete_secretFunction · 0.85
kubectl_apply_with_pathFunction · 0.85
message_safeMethod · 0.80
message_rawMethod · 0.80
as_strMethod · 0.45
cloneMethod · 0.45

Tested by

no test coverage detected