@@ -16,6 +16,29 @@ import (
1616 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1717)
1818
19+ func TestAccKubernetesPersistentVolume_minimal (t * testing.T ) {
20+ var conf api.PersistentVolume
21+ randString := acctest .RandStringFromCharSet (10 , acctest .CharSetAlphaNum )
22+ name := fmt .Sprintf ("tf-acc-test-%s" , randString )
23+
24+ const resourceName = "kubernetes_persistent_volume.test"
25+ resource .Test (t , resource.TestCase {
26+ PreCheck : func () { testAccPreCheck (t ) },
27+ IDRefreshName : resourceName ,
28+ ProviderFactories : testAccProviderFactories ,
29+ CheckDestroy : testAccCheckKubernetesPersistentVolumeDestroy ,
30+ Steps : []resource.TestStep {
31+ {
32+ Config : testAccKubernetesPersistentVolumeConfig_hostPath_basic (name ),
33+ Check : resource .ComposeAggregateTestCheckFunc (
34+ testAccCheckKubernetesPersistentVolumeExists (resourceName , & conf ),
35+ resource .TestCheckResourceAttr (resourceName , "spec.0.claim_ref.#" , "0" ),
36+ ),
37+ },
38+ },
39+ })
40+ }
41+
1942func TestAccKubernetesPersistentVolume_azure_basic (t * testing.T ) {
2043 var conf api.PersistentVolume
2144 randString := acctest .RandStringFromCharSet (10 , acctest .CharSetAlphaNum )
@@ -923,12 +946,11 @@ func TestAccKubernetesPersistentVolume_regression(t *testing.T) {
923946 })
924947}
925948
926- func TestAccKubernetesPersistentVolume_hostPath_claimRef (t * testing.T ) {
927- var conf api.PersistentVolume
949+ func TestAccKubernetesPersistentVolume_hostpath_claimRef (t * testing.T ) {
950+ var conf1 , conf2 api.PersistentVolume
951+ var conf3 api.PersistentVolumeClaim
928952 randString := acctest .RandStringFromCharSet (10 , acctest .CharSetAlphaNum )
929953 name := fmt .Sprintf ("tf-acc-test-%s" , randString )
930- claimNamespace := "default"
931- claimName := "expected-claim-name"
932954
933955 const resourceName = "kubernetes_persistent_volume.test"
934956 resource .Test (t , resource.TestCase {
@@ -937,30 +959,32 @@ func TestAccKubernetesPersistentVolume_hostPath_claimRef(t *testing.T) {
937959 ProviderFactories : testAccProviderFactories ,
938960 CheckDestroy : testAccCheckKubernetesPersistentVolumeDestroy ,
939961 Steps : []resource.TestStep {
940- // create a volume without a claimRef
941962 {
942- Config : testAccKubernetesPersistentVolumeConfig_hostPath_basic (name ),
963+ Config : testAccKubernetesPersistentVolumeConfig_hostPath_claimRef_noNamespace (name ),
943964 Check : resource .ComposeAggregateTestCheckFunc (
944- testAccCheckKubernetesPersistentVolumeExists (resourceName , & conf ),
945- resource .TestCheckResourceAttr (resourceName , "spec.0.claim_ref.#" , "0" ),
965+ testAccCheckKubernetesPersistentVolumeExists (resourceName , & conf1 ),
966+ resource .TestCheckResourceAttr (resourceName , "spec.0.claim_ref.#" , "1" ),
967+ resource .TestCheckResourceAttr (resourceName , "spec.0.claim_ref.0.name" , name ),
968+ resource .TestCheckResourceAttr (resourceName , "spec.0.claim_ref.0.namespace" , "default" ),
946969 ),
947970 },
948- // set the claimRef and assert it's present
949971 {
950- Config : testAccKubernetesPersistentVolumeConfig_hostPath_claimRef (name , claimNamespace , claimName ),
972+ Config : testAccKubernetesPersistentVolumeConfig_hostPath_claimRef_withNamespace (name ),
951973 Check : resource .ComposeAggregateTestCheckFunc (
952- testAccCheckKubernetesPersistentVolumeExists (resourceName , & conf ),
953- resource .TestCheckResourceAttr (resourceName , "spec.0.claim_ref.# " , "1" ),
954- resource .TestCheckResourceAttr (resourceName , "spec.0.claim_ref.0.namespace " , claimNamespace ),
955- resource . TestCheckResourceAttr ( resourceName , "spec.0.claim_ref.0.name" , claimName ),
974+ testAccCheckKubernetesPersistentVolumeExists (resourceName , & conf2 ),
975+ resource .TestCheckResourceAttr (resourceName , "spec.0.claim_ref.0.namespace " , name ),
976+ resource .TestCheckResourceAttr (resourceName , "spec.0.claim_ref.0.name " , name ),
977+ testAccCheckKubernetesPersistentVolumeForceNew ( & conf1 , & conf2 , false ),
956978 ),
957979 },
958- // unset the claimRef and assert it's absent
959980 {
960- Config : testAccKubernetesPersistentVolumeConfig_hostPath_basic (name ),
981+ Config : testAccKubernetesPersistentVolumeConfig_hostPath_claimRef_withPVC (name ),
961982 Check : resource .ComposeAggregateTestCheckFunc (
962- testAccCheckKubernetesPersistentVolumeExists (resourceName , & conf ),
963- resource .TestCheckResourceAttr (resourceName , "spec.0.claim_ref.#" , "0" ),
983+ testAccCheckKubernetesPersistentVolumeExists (resourceName , & conf2 ),
984+ testAccCheckKubernetesPersistentVolumeClaimExists ("kubernetes_persistent_volume_claim.test" , & conf3 ),
985+ resource .TestCheckResourceAttr (resourceName , "spec.0.claim_ref.0.namespace" , name ),
986+ resource .TestCheckResourceAttr (resourceName , "spec.0.claim_ref.0.name" , name ),
987+ testAccCheckKubernetesPersistentVolumeForceNew (& conf1 , & conf2 , false ),
964988 ),
965989 },
966990 },
@@ -1920,11 +1944,71 @@ func testAccKubernetesPersistentVolumeConfig_hostPath_basic(name string) string
19201944}` , name )
19211945}
19221946
1923- func testAccKubernetesPersistentVolumeConfig_hostPath_claimRef (name string , claimNamespace string , claimName string ) string {
1947+ func testAccKubernetesPersistentVolumeConfig_hostPath_claimRef_noNamespace (name string ) string {
19241948 return fmt .Sprintf (`resource "kubernetes_persistent_volume" "test" {
19251949 metadata {
19261950 name = "%s"
19271951 }
1952+ spec {
1953+ capacity = {
1954+ storage = "1Gi"
1955+ }
1956+ access_modes = ["ReadWriteMany"]
1957+ mount_options = ["foo"]
1958+ claim_ref {
1959+ name = "%s"
1960+ }
1961+
1962+ persistent_volume_source {
1963+ host_path {
1964+ path = "/mnt/local-volume"
1965+ }
1966+ }
1967+ }
1968+ }` , name , name )
1969+ }
1970+
1971+ func testAccKubernetesPersistentVolumeConfig_hostPath_claimRef_withNamespace (name string ) string {
1972+ return fmt .Sprintf (`resource "kubernetes_namespace" "test" {
1973+ metadata {
1974+ name = "%s"
1975+ }
1976+ }
1977+ resource "kubernetes_persistent_volume" "test" {
1978+ metadata {
1979+ name = "%s"
1980+ }
1981+ spec {
1982+ capacity = {
1983+ storage = "1Gi"
1984+ }
1985+ access_modes = ["ReadWriteMany"]
1986+ mount_options = ["foo"]
1987+ claim_ref {
1988+ name = "%s"
1989+ namespace = kubernetes_namespace.test.metadata.0.name
1990+ }
1991+
1992+ persistent_volume_source {
1993+ host_path {
1994+ path = "/mnt/local-volume"
1995+ }
1996+ }
1997+ }
1998+ }` , name , name , name )
1999+ }
2000+
2001+ func testAccKubernetesPersistentVolumeConfig_hostPath_claimRef_withPVC (name string ) string {
2002+ return fmt .Sprintf (`resource "kubernetes_namespace" "test" {
2003+ metadata {
2004+ name = "%s"
2005+ }
2006+ }
2007+
2008+ resource "kubernetes_persistent_volume" "test" {
2009+ metadata {
2010+ name = "%s"
2011+ }
19282012 spec {
19292013 capacity = {
19302014 storage = "1Gi"
@@ -1942,7 +2026,27 @@ func testAccKubernetesPersistentVolumeConfig_hostPath_claimRef(name string, clai
19422026 }
19432027 }
19442028 }
1945- }` , name , claimName , claimNamespace )
2029+ }
2030+
2031+ resource "kubernetes_persistent_volume_claim" "test" {
2032+ metadata {
2033+ name = "%s"
2034+ namespace = "%s"
2035+ }
2036+
2037+ spec {
2038+ access_modes = ["ReadWriteOnce"]
2039+
2040+ resources {
2041+ requests = {
2042+ storage = "1Gi"
2043+ }
2044+ }
2045+
2046+ volume_name = kubernetes_persistent_volume.test.metadata.0.name
2047+ }
2048+ }
2049+ ` , name , name , name , name , name , name )
19462050}
19472051
19482052func testAccKubernetesPersistentVolume_regression (provider , name , path , typ string ) string {
0 commit comments