diff --git a/.changelog/2141.txt b/.changelog/2141.txt new file mode 100644 index 0000000000..d9d394ba11 --- /dev/null +++ b/.changelog/2141.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +`kubernetes/resource_kubernetes_pod.go`: Add `legacy_lifecycle_states` attribute +``` diff --git a/kubernetes/resource_kubernetes_pod.go b/kubernetes/resource_kubernetes_pod.go index 15573da762..fec2a2d42a 100644 --- a/kubernetes/resource_kubernetes_pod.go +++ b/kubernetes/resource_kubernetes_pod.go @@ -56,6 +56,12 @@ func resourceKubernetesPodSchemaV1() map[string]*schema.Schema { Schema: podSpecFields(false, false), }, }, + "legacy_lifecycle_states": { + Type: schema.TypeBool, + Description: "Setting this attribute to `false` would set the target pod lifecycle state as [\"Running\", \"Succeeded\", \"Failed\"]. The default value of `true` would leave the target pod lifecycle state as [\"Running\"]`.", + Optional: true, + Default: true, + }, } } @@ -86,8 +92,14 @@ func resourceKubernetesPodCreate(ctx context.Context, d *schema.ResourceData, me d.SetId(buildId(out.ObjectMeta)) + target := []string{"Running"} + + if d.Get("legacy_lifecycle_states").(bool) != true { + target = []string{"Running", "Succeeded", "Failed"} + } + stateConf := &resource.StateChangeConf{ - Target: []string{"Running"}, + Target: target, Pending: []string{"Pending"}, Timeout: d.Timeout(schema.TimeoutCreate), Refresh: func() (interface{}, string, error) { diff --git a/website/docs/r/pod.html.markdown b/website/docs/r/pod.html.markdown index a0f17a5f7e..4b39a3489a 100644 --- a/website/docs/r/pod.html.markdown +++ b/website/docs/r/pod.html.markdown @@ -169,6 +169,7 @@ The following arguments are supported: * `metadata` - (Required) Standard pod's metadata. For more info see [Kubernetes reference](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata) * `spec` - (Required) Spec of the pod owned by the cluster +* `legacy_lifecycle_states` - (Optional) Setting this attribute to `false` would set the target pod lifecycle state as `["Running", "Succeeded", "Failed"]`. The default value of `true` would leave the target pod lifecycle state as `["Running"]`. ## Nested Blocks