Keep container registry key in the memory to reduce IO reads
Description
We currently read a registry private key from disk whenever someone wants to access registry, because it is memoized on an object-level, and we create a new object for each authentication request.
This means that we read from disk each time someone wants to authenticate with registry, even though registry private key does not change. We can avoid a lot reads if we decide to keep content of this file in the memory.
Proposal
Use class-level singleton and memoization to store container registry key content.
def self.key_data
@key ||= File.read(key_file)
end