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

🐛 Fix generic ephemeral volume #2199

Merged
merged 5 commits into from
Jul 27, 2023
Merged

Conversation

arybolovlev
Copy link
Contributor

@arybolovlev arybolovlev commented Jul 20, 2023

Description

Fix spec.volume pod schema to align with the Kubernetes schema. In addition to that fix an issue when the provider crashes when value spec.volume.ephemeral.volume_claim_template.metadata is empty.

Before:

volume {
  name = "this"
  ephemeral {
    metadata {...} // REQUIRED
    spec {...}
  }
}

After:

volume {
  name = "this"
  ephemeral {
    volume_claim_template {
      metadata {...} // OPTIONAL
      spec {...}
    }
  }
}

Links:

Acceptance tests

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

Output from acceptance testing:

$ make testacc TESTARGS="-vet=off -count 1 -run 'TestAccKubernetesPod_with_ephemeral_storage'"

=== RUN   TestAccKubernetesPod_with_ephemeral_storage
--- PASS: TestAccKubernetesPod_with_ephemeral_storage (10.93s)
PASS
ok  	github.com/hashicorp/terraform-provider-kubernetes/kubernetes	11.568s

GH Workflows: https://github.com/hashicorp/terraform-provider-kubernetes/actions/runs/5621973028

Release Note

Release note for CHANGELOG:

`resource/kubernetes_pod_v1`: add a new volume type `ephemeral` to `spec.volume` to support generic ephemeral volumes.

References

Fix: #2198

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

@arybolovlev arybolovlev marked this pull request as ready for review July 21, 2023 11:52
@arybolovlev arybolovlev requested a review from a team as a code owner July 21, 2023 11:52
Copy link
Member

@alexsomesan alexsomesan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! Many thanks for jumping on this and fixing it!

@arybolovlev arybolovlev merged commit 7b121d1 into main Jul 27, 2023
@arybolovlev arybolovlev deleted the fix-pod-ephemeral-volume branch July 27, 2023 08:50
dduportal referenced this pull request in jenkins-infra/azure 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
hashicorp/terraform-provider-kubernetes#2183
@baumandm made their contribution in
hashicorp/terraform-provider-kubernetes#1026
@vastep made their contribution in
hashicorp/terraform-provider-kubernetes#2193
@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) <60776566+jenkins-infra-bot@users.noreply.github.com>
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jul 27, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

generic ephemeral volume with empty metadata causes panic
2 participants