Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR makes use of pagination when listing resources. This is expecially useful when working with clusters with large numbers of resources.
Breaking Changes
As a consequence the
kr8s.get()
andAPIObject.list()
methods have been changed to generators instead of returning lists. This allows us to iterate over all the resources in a Kubernetes cluster without using large amounts of memory.This improves the API and makes it more Pythonic, but this is a breaking change for existing users.
Sync
In the sync API the
kr8s.get()
(andkr8s.api().get()
) methods now return a generator instead of a list. This will break some indexing operations and require you to cast to a list to achieve the same functionality.This also applies to methods that call this such as
Nodes.list()
or any otherAPIObject.list()
method.Async
In the async API the same applies and the
kr8s.asyncio.get()
method returns an async generator. To covert this to a list we need to asynchronously iterate over it.This also changes the
for
functionality when looping over the method directly.Closes #477