code: func (p *ecrProvider) Provide(image string) credentialprovider.DockerConfig {
  	parsed, err := parseRepoURL(image)
  	if err != nil {
  		klog.V(3).Info(err)
  		return credentialprovider.DockerConfig{}
  	}
  
  	if cfg, exists := p.getFromCache(parsed); exists {
  		klog.V(6).Infof("Got ECR credentials from cache for %s", parsed.registry)
  		return cfg
  	}
  	klog.V(3).Info("unable to get ECR credentials from cache, checking ECR API")
  
  	cfg, err := p.getFromECR(parsed)
  	if err != nil {
  		klog.Errorf("error getting credentials from ECR for %s %v", parsed.registry, err)
  		return credentialprovider.DockerConfig{}
  	}
  	klog.V(3).Infof("Got ECR credentials from ECR API for %s", parsed.registry)
  	return cfg
  }
docs: // Provide returns a DockerConfig with credentials from the cache if they are
  // found, or from ECR