Skip to content

Commit 6f200bc

Browse files
coryflucasBBBmau
andauthored
run acceptance tests with multiple versions of kubernetes (#2563)
* run acceptance tests with multiple versions of kubernetes fixes #2562 * restrict tests from running against unsupported versions of kubernetes * fix replacement check in cron_job_v1beta1 tests * fix test config dependency reference --------- Co-authored-by: Mauricio Alvarez Leon <[email protected]>
1 parent 9f4cabc commit 6f200bc

8 files changed

+51
-11
lines changed

.github/workflows/acceptance_tests_kind.yaml

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ on:
55
inputs:
66
kindVersion:
77
description: The kind version
8-
default: 0.20.0 # Kubernetes version: 1.27.X
8+
default: 0.20.0
99
runTests:
1010
description: The regex passed to the -run option of `go test`
1111
default: "^TestAcc"
@@ -34,6 +34,19 @@ jobs:
3434
acceptance_tests_kind:
3535
if: ${{ github.repository_owner == 'hashicorp' }}
3636
runs-on: custom-linux-medium
37+
strategy:
38+
# Don't cancel all in-progress and queued jobs in the matrix if any job in the matrix fails.
39+
# That will be helpful to catch any issues related to a particular Kubernetes version.
40+
fail-fast: false
41+
matrix:
42+
kubernetes_version:
43+
# kind images: https://github.com/kubernetes-sigs/kind/releases (note the images are kind release specific)
44+
- v1.29.0@sha256:eaa1450915475849a73a9227b8f201df25e55e268e5d619312131292e324d570
45+
- v1.28.0@sha256:b7a4cad12c197af3ba43202d3efe03246b3f0793f162afb40a33c923952d5b31
46+
- v1.27.3@sha256:3966ac761ae0136263ffdb6cfd4db23ef8a83cba8a463690e98317add2c9ba72
47+
- v1.26.6@sha256:6e2d8b28a5b601defe327b98bd1c2d1930b49e5d8c512e1895099e4504007adb
48+
- v1.25.11@sha256:227fa11ce74ea76a0474eeefb84cb75d8dad1b08638371ecf0e86259b35be0c8
49+
- v1.23.17@sha256:59c989ff8a517a93127d4a536e7014d28e235fb3529d9fba91b3951d461edfdb
3750
steps:
3851
- name: Checkout repository
3952
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
@@ -51,6 +64,7 @@ jobs:
5164
with:
5265
wait: 2m
5366
version: v${{ env.KIND_VERSION }}
67+
node_image: kindest/node:${{ matrix.kubernetes_version }}
5468
config: .github/config/acceptance_tests_kind_config.yaml
5569
- name: Run Acceptance Test Suite
5670
env:

kubernetes/data_source_kubernetes_service_account_v1_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ resource "kubernetes_secret_v1" "test" {
165165
}
166166
type = "kubernetes.io/service-account-token"
167167
depends_on = [
168-
kubernetes_service_account.test
168+
kubernetes_service_account_v1.test
169169
]
170170
}
171171
`, name, name, name)

kubernetes/resource_kubernetes_cron_job_v1_test.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,10 @@ func TestAccKubernetesCronJobV1_minimalWithPodFailurePolicy(t *testing.T) {
177177
imageName := busyboxImage
178178

179179
resource.ParallelTest(t, resource.TestCase{
180-
PreCheck: func() { testAccPreCheck(t) },
180+
PreCheck: func() {
181+
testAccPreCheck(t)
182+
skipIfClusterVersionLessThan(t, "1.25.0")
183+
},
181184
IDRefreshName: resourceName,
182185
IDRefreshIgnore: []string{"metadata.0.resource_version"},
183186
ProviderFactories: testAccProviderFactories,

kubernetes/resource_kubernetes_cron_job_v1beta1_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ func testAccKubernetesCronJobV1Beta1Config_extraModified(name, imageName string)
355355
func testAccCheckKubernetesCronJobV1Beta1ForceNew(old, new *batchv1beta1.CronJob, wantNew bool) resource.TestCheckFunc {
356356
return func(s *terraform.State) error {
357357
if wantNew {
358-
if old.ObjectMeta.UID != new.ObjectMeta.UID {
358+
if old.ObjectMeta.UID == new.ObjectMeta.UID {
359359
return fmt.Errorf("Expecting forced replacement")
360360
}
361361
} else {

kubernetes/resource_kubernetes_job_v1_test.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,10 @@ func TestAccKubernetesJobV1_basic(t *testing.T) {
5555
resourceName := "kubernetes_job_v1.test"
5656

5757
resource.ParallelTest(t, resource.TestCase{
58-
PreCheck: func() { testAccPreCheck(t) },
58+
PreCheck: func() {
59+
testAccPreCheck(t)
60+
skipIfClusterVersionLessThan(t, "1.26.0")
61+
},
5962
IDRefreshName: resourceName,
6063
IDRefreshIgnore: []string{"metadata.0.resource_version"},
6164
ProviderFactories: testAccProviderFactories,
@@ -122,7 +125,10 @@ func TestAccKubernetesJobV1_update(t *testing.T) {
122125
resourceName := "kubernetes_job_v1.test"
123126

124127
resource.ParallelTest(t, resource.TestCase{
125-
PreCheck: func() { testAccPreCheck(t) },
128+
PreCheck: func() {
129+
testAccPreCheck(t)
130+
skipIfClusterVersionLessThan(t, "1.26.0")
131+
},
126132
IDRefreshName: resourceName,
127133
IDRefreshIgnore: []string{"metadata.0.resource_version"},
128134
ProviderFactories: testAccProviderFactories,

kubernetes/resource_kubernetes_persistent_volume_v1_test.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -741,7 +741,10 @@ func TestAccKubernetesPersistentVolumeV1_accessMode_ReadWriteOncePod(t *testing.
741741
resourceName := "kubernetes_persistent_volume_v1.test"
742742

743743
resource.ParallelTest(t, resource.TestCase{
744-
PreCheck: func() { testAccPreCheck(t) },
744+
PreCheck: func() {
745+
testAccPreCheck(t)
746+
skipIfClusterVersionLessThan(t, "1.27.0")
747+
},
745748
IDRefreshName: resourceName,
746749
IDRefreshIgnore: []string{"metadata.0.resource_version"},
747750
ProviderFactories: testAccProviderFactories,

kubernetes/resource_kubernetes_pod_v1_test.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1440,6 +1440,7 @@ func TestAccKubernetesPodV1_topologySpreadConstraint(t *testing.T) {
14401440
resource.ParallelTest(t, resource.TestCase{
14411441
PreCheck: func() {
14421442
testAccPreCheck(t)
1443+
skipIfClusterVersionLessThan(t, "1.27.0")
14431444
},
14441445
ProviderFactories: testAccProviderFactories,
14451446
CheckDestroy: testAccCheckKubernetesPodV1Destroy,
@@ -1477,6 +1478,7 @@ func TestAccKubernetesPodV1_topologySpreadConstraintMinDomains(t *testing.T) {
14771478
resource.ParallelTest(t, resource.TestCase{
14781479
PreCheck: func() {
14791480
testAccPreCheck(t)
1481+
skipIfClusterVersionLessThan(t, "1.27.0")
14801482
},
14811483
ProviderFactories: testAccProviderFactories,
14821484
CheckDestroy: testAccCheckKubernetesPodV1Destroy,
@@ -1609,7 +1611,10 @@ func TestAccKubernetesPodV1_os(t *testing.T) {
16091611
imageName := busyboxImage
16101612

16111613
resource.ParallelTest(t, resource.TestCase{
1612-
PreCheck: func() { testAccPreCheck(t) },
1614+
PreCheck: func() {
1615+
testAccPreCheck(t)
1616+
skipIfClusterVersionLessThan(t, "1.24.0")
1617+
},
16131618
ProviderFactories: testAccProviderFactories,
16141619
CheckDestroy: testAccCheckKubernetesPodV1Destroy,
16151620
Steps: []resource.TestStep{

kubernetes/resource_kubernetes_stateful_set_v1_test.go

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,10 @@ func TestAccKubernetesStatefulSetV1_basic(t *testing.T) {
4949
imageName := agnhostImage
5050

5151
resource.ParallelTest(t, resource.TestCase{
52-
PreCheck: func() { testAccPreCheck(t) },
52+
PreCheck: func() {
53+
testAccPreCheck(t)
54+
skipIfClusterVersionLessThan(t, "1.27.0")
55+
},
5356
IDRefreshName: resourceName,
5457
IDRefreshIgnore: []string{
5558
"metadata.0.resource_version",
@@ -128,7 +131,10 @@ func TestAccKubernetesStatefulSetV1_basic_idempotency(t *testing.T) {
128131
imageName := agnhostImage
129132

130133
resource.ParallelTest(t, resource.TestCase{
131-
PreCheck: func() { testAccPreCheck(t) },
134+
PreCheck: func() {
135+
testAccPreCheck(t)
136+
skipIfClusterVersionLessThan(t, "1.27.0")
137+
},
132138
IDRefreshName: resourceName,
133139
IDRefreshIgnore: []string{
134140
"metadata.0.resource_version",
@@ -163,7 +169,10 @@ func TestAccKubernetesStatefulSetV1_Update(t *testing.T) {
163169
imageName := agnhostImage
164170

165171
resource.ParallelTest(t, resource.TestCase{
166-
PreCheck: func() { testAccPreCheck(t) },
172+
PreCheck: func() {
173+
testAccPreCheck(t)
174+
skipIfClusterVersionLessThan(t, "1.27.0")
175+
},
167176
IDRefreshName: resourceName,
168177
IDRefreshIgnore: []string{
169178
"metadata.0.resource_version",

0 commit comments

Comments
 (0)