Skip to content

OSDOCS-16945# CQA work Stor1 - understanding ephemeral storage#106594

Open
lpettyjo wants to merge 1 commit into
openshift:mainfrom
lpettyjo:OSDOCS-16945-understanding-ephemeral-storage
Open

OSDOCS-16945# CQA work Stor1 - understanding ephemeral storage#106594
lpettyjo wants to merge 1 commit into
openshift:mainfrom
lpettyjo:OSDOCS-16945-understanding-ephemeral-storage

Conversation

@lpettyjo

@lpettyjo lpettyjo commented Feb 13, 2026

Copy link
Copy Markdown
Contributor

Version(s): 4.20+

Issue: https://issues.redhat.com/browse/OSDOCS-16945

Link to docs preview:

QE review:

  • QE has approved this change.

Additional information:

@openshift-ci openshift-ci Bot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Feb 13, 2026
@lpettyjo lpettyjo added this to the Continuous Release milestone Feb 13, 2026
@lpettyjo lpettyjo added the merge-review-needed Signifies that the merge review team needs to review this PR label Feb 13, 2026
Comment thread modules/storage-ephemeral-storage-manage.adoc Outdated
Comment thread modules/storage-ephemeral-storage-manage.adoc Outdated
Comment thread modules/storage-ephemeral-storage-manage.adoc Outdated
Comment thread modules/storage-ephemeral-storage-manage.adoc Outdated
@bscott-rh bscott-rh added merge-review-in-progress Signifies that the merge review team is reviewing this PR and removed merge-review-needed Signifies that the merge review team needs to review this PR labels Feb 16, 2026
Comment thread modules/storage-ephemeral-storage-manage.adoc
@bscott-rh bscott-rh removed the merge-review-in-progress Signifies that the merge review team is reviewing this PR label Feb 16, 2026
@lpettyjo lpettyjo force-pushed the OSDOCS-16945-understanding-ephemeral-storage branch from 87a808d to a418def Compare February 27, 2026 18:52
@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Feb 27, 2026
@openshift-ci openshift-ci Bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Feb 27, 2026
@lpettyjo lpettyjo force-pushed the OSDOCS-16945-understanding-ephemeral-storage branch from a418def to 7110f36 Compare February 27, 2026 19:04
@openshift-merge-robot openshift-merge-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Feb 27, 2026
@openshift openshift deleted a comment from openshift-ci Bot Feb 27, 2026
Comment thread modules/storage-ephemeral-storage-manage-config-and-eviction.adoc Outdated
Comment thread modules/storage-ephemeral-storage-manage-requests-and-limits.adoc Outdated
@lpettyjo lpettyjo changed the title OSDOCS-16945# CQA work Storage - understanding ephemeral storage OSDOCS-16945# CQA work Stor1 - understanding ephemeral storage Mar 5, 2026
@jeana-redhat

Copy link
Copy Markdown
Contributor

The branch/enterprise-5.0 label has been added to this PR.

This is because your PR targets the main branch and is labeled for branch/enterprise-4.22. And any PR going into main must also target the latest version branch (branch/enterprise-5.0).

If the update in your PR does NOT apply to version 5.0 onward, please re-target this PR to go directly into the appropriate enterprise- version branch or branches instead of main.

@lpettyjo lpettyjo force-pushed the OSDOCS-16945-understanding-ephemeral-storage branch from 7110f36 to b2b9030 Compare June 22, 2026 18:53
@openshift-ci

openshift-ci Bot commented Jun 22, 2026

Copy link
Copy Markdown

@lpettyjo: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@dfitzmau dfitzmau left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hi, @lpettyjo . Nice work. I added some comments inline.

//* microshift_storage/understanding-ephemeral-storage-microshift.adoc

:_mod-docs-content-type: CONCEPT
[id=storage-ephemeral-storage-manage-config-and-eviction_{context}]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Has this been added to a MiroShift assembly understanding-ephemeral-storage-microshift)?


:_mod-docs-content-type: CONCEPT
[id=storage-ephemeral-storage-manage-requests-and-limits_{context}]
= Ephemeral storage management limits and requests

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I do not understand the microshift docs that well. Would you be OK to provide a direct link to this module in the MShift docs?

= Ephemeral storage management limits and requests

[role="_abstract"]
Limits and requests for ephemeral storage are measured in byte quantities. You can express storage as a plain integer or as a fixed-point number by using one of these suffixes: E, P, T, G, M, k. You can also use the power-of-two equivalents: Ei, Pi, Ti, Gi, Mi, Ki. For example, the following quantities all represent approximately the same value: 128974848, 129e6, 129M, and 123Mi. Pod-level limits aggregate all container limits plus emptyDir volumes, enabling proper scheduling and preventing pods from exhausting node storage.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
Limits and requests for ephemeral storage are measured in byte quantities. You can express storage as a plain integer or as a fixed-point number by using one of these suffixes: E, P, T, G, M, k. You can also use the power-of-two equivalents: Ei, Pi, Ti, Gi, Mi, Ki. For example, the following quantities all represent approximately the same value: 128974848, 129e6, 129M, and 123Mi. Pod-level limits aggregate all container limits plus emptyDir volumes, enabling proper scheduling and preventing pods from exhausting node storage.
Limits and requests for ephemeral storage are measured in byte quantities. You can express storage as a plain integer or as a fixed-point number by using one of these suffixes: E, P, T, G, M, K. You can also use the power-of-two equivalents: Ei, Pi, Ti, Gi, Mi, Ki. For example, the following quantities all represent approximately the same value: 128974848, 129e6, 129M, and 123Mi. Pod-level limits aggregate all container limits plus `emptyDir` volumes, enabling proper scheduling and preventing pods from exhausting node storage.

Unless lowercase k is correct?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

re: lowercase k - there are a few of these, and it looks like it was that way in existing content. If it's an existing issue probably makes sense to fix as a docs bug broadly.

For example, the following quantities all represent approximately the same value: 128974848, 129e6, 129M, and 123Mi.

Ephemeral storage limits and requests units::
Limits and requests for ephemeral storage are measured in byte quantities. You can express storage as a plain integer or as a fixed-point number by using one of these suffixes: E, P, T, G, M, k. You can also use the power-of-two equivalents: Ei, Pi, Ti, Gi, Mi, Ki. For example, the following quantities all represent approximately the same value: 128974848, 129e6, 129M, and 123Mi. Pod-level limits aggregate all container limits plus emptyDir volumes, enabling proper scheduling and preventing pods from exhausting node storage.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
Limits and requests for ephemeral storage are measured in byte quantities. You can express storage as a plain integer or as a fixed-point number by using one of these suffixes: E, P, T, G, M, k. You can also use the power-of-two equivalents: Ei, Pi, Ti, Gi, Mi, Ki. For example, the following quantities all represent approximately the same value: 128974848, 129e6, 129M, and 123Mi. Pod-level limits aggregate all container limits plus emptyDir volumes, enabling proper scheduling and preventing pods from exhausting node storage.
Limits and requests for ephemeral storage are measured in byte quantities. You can express storage as a plain integer or as a fixed-point number by using one of these suffixes: E, P, T, G, M, k. You can also use the power-of-two equivalents: Ei, Pi, Ti, Gi, Mi, Ki. For example, the following quantities all represent approximately the same value: 128974848, 129e6, 129M, and 123Mi. Pod-level limits aggregate all container limits plus `emptyDir` volumes, enabling proper scheduling and preventing pods from exhausting node storage.


[role="_abstract"]
To manage temporary data that exists only for the duration of a workload, review the properties of ephemeral storage.
Ephemeral storage provides temporary per-pod storage for scratch data, caches, and logs that do not need to persist beyond the pod's lifetime. Understanding the different ephemeral storage types and their resource management helps you choose the right option for stateless workloads while preventing node storage exhaustion.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
Ephemeral storage provides temporary per-pod storage for scratch data, caches, and logs that do not need to persist beyond the pod's lifetime. Understanding the different ephemeral storage types and their resource management helps you choose the right option for stateless workloads while preventing node storage exhaustion.
Ephemeral storage provides temporary per-pod storage for scratch data, caches, and logs that do not need to persist beyond the pod's lifetime. By understanding the different ephemeral storage types and their resource management, you can choose the right option for stateless workloads while preventing node storage exhaustion.

Removes anthrophomorphism.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

SMEs review might be needed for these abstracts if they are new.


ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[]
[id="additional-resources_{context}"]
== Additional resources

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should the first add resources be of the format?

[role="additional-resources"]
[id="additional-resources
{context}"]
== Additional resources

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

[role="additional-resources"]
[id="additional-resources_{context}"]
== Additional resources

Is only for the assembly-level AR section that comes at the very end of the assembly. It is never valid at any other location.

* Each container requests 2GiB of local ephemeral storage.
* Each container has a limit of 4GiB of local ephemeral storage.
* At the pod level, kubelet works out an overall pod storage limit by adding up the limits of all the containers in that pod.
** In this case, the total storage usage at the pod level is the sum of the disk usage from all containers plus the pod's `emptyDir` volumes.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
** In this case, the total storage usage at the pod level is the sum of the disk usage from all containers plus the pod's `emptyDir` volumes.
** In this case, the total storage usage at the pod level is the sum of the disk usage from all containers plus the `emptyDir` volumes of a pod.

IBM gets hung up on possessives.

To provision ephemeral local storage, you can create the primary partition by using either root or runtime methods. This storage is always made available in the primary partition, providing temporary space for your workloads.

== Root
* *Root*: This partition holds the kubelet root directory, `/var/lib/kubelet/` by default, and `/var/log/` directory. This partition can be shared between user pods, the operating system, and Kubernetes system daemons. This partition can be consumed by pods through `EmptyDir` volumes, container logs, image layers, and container-writable layers. Kubelet manages shared access and isolation of this partition. This partition is ephemeral, and applications cannot expect any performance SLAs, such as disk IOPS, from this partition.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I'd recommend a description list instead of manually formatting an unordered list with bold and colons


[role="_abstract"]
To manage local storage for stateless applications, use ephemeral storage. Ephemeral storage is designed for the transient nature of pods and containers. You can use this feature to handle operations that require storage only for the duration of the lifecycle for the workload. Both developers and administrators can use the feature.
To manage local storage for stateless applications, use ephemeral storage. Ephemeral storage is designed for the transient nature of pods and containers. You can use this feature to handle operations that require storage only for the duration of the lifecycle for the workload. Pods use ephemeral local storage for scratch space, caching, and logs. Both developers and administrators can use the feature.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This needs to be shorter (50-300 char for short descs). I know that seems nitpicky, but AEM enforces the character limit and will not let you save a topic if the short desc outside that count.


[role="_abstract"]
To monitor ephemeral storage usage, use the `/bin/df` utility. By using this tool, you can track disk space consumption on the volumes where ephemeral container data resides, specifically `/var/lib/kubelet` and `/var/lib/containers`.
Monitor ephemeral storage usage with the `/bin/df` utility. By using this tool, you can track disk space consumption on the volumes where ephemeral container data resides, specifically `/var/lib/kubelet` and `/var/lib/containers`, preventing pod evictions from storage exhaustion. Regular monitoring helps you identify storage-hungry workloads and adjust requests and limits before kubelet evicts pods.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Also too long (~400 char)

= Ephemeral storage management limits and requests

[role="_abstract"]
Limits and requests for ephemeral storage are measured in byte quantities. You can express storage as a plain integer or as a fixed-point number by using one of these suffixes: E, P, T, G, M, k. You can also use the power-of-two equivalents: Ei, Pi, Ti, Gi, Mi, Ki. For example, the following quantities all represent approximately the same value: 128974848, 129e6, 129M, and 123Mi. Pod-level limits aggregate all container limits plus emptyDir volumes, enabling proper scheduling and preventing pods from exhausting node storage.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This is also too long. When rewriting:

Avoid granular detail and reorient on user value (why they care about this). The specifics should be in the body, this should focus on why the user is here (think of it as information that you would see in a search blurb and go "aha! that's me, that's my question")

//* storage/understanding-ephemeral-storage.adoc
//* microshift_storage/understanding-ephemeral-storage-microshift.adoc

:_mod-docs-content-type: CONCEPT

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Would type this as ref

Comment on lines +4 to -7
:toc:
:toc-title:
:context: understanding-ephemeral-storage

toc::[]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I'm not familiar with this construct

:toc:
:toc-title:

I don't follow why it would change from toc::[].

I'm not saying I'm right, just that it made me scratch my head 😂 If you can point me at a resource about this I would appreciate it so that I understand 🤓

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Confused about how this stacks with modules/storage-ephemeral-storage-manage.adoc.

Ephemeral storage configuration effects pod scheduling and eviction:
In the old module, this section is entirely excluded for MS. In this new module, only the bullets are excluded.

Ephemeral storage configuration effects pod eviction:
This is included for MS in both the original module and this one.

Also echoing Darragh's question about inclusion of the module

I'm also a bit confused about what this gets around. IIUC, you were making this module because you had to get rid of the == headings in the old module, is that right? But this module also adds an == heading anyway.

* `spec.containers[].resources.requests.ephemeral-storage`

[id=storage-ephemeral-storage-limits-requests-units_{context}]
== Ephemeral storage limits and requests units

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

TBH, I am also confused why you were told to get rid of the == headings at all. The mod docs guidelines have them for concepts:

Image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants