Comment
Esteemed Contributor III

Tnx, helpful guide!

However I do notice that the direct engine still lacks some functionality.
fetching values from cluster policies apparently is only partially implemented.
I had Genie make me a nice summary :-):

Summary: After migrating from the Terraform engine to the direct engine, jobs with apply_policy_default_values: true are flagged as "changed" on every bundle plan / bundle deploy, even when no YAML changes were made. This creates an infinite update loop because the cluster policy re-injects the same values after each deploy.

Current behavior: The direct engine correctly skips some policy/platform-populated fields:

  • azure_attributes → "action": "skip", "reason": "managed"
  • data_security_mode → "action": "skip", "reason": "backend_default"
  • enable_elastic_disk → "action": "skip", "reason": "backend_default"
  • node_type_id → "action": "skip", "reason": "backend_default"

But it flags these policy-injected fields as "action": "update":

  • spark_env_vars
  • spark_version
  • spark_conf
  • custom_tags (e.g. ResourceClass: SingleNode)
  • runtime_engine

Expected behavior: When apply_policy_default_values: true is set on a job cluster, the engine should recognize that the policy is the source of truth for fields not declared in the bundle YAML. Fields present in remote state but absent from local config — that are injected by the referenced policy_id — should be treated as "action": "skip", "reason": "managed" (or a new reason like "policy_default"), not as removals.