• Matt Moore's avatar
    Implements a credentialprovider library for use by DockerPuller. · 0c5d9ed0
    Matt Moore authored
    This change refactors the way Kubelet's DockerPuller handles the docker config credentials to utilize a new credentialprovider library.
    
    The credentialprovider library is based on several of the files from the Kubelet's dockertools directory, but supports a new pluggable model for retrieving a .dockercfg-compatible JSON blob with credentials.
    
    With this change, the Kubelet will lazily ask for the docker config from a set of DockerConfigProvider extensions each time it needs a credential.
    
    This change provides common implementations of DockerConfigProvider for:
     - "Default": load .dockercfg from disk
     - "Caching": wraps another provider in a cache that expires after a pre-specified lifetime.
    
    GCP-only:
     - "google-dockercfg": reads a .dockercfg from a GCE instance's metadata
     - "google-dockercfg-url": reads a .dockercfg from a URL specified in a GCE instance's metadata.
     - "google-container-registry": reads an access token from GCE metadata into a password field.
    0c5d9ed0
config_test.go 3.97 KB