Skip to content

Commit 0aa10d3

Browse files
committed
Add version skip for < 1.12.0 for identity
1 parent b68b4ee commit 0aa10d3

File tree

2 files changed

+30
-5
lines changed

2 files changed

+30
-5
lines changed

manifest/test/acceptance/configmap_test.go

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"testing"
1212

1313
"github.com/hashicorp/go-hclog"
14+
version "github.com/hashicorp/go-version"
1415
"github.com/hashicorp/terraform-provider-kubernetes/manifest/provider"
1516
"github.com/hashicorp/terraform-provider-kubernetes/manifest/test/helper/kubernetes"
1617
tfstatehelper "github.com/hashicorp/terraform-provider-kubernetes/manifest/test/helper/state"
@@ -88,8 +89,17 @@ func TestKubernetesManifest_ConfigMap(t *testing.T) {
8889

8990
tfstate.AssertAttributeDoesNotExist(t, "kubernetes_manifest.test.spec")
9091

91-
tfstate.AssertIdentityValueEqual(t, "kubernetes_manifest.test", "api_version", "v1")
92-
tfstate.AssertIdentityValueEqual(t, "kubernetes_manifest.test", "kind", "ConfigMap")
93-
tfstate.AssertIdentityValueEqual(t, "kubernetes_manifest.test", "name", name)
94-
tfstate.AssertIdentityValueEqual(t, "kubernetes_manifest.test", "namespace", namespace)
92+
tfversion, err := tf.Version(ctx)
93+
if err != nil {
94+
t.Fatalf("Failed to retrieve terraform version: %v", err)
95+
}
96+
constraint, _ := version.NewConstraint(">= 1.12.0")
97+
if constraint.Check(tfversion) {
98+
tfstate.AssertIdentityValueEqual(t, "kubernetes_manifest.test", "api_version", "v1")
99+
tfstate.AssertIdentityValueEqual(t, "kubernetes_manifest.test", "kind", "ConfigMap")
100+
tfstate.AssertIdentityValueEqual(t, "kubernetes_manifest.test", "name", name)
101+
tfstate.AssertIdentityValueEqual(t, "kubernetes_manifest.test", "namespace", namespace)
102+
} else {
103+
t.Logf("Skipping identity assertions because terraform version %s is less than 1.12.0", tfversion)
104+
}
95105
}

manifest/test/plugintest/working_dir.go

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import (
1212
"os"
1313
"path/filepath"
1414

15+
"github.com/hashicorp/go-version"
16+
1517
"github.com/hashicorp/terraform-exec/tfexec"
1618
tfjson "github.com/hashicorp/terraform-json"
1719
"github.com/hashicorp/terraform-provider-kubernetes/manifest/test/logging"
@@ -84,7 +86,7 @@ func (wd *WorkingDir) SetConfig(ctx context.Context, cfg string) error {
8486
if err := os.Remove(rmFilename); err != nil && !os.IsNotExist(err) {
8587
return fmt.Errorf("unable to remove %q: %w", rmFilename, err)
8688
}
87-
err := os.WriteFile(outFilename, bCfg, 0700)
89+
err := os.WriteFile(outFilename, bCfg, 0o700)
8890
if err != nil {
8991
return err
9092
}
@@ -326,3 +328,16 @@ func (wd *WorkingDir) Schemas(ctx context.Context) (*tfjson.ProviderSchemas, err
326328

327329
return providerSchemas, err
328330
}
331+
332+
// Version returns the current version of Terraform
333+
//
334+
// If the version cannot be read, Version returns an error.
335+
func (wd *WorkingDir) Version(ctx context.Context) (*version.Version, error) {
336+
logging.HelperResourceTrace(ctx, "Calling Terraform CLI providers version command")
337+
338+
version, _, err := wd.tf.Version(context.Background(), false)
339+
340+
logging.HelperResourceTrace(ctx, "Called Terraform CLI providers version command")
341+
342+
return version, err
343+
}

0 commit comments

Comments
 (0)