github.com/IBM-Cloud/terraform@v0.6.4-0.20170726051544-8872b87621df/builtin/providers/kubernetes/resource_kubernetes_limit_range_test.go (about) 1 package kubernetes 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/hashicorp/terraform/helper/acctest" 8 "github.com/hashicorp/terraform/helper/resource" 9 "github.com/hashicorp/terraform/terraform" 10 api "k8s.io/kubernetes/pkg/api/v1" 11 kubernetes "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5" 12 ) 13 14 func TestAccKubernetesLimitRange_basic(t *testing.T) { 15 var conf api.LimitRange 16 name := fmt.Sprintf("tf-acc-test-%s", acctest.RandString(10)) 17 18 resource.Test(t, resource.TestCase{ 19 PreCheck: func() { testAccPreCheck(t) }, 20 IDRefreshName: "kubernetes_limit_range.test", 21 Providers: testAccProviders, 22 CheckDestroy: testAccCheckKubernetesLimitRangeDestroy, 23 Steps: []resource.TestStep{ 24 { 25 Config: testAccKubernetesLimitRangeConfig_basic(name), 26 Check: resource.ComposeAggregateTestCheckFunc( 27 testAccCheckKubernetesLimitRangeExists("kubernetes_limit_range.test", &conf), 28 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.annotations.%", "1"), 29 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.annotations.TestAnnotationOne", "one"), 30 testAccCheckMetaAnnotations(&conf.ObjectMeta, map[string]string{"TestAnnotationOne": "one"}), 31 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.labels.%", "3"), 32 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.labels.TestLabelOne", "one"), 33 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.labels.TestLabelThree", "three"), 34 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.labels.TestLabelFour", "four"), 35 testAccCheckMetaLabels(&conf.ObjectMeta, map[string]string{"TestLabelOne": "one", "TestLabelThree": "three", "TestLabelFour": "four"}), 36 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.name", name), 37 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.generation"), 38 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.resource_version"), 39 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.self_link"), 40 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.uid"), 41 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.#", "1"), 42 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.default.%", "2"), 43 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.default.cpu", "200m"), 44 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.default.memory", "512M"), 45 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.default_request.%", "2"), 46 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.default_request.cpu", "100m"), 47 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.default_request.memory", "256M"), 48 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.type", "Container"), 49 ), 50 }, 51 { 52 Config: testAccKubernetesLimitRangeConfig_metaModified(name), 53 Check: resource.ComposeAggregateTestCheckFunc( 54 testAccCheckKubernetesLimitRangeExists("kubernetes_limit_range.test", &conf), 55 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.annotations.%", "2"), 56 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.annotations.TestAnnotationOne", "one"), 57 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.annotations.TestAnnotationTwo", "two"), 58 testAccCheckMetaAnnotations(&conf.ObjectMeta, map[string]string{"TestAnnotationOne": "one", "TestAnnotationTwo": "two"}), 59 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.labels.%", "3"), 60 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.labels.TestLabelOne", "one"), 61 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.labels.TestLabelTwo", "two"), 62 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.labels.TestLabelThree", "three"), 63 testAccCheckMetaLabels(&conf.ObjectMeta, map[string]string{"TestLabelOne": "one", "TestLabelTwo": "two", "TestLabelThree": "three"}), 64 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.name", name), 65 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.generation"), 66 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.resource_version"), 67 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.self_link"), 68 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.uid"), 69 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.#", "1"), 70 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.default.%", "2"), 71 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.default.cpu", "200m"), 72 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.default.memory", "512M"), 73 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.default_request.%", "2"), 74 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.default_request.cpu", "100m"), 75 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.default_request.memory", "256M"), 76 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.type", "Container"), 77 ), 78 }, 79 { 80 Config: testAccKubernetesLimitRangeConfig_specModified(name), 81 Check: resource.ComposeAggregateTestCheckFunc( 82 testAccCheckKubernetesLimitRangeExists("kubernetes_limit_range.test", &conf), 83 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.annotations.%", "0"), 84 testAccCheckMetaAnnotations(&conf.ObjectMeta, map[string]string{}), 85 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.labels.%", "0"), 86 testAccCheckMetaLabels(&conf.ObjectMeta, map[string]string{}), 87 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.name", name), 88 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.generation"), 89 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.resource_version"), 90 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.self_link"), 91 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.uid"), 92 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.#", "1"), 93 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.default.%", "2"), 94 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.default.cpu", "200m"), 95 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.default.memory", "1024M"), 96 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.default_request.%", "2"), 97 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.default_request.cpu", "100m"), 98 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.default_request.memory", "256M"), 99 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.max.%", "1"), 100 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.max.cpu", "500m"), 101 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.min.%", "2"), 102 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.min.cpu", "10m"), 103 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.min.memory", "10M"), 104 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.type", "Container"), 105 ), 106 }, 107 }, 108 }) 109 } 110 111 func TestAccKubernetesLimitRange_generatedName(t *testing.T) { 112 var conf api.LimitRange 113 prefix := "tf-acc-test-" 114 115 resource.Test(t, resource.TestCase{ 116 PreCheck: func() { testAccPreCheck(t) }, 117 IDRefreshName: "kubernetes_limit_range.test", 118 Providers: testAccProviders, 119 CheckDestroy: testAccCheckKubernetesLimitRangeDestroy, 120 Steps: []resource.TestStep{ 121 { 122 Config: testAccKubernetesLimitRangeConfig_generatedName(prefix), 123 Check: resource.ComposeAggregateTestCheckFunc( 124 testAccCheckKubernetesLimitRangeExists("kubernetes_limit_range.test", &conf), 125 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.annotations.%", "0"), 126 testAccCheckMetaAnnotations(&conf.ObjectMeta, map[string]string{}), 127 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.labels.%", "0"), 128 testAccCheckMetaLabels(&conf.ObjectMeta, map[string]string{}), 129 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.generate_name", prefix), 130 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.generation"), 131 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.resource_version"), 132 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.self_link"), 133 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.uid"), 134 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.#", "1"), 135 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.type", "Pod"), 136 ), 137 }, 138 }, 139 }) 140 } 141 142 func TestAccKubernetesLimitRange_typeChange(t *testing.T) { 143 var conf api.LimitRange 144 name := fmt.Sprintf("tf-acc-test-%s", acctest.RandString(10)) 145 146 resource.Test(t, resource.TestCase{ 147 PreCheck: func() { testAccPreCheck(t) }, 148 IDRefreshName: "kubernetes_limit_range.test", 149 Providers: testAccProviders, 150 CheckDestroy: testAccCheckKubernetesLimitRangeDestroy, 151 Steps: []resource.TestStep{ 152 { 153 Config: testAccKubernetesLimitRangeConfig_typeChange(name), 154 Check: resource.ComposeAggregateTestCheckFunc( 155 testAccCheckKubernetesLimitRangeExists("kubernetes_limit_range.test", &conf), 156 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.annotations.%", "0"), 157 testAccCheckMetaAnnotations(&conf.ObjectMeta, map[string]string{}), 158 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.labels.%", "0"), 159 testAccCheckMetaLabels(&conf.ObjectMeta, map[string]string{}), 160 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.name", name), 161 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.generation"), 162 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.resource_version"), 163 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.self_link"), 164 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.uid"), 165 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.#", "1"), 166 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.default.%", "2"), 167 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.default.cpu", "200m"), 168 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.default.memory", "1024M"), 169 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.type", "Container"), 170 ), 171 }, 172 { 173 Config: testAccKubernetesLimitRangeConfig_typeChangeModified(name), 174 Check: resource.ComposeAggregateTestCheckFunc( 175 testAccCheckKubernetesLimitRangeExists("kubernetes_limit_range.test", &conf), 176 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.annotations.%", "0"), 177 testAccCheckMetaAnnotations(&conf.ObjectMeta, map[string]string{}), 178 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.labels.%", "0"), 179 testAccCheckMetaLabels(&conf.ObjectMeta, map[string]string{}), 180 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.name", name), 181 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.generation"), 182 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.resource_version"), 183 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.self_link"), 184 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.uid"), 185 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.#", "1"), 186 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.min.%", "2"), 187 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.min.cpu", "200m"), 188 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.min.memory", "1024M"), 189 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.type", "Pod"), 190 ), 191 }, 192 }, 193 }) 194 } 195 196 func TestAccKubernetesLimitRange_multipleLimits(t *testing.T) { 197 var conf api.LimitRange 198 name := fmt.Sprintf("tf-acc-test-%s", acctest.RandString(10)) 199 200 resource.Test(t, resource.TestCase{ 201 PreCheck: func() { testAccPreCheck(t) }, 202 IDRefreshName: "kubernetes_limit_range.test", 203 Providers: testAccProviders, 204 CheckDestroy: testAccCheckKubernetesLimitRangeDestroy, 205 Steps: []resource.TestStep{ 206 { 207 Config: testAccKubernetesLimitRangeConfig_multipleLimits(name), 208 Check: resource.ComposeAggregateTestCheckFunc( 209 testAccCheckKubernetesLimitRangeExists("kubernetes_limit_range.test", &conf), 210 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.annotations.%", "0"), 211 testAccCheckMetaAnnotations(&conf.ObjectMeta, map[string]string{}), 212 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.labels.%", "0"), 213 testAccCheckMetaLabels(&conf.ObjectMeta, map[string]string{}), 214 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "metadata.0.name", name), 215 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.generation"), 216 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.resource_version"), 217 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.self_link"), 218 resource.TestCheckResourceAttrSet("kubernetes_limit_range.test", "metadata.0.uid"), 219 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.#", "3"), 220 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.max.%", "2"), 221 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.max.cpu", "200m"), 222 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.max.memory", "1024M"), 223 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.0.type", "Pod"), 224 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.1.min.%", "1"), 225 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.1.min.storage", "24M"), 226 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.1.type", "PersistentVolumeClaim"), 227 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.2.default.%", "2"), 228 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.2.default.cpu", "50m"), 229 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.2.default.memory", "24M"), 230 resource.TestCheckResourceAttr("kubernetes_limit_range.test", "spec.0.limit.2.type", "Container"), 231 ), 232 }, 233 }, 234 }) 235 } 236 237 func TestAccKubernetesLimitRange_importBasic(t *testing.T) { 238 resourceName := "kubernetes_limit_range.test" 239 name := fmt.Sprintf("tf-acc-test-%s", acctest.RandString(10)) 240 241 resource.Test(t, resource.TestCase{ 242 PreCheck: func() { testAccPreCheck(t) }, 243 Providers: testAccProviders, 244 CheckDestroy: testAccCheckKubernetesLimitRangeDestroy, 245 Steps: []resource.TestStep{ 246 { 247 Config: testAccKubernetesLimitRangeConfig_basic(name), 248 }, 249 { 250 ResourceName: resourceName, 251 ImportState: true, 252 ImportStateVerify: true, 253 }, 254 }, 255 }) 256 } 257 258 func testAccCheckKubernetesLimitRangeDestroy(s *terraform.State) error { 259 conn := testAccProvider.Meta().(*kubernetes.Clientset) 260 261 for _, rs := range s.RootModule().Resources { 262 if rs.Type != "kubernetes_limit_range" { 263 continue 264 } 265 namespace, name := idParts(rs.Primary.ID) 266 resp, err := conn.CoreV1().LimitRanges(namespace).Get(name) 267 if err == nil { 268 if resp.Namespace == namespace && resp.Name == name { 269 return fmt.Errorf("Limit Range still exists: %s", rs.Primary.ID) 270 } 271 } 272 } 273 274 return nil 275 } 276 277 func testAccCheckKubernetesLimitRangeExists(n string, obj *api.LimitRange) resource.TestCheckFunc { 278 return func(s *terraform.State) error { 279 rs, ok := s.RootModule().Resources[n] 280 if !ok { 281 return fmt.Errorf("Not found: %s", n) 282 } 283 284 conn := testAccProvider.Meta().(*kubernetes.Clientset) 285 namespace, name := idParts(rs.Primary.ID) 286 out, err := conn.CoreV1().LimitRanges(namespace).Get(name) 287 if err != nil { 288 return err 289 } 290 291 *obj = *out 292 return nil 293 } 294 } 295 296 func testAccKubernetesLimitRangeConfig_basic(name string) string { 297 return fmt.Sprintf(` 298 resource "kubernetes_limit_range" "test" { 299 metadata { 300 annotations { 301 TestAnnotationOne = "one" 302 } 303 labels { 304 TestLabelOne = "one" 305 TestLabelThree = "three" 306 TestLabelFour = "four" 307 } 308 name = "%s" 309 } 310 spec { 311 limit { 312 type = "Container" 313 314 default { 315 cpu = "200m" 316 memory = "512M" 317 } 318 319 default_request { 320 cpu = "100m" 321 memory = "256M" 322 } 323 } 324 } 325 } 326 `, name) 327 } 328 329 func testAccKubernetesLimitRangeConfig_metaModified(name string) string { 330 return fmt.Sprintf(` 331 resource "kubernetes_limit_range" "test" { 332 metadata { 333 annotations { 334 TestAnnotationOne = "one" 335 TestAnnotationTwo = "two" 336 } 337 labels { 338 TestLabelOne = "one" 339 TestLabelTwo = "two" 340 TestLabelThree = "three" 341 } 342 name = "%s" 343 } 344 spec { 345 limit { 346 type = "Container" 347 348 default { 349 cpu = "200m" 350 memory = "512M" 351 } 352 353 default_request { 354 cpu = "100m" 355 memory = "256M" 356 } 357 } 358 } 359 } 360 `, name) 361 } 362 363 func testAccKubernetesLimitRangeConfig_specModified(name string) string { 364 return fmt.Sprintf(` 365 resource "kubernetes_limit_range" "test" { 366 metadata { 367 name = "%s" 368 } 369 spec { 370 limit { 371 type = "Container" 372 373 default { 374 cpu = "200m" 375 memory = "1024M" 376 } 377 378 max { 379 cpu = "500m" 380 } 381 382 min { 383 cpu = "10m" 384 memory = "10M" 385 } 386 } 387 } 388 } 389 `, name) 390 } 391 392 func testAccKubernetesLimitRangeConfig_generatedName(prefix string) string { 393 return fmt.Sprintf(` 394 resource "kubernetes_limit_range" "test" { 395 metadata { 396 generate_name = "%s" 397 } 398 spec { 399 limit { 400 type = "Pod" 401 } 402 } 403 } 404 `, prefix) 405 } 406 407 func testAccKubernetesLimitRangeConfig_typeChange(name string) string { 408 return fmt.Sprintf(` 409 resource "kubernetes_limit_range" "test" { 410 metadata { 411 name = "%s" 412 } 413 spec { 414 limit { 415 type = "Container" 416 default { 417 cpu = "200m" 418 memory = "1024M" 419 } 420 } 421 } 422 } 423 `, name) 424 } 425 426 func testAccKubernetesLimitRangeConfig_typeChangeModified(name string) string { 427 return fmt.Sprintf(` 428 resource "kubernetes_limit_range" "test" { 429 metadata { 430 name = "%s" 431 } 432 spec { 433 limit { 434 type = "Pod" 435 min { 436 cpu = "200m" 437 memory = "1024M" 438 } 439 } 440 } 441 } 442 `, name) 443 } 444 445 func testAccKubernetesLimitRangeConfig_multipleLimits(name string) string { 446 return fmt.Sprintf(` 447 resource "kubernetes_limit_range" "test" { 448 metadata { 449 name = "%s" 450 } 451 spec { 452 limit { 453 type = "Pod" 454 max { 455 cpu = "200m" 456 memory = "1024M" 457 } 458 } 459 limit { 460 type = "PersistentVolumeClaim" 461 min { 462 storage = "24M" 463 } 464 } 465 limit { 466 type = "Container" 467 default { 468 cpu = "50m" 469 memory = "24M" 470 } 471 } 472 } 473 } 474 `, name) 475 }