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

Function execute_diff

lib-engine/src/blueprint/action/deploy_helm.rs:87–121  ·  view source on GitHub ↗

DIFF action for a Helm blueprint: render values + qovery_helm template, run `terraform plan`, return the human-readable plan output. Never applies.

(
    working_dir: &Path,
    lib_root_dir: &str,
    spec: &ResolvedHelmSpec,
    request: &BlueprintRequest,
    blueprint_info: &BlueprintInfo,
    event_details: &EventDetails,
    logger: &dyn Lo

Source from the content-addressed store, hash-verified

85/// DIFF action for a Helm blueprint: render values + qovery_helm template, run `terraform plan`,
86/// return the human-readable plan output. Never applies.
87pub fn execute_diff(
88 working_dir: &Path,
89 lib_root_dir: &str,
90 spec: &ResolvedHelmSpec,
91 request: &BlueprintRequest,
92 blueprint_info: &BlueprintInfo,
93 event_details: &EventDetails,
94 logger: &dyn Logger,
95) -> Result<String, Box<EngineError>> {
96 let rendered_values = render_values_yaml(working_dir, &request.variables).map_err(|e| {
97 Box::new(EngineError::new_blueprint_error(
98 event_details.clone(),
99 BlueprintError::TerraformGenerationError(format!("Failed to render values.yaml: {}", e)),
100 ))
101 })?;
102
103 let template_dir = PathBuf::from(lib_root_dir).join("blueprint").join("helm");
104 let ctx =
105 tera::Context::from_serialize(BlueprintHelmTeraContext::new(spec, request, blueprint_info, rendered_values))
106 .map_err(|e| {
107 Box::new(EngineError::new_blueprint_error(
108 event_details.clone(),
109 BlueprintError::TerraformGenerationError(format!("Failed to build Tera context: {}", e)),
110 ))
111 })?;
112
113 render_and_diff(
114 &template_dir,
115 &ctx,
116 &request.qovery_api_token,
117 "qovery_helm",
118 event_details,
119 logger,
120 )
121}
122
123/// Render the blueprint's values.yaml template with Tera, replacing {{ var }} placeholders.
124/// Returns None if no values.yaml exists.

Callers 1

runMethod · 0.85

Calls 3

render_values_yamlFunction · 0.85
render_and_diffFunction · 0.85
cloneMethod · 0.45

Tested by

no test coverage detected