cluster/gce/gci/credential-provider: refactor for better testability

Signed-off-by: Andrew Sy Kim <andrewsy@google.com>
Co-authored-by: Aditi Sharma <adi.sky17@gmail.com>
This commit is contained in:
Andrew Sy Kim 2022-03-14 15:56:46 +00:00
parent fe55bf111b
commit bfed342e5c
2 changed files with 9 additions and 7 deletions

View File

@ -30,20 +30,23 @@ import (
credentialproviderv1alpha1 "k8s.io/kubelet/pkg/apis/credentialprovider/v1alpha1" credentialproviderv1alpha1 "k8s.io/kubelet/pkg/apis/credentialprovider/v1alpha1"
) )
const metadataTokenEndpoint = "http://metadata.google.internal./computeMetadata/v1/instance/service-accounts/default/token"
func main() { func main() {
if err := getCredentials(os.Stdout); err != nil { if err := getCredentials(metadataTokenEndpoint, os.Stdin, os.Stdout); err != nil {
klog.Fatalf("failed to get credentials: %v", err) klog.Fatalf("failed to get credentials: %v", err)
} }
} }
func getCredentials(w io.Writer) error { func getCredentials(tokenEndpoint string, r io.Reader, w io.Writer) error {
provider := &provider{ provider := &provider{
client: &http.Client{ client: &http.Client{
Timeout: 10 * time.Second, Timeout: 10 * time.Second,
}, },
tokenEndpoint: tokenEndpoint,
} }
data, err := ioutil.ReadAll(os.Stdin) data, err := ioutil.ReadAll(r)
if err != nil { if err != nil {
return err return err
} }

View File

@ -29,8 +29,6 @@ import (
) )
const ( const (
metadataToken = "http://metadata.google.internal./computeMetadata/v1/instance/service-accounts/default/token"
metadataEmail = "http://metadata.google.internal./computeMetadata/v1/instance/service-accounts/default/email"
maxReadLength = 10 * 1 << 20 // 10MB maxReadLength = 10 * 1 << 20 // 10MB
) )
@ -58,6 +56,7 @@ type TokenBlob struct {
type provider struct { type provider struct {
client *http.Client client *http.Client
tokenEndpoint string
} }
func (p *provider) Provide(image string) (map[string]credentialproviderv1alpha1.AuthConfig, error) { func (p *provider) Provide(image string) (map[string]credentialproviderv1alpha1.AuthConfig, error) {
@ -91,7 +90,7 @@ func readURL(url string, client *http.Client) (body []byte, err error) {
return nil, err return nil, err
} }
rea.Header = &http.Header{ req.Header = http.Header{
"Metadata-Flavor": []string{"Google"}, "Metadata-Flavor": []string{"Google"},
} }