diff --git a/terraform/eval_apply.go b/terraform/eval_apply.go index 422f372c4..7178f0030 100644 --- a/terraform/eval_apply.go +++ b/terraform/eval_apply.go @@ -549,8 +549,9 @@ func (n *EvalApplyProvisioners) apply(ctx EvalContext, provs []*configs.Provisio provisioner := ctx.Provisioner(prov.Type) schema := ctx.ProvisionerSchema(prov.Type) - // TODO the for_each val is not added here, which might causes issues with provisioners - keyData := EvalDataForInstanceKey(instanceAddr.Key, nil) + forEach, forEachDiags := evaluateResourceForEachExpression(n.ResourceConfig.ForEach, ctx) + diags = diags.Append(forEachDiags) + keyData := EvalDataForInstanceKey(instanceAddr.Key, forEach) // Evaluate the main provisioner configuration. config, _, configDiags := ctx.EvaluateBlock(prov.Config, schema, instanceAddr, keyData)