Add deprecation warning for vendor provisioners
Adds a warning for chef, habitat, puppet, and salt-masterless provisioners, and a corresponding test file to test for the warning
This commit is contained in:
parent
1b9b85115b
commit
edc670d079
|
@ -31,6 +31,16 @@ func decodeProvisionerBlock(block *hcl.Block) (*Provisioner, hcl.Diagnostics) {
|
|||
content, config, diags := block.Body.PartialContent(provisionerBlockSchema)
|
||||
pv.Config = config
|
||||
|
||||
switch pv.Type {
|
||||
case "chef", "habitat", "puppet", "salt-masterless":
|
||||
diags = append(diags, &hcl.Diagnostic{
|
||||
Severity: hcl.DiagWarning,
|
||||
Summary: fmt.Sprintf("The \"%s\" provisioner is deprecated", pv.Type),
|
||||
Detail: fmt.Sprintf("The \"%s\" provisioner is deprecated and will be removed from future versions of Terraform. Visit https://learn.hashicorp.com/collections/terraform/provision for alternatives to using provisioners that are a better fit for the Terraform workflow.", pv.Type),
|
||||
Subject: &pv.TypeRange,
|
||||
})
|
||||
}
|
||||
|
||||
if attr, exists := content.Attributes["when"]; exists {
|
||||
expr, shimDiags := shimTraversalInString(attr.Expr, true)
|
||||
diags = append(diags, shimDiags...)
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
resource "null_resource" "test" {
|
||||
provisioner "habitat" {} # WARNING: The "habitat" provisioner is deprecated
|
||||
}
|
Loading…
Reference in New Issue