Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update flow of wait timeout; creates tfstate after TF timeout #2163

Merged
merged 18 commits into from
Jul 28, 2023

Conversation

BBBmau
Copy link
Contributor

@BBBmau BBBmau commented Jun 26, 2023

Description

This allows the tfstate to be updated even if theres a timeout on the terraform core side.

Acceptance tests

  • Have you added an acceptance test for the functionality being added? (Updated Test)
  • Have you run the acceptance tests on this branch?

Output from acceptance testing:

$ make testacc TESTARGS="-run TestKubernetesManifest_Wait_InvalidCondition"

go test -count=1 -tags acceptance "./test/acceptance" -v -run TestKubernetesManifest_Wait_InvalidCondition -timeout 120m
2023/07/26 13:28:17 Testing against Kubernetes API version: v1.25.3
=== RUN   TestKubernetesManifest_Wait_InvalidCondition
2023-07-26T13:28:18.555-0700 [INFO]  [ApplyResourceChange][Wait] Waiting for conditions...

--- PASS: TestKubernetesManifest_Wait_InvalidCondition (10.81s)
PASS
ok      github.com/hashicorp/terraform-provider-kubernetes/manifest/test/acceptance     11.472s

Release Note

Release note for CHANGELOG:

`manifest/provider/apply.go`: update flow in `wait` block to fix timeout bug within tf apply where the resource is created and appears in Kubernetes but does not appear in TF state file after deadline. The fix would ensure that the resource has been created in the state file while also tainting the resource requiring the user to make the necessary changes in order for their to not be another timeout error.

References

Fix: #1455

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment

@BBBmau BBBmau requested a review from a team as a code owner June 26, 2023 21:26
.changelog/2163.txt Outdated Show resolved Hide resolved
@BBBmau BBBmau requested a review from arybolovlev July 27, 2023 17:10
@BBBmau BBBmau merged commit 5907300 into main Jul 28, 2023
29 checks passed
@BBBmau BBBmau deleted the fix-wait-state-bug branch July 28, 2023 13:44
dduportal pushed a commit to jenkins-infra/azure that referenced this pull request Sep 23, 2023
<Actions>
<action
id="60b545e3a7c08156b6118e64d9cdf055bc66d491f519bb73d2490ee2958a6c05">
        <h3>Bump Terraform `kubernetes` provider version</h3>
<details
id="1d9343c012f5434ac9fe8a98135bae3667b399259be16d9b14302ea3bd424a24">
            <summary>Update Terraform lock file</summary>
<p>&#34;hashicorp/kubernetes&#34; updated from &#34;2.23.0&#34; to
&#34;2.23.0&#34; in file &#34;.terraform.lock.hcl&#34;</p>
            <details>
                <summary>2.23.0</summary>
<pre>Changelog retrieved
from:&#xA;&#x9;https://github.com/hashicorp/terraform-provider-kubernetes/releases/tag/v2.23.0&#xA;FEATURES:&#xA;&#xA;*
`resource/kubernetes_cron_job_v1`: add a new volume type `ephemeral` to
`spec.job_template.spec.template.spec.volume` to support generic
ephemeral volumes.
[[GH-2199](https://github.com/hashicorp/terraform-provider-kubernetes/issues/2199)]&#xA;*
`resource/kubernetes_cron_job`: add a new volume type `ephemeral` to
`spec.job_template.spec.template.spec.volume` to support generic
ephemeral volumes.
[[GH-2199](https://github.com/hashicorp/terraform-provider-kubernetes/issues/2199)]&#xA;*
`resource/kubernetes_daemon_set_v1`: add a new volume type `ephemeral`
to `spec.template.spec.volume` to support generic ephemeral volumes.
[[GH-2199](https://github.com/hashicorp/terraform-provider-kubernetes/issues/2199)]&#xA;*
`resource/kubernetes_daemonset`: add a new volume type `ephemeral` to
`spec.template.spec..volume` to support generic ephemeral volumes.
[[GH-2199](https://github.com/hashicorp/terraform-provider-kubernetes/issues/2199)]&#xA;*
`resource/kubernetes_deployment_v1`: add a new volume type `ephemeral`
to `spec.template.spec.volume` to support generic ephemeral volumes.
[[GH-2199](https://github.com/hashicorp/terraform-provider-kubernetes/issues/2199)]&#xA;*
`resource/kubernetes_deployment`: add a new volume type `ephemeral` to
`spec.template.spec.volume` to support generic ephemeral volumes.
[[GH-2199](https://github.com/hashicorp/terraform-provider-kubernetes/issues/2199)]&#xA;*
`resource/kubernetes_job_v1`: add a new volume type `ephemeral` to
`spec.template.spec.volume` to support generic ephemeral volumes.
[[GH-2199](https://github.com/hashicorp/terraform-provider-kubernetes/issues/2199)]&#xA;*
`resource/kubernetes_job`: add a new volume type `ephemeral` to
`spec.template.spec.volume` to support generic ephemeral volumes.
[[GH-2199](https://github.com/hashicorp/terraform-provider-kubernetes/issues/2199)]&#xA;*
`resource/kubernetes_pod_v1`: add a new volume type `ephemeral` to
`spec.volume` to support generic ephemeral volumes.
[[GH-2199](https://github.com/hashicorp/terraform-provider-kubernetes/issues/2199)]&#xA;*
`resource/kubernetes_pod`: add a new volume type `ephemeral` to
`spec.volume` to support generic ephemeral volumes.
[[GH-2199](https://github.com/hashicorp/terraform-provider-kubernetes/issues/2199)]&#xA;&#xA;ENHANCEMENTS:&#xA;&#xA;*
`resource/kubernetes_endpoint_slice_v1`: make attribute
`endpoint.condition` optional. If you had previously included an empty
block `condition {}` in your configuration, we request you to remove it.
Doing so will prevent receiving continuous _&#34;update in-place&#34;_
messages while performing the plan and apply operations.
[[GH-2208](https://github.com/hashicorp/terraform-provider-kubernetes/issues/2208)]&#xA;*
`resource/kubernetes_pod_v1`: add a new attribute `target_state` to
specify the Pod phase(s) that indicate whether it was successfully
created.
[[GH-2200](https://github.com/hashicorp/terraform-provider-kubernetes/issues/2200)]&#xA;*
`resource/kubernetes_pod`: add a new attribute `target_state` to specify
the Pod phase(s) that indicate whether it was successfully created.
[[GH-2200](https://github.com/hashicorp/terraform-provider-kubernetes/issues/2200)]&#xA;&#xA;BUG
FIXES:&#xA;&#xA;* `resource/kubernetes_manifest`: update flow in `wait`
block to fix timeout bug within tf apply where the resource is created
and appears in Kubernetes but does not appear in TF state file after
deadline. The fix would ensure that the resource has been created in the
state file while also tainting the resource requiring the user to make
the necessary changes in order for their to not be another timeout
error.
[[GH-2163](https://github.com/hashicorp/terraform-provider-kubernetes/issues/2163)]&#xA;&#xA;DOCS:&#xA;&#xA;*
Fix external broken links in the documentation.
[[GH-2221](https://github.com/hashicorp/terraform-provider-kubernetes/issues/2221)]&#xA;&#xA;##
Community Contributors 🙌&#xA;&#xA;- @JHeilCoveo made their
contribution in
https://github.com/hashicorp/terraform-provider-kubernetes/pull/2183&#xA;-
@baumandm made their contribution in
https://github.com/hashicorp/terraform-provider-kubernetes/pull/1026&#xA;-
@vastep made their contribution in
https://github.com/hashicorp/terraform-provider-kubernetes/pull/2193&#xA;-
@rafed made their contribution in
hashicorp/terraform-provider-kubernetes#2214,
https://github.com/hashicorp/terraform-provider-kubernetes/pull/2225&#xA;&#xA;&#xA;</pre>
            </details>
        </details>
    </action>
</Actions>

---

<table>
  <tr>
    <td width="77">
<img src="https://www.updatecli.io/images/updatecli.png" alt="Updatecli
logo" width="50" height="50">
    </td>
    <td>
      <p>
Created automatically by <a
href="https://www.updatecli.io/">Updatecli</a>
      </p>
      <details><summary>Options:</summary>
        <br />
<p>Most of Updatecli configuration is done via <a
href="https://www.updatecli.io/docs/prologue/quick-start/">its
manifest(s)</a>.</p>
        <ul>
<li>If you close this pull request, Updatecli will automatically reopen
it, the next time it runs.</li>
<li>If you close this pull request and delete the base branch, Updatecli
will automatically recreate it, erasing all previous commits made.</li>
        </ul>
        <p>
Feel free to report any issues at <a
href="https://github.com/updatecli/updatecli/issues">github.com/updatecli/updatecli</a>.<br
/>
If you find this tool useful, do not hesitate to star <a
href="https://github.com/updatecli/updatecli/stargazers">our GitHub
repository</a> as a sign of appreciation, and/or to tell us directly on
our <a
href="https://matrix.to/#/#Updatecli_community:gitter.im">chat</a>!
        </p>
      </details>
    </td>
  </tr>
</table>

Co-authored-by: Jenkins Infra Bot (updatecli) <[email protected]>
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jul 28, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Timeouts combined with wait_for can cause resource/state conflict.
3 participants