Introducing AvailableMemoryProvider to allow custom calculations of a… #4617
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.
Summary
By default the ECS Agent will read from the
MemTotal
field from/proc/meminfo
to determine the default amount of memory available on the container instance. This PR introduces a provider for supporting custom strategies for determining the amount of available memory on the container instance.Implementation details
This change is implemented by introduction a new ECS Client option via
WithAvailableMemoryProvider
where ECS clients can provide their own custom AvailableMemoryProvider. If a custom provider is not provided, a provider encapsulating the existing behavior will be provided instead.Testing
New unit tests were introduced to test the newly added code.
New tests cover the changes: yes
Description for the changelog
Enhancement - Add support for custom providers to determine the initial amount of available memory on a container instance.
Additional Information
Does this PR include breaking model changes? If so, Have you added transformation functions? No
Does this PR include the addition of new environment variables in the README? No
Licensing
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.