forked from toolshed/abra
fix: flags for logging in
This commit is contained in:
@ -362,7 +362,7 @@ func ReadReposMetadata() (RepoCatalogue, error) {
|
||||
}
|
||||
|
||||
// GetRecipeVersions retrieves all recipe versions.
|
||||
func GetRecipeVersions(recipeName string) (RecipeVersions, error) {
|
||||
func GetRecipeVersions(recipeName, registryUsername, registryPassword string) (RecipeVersions, error) {
|
||||
versions := RecipeVersions{}
|
||||
|
||||
recipeDir := path.Join(config.RECIPES_DIR, recipeName)
|
||||
@ -439,7 +439,7 @@ func GetRecipeVersions(recipeName string) (RecipeVersions, error) {
|
||||
if digest, exists = queryCache[img]; !exists {
|
||||
logrus.Debugf("looking up image: %s from %s", img, path)
|
||||
var err error
|
||||
digest, err = client.GetTagDigest(cl, img)
|
||||
digest, err = client.GetTagDigest(cl, img, registryUsername, registryPassword)
|
||||
if err != nil {
|
||||
logrus.Warn(err)
|
||||
continue
|
||||
|
@ -6,7 +6,6 @@ import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"coopcloud.tech/abra/pkg/web"
|
||||
@ -42,7 +41,7 @@ func basicAuth(username, password string) string {
|
||||
}
|
||||
|
||||
// getRegv2Token retrieves a registry v2 authentication token.
|
||||
func getRegv2Token(cl *client.Client, image reference.Named) (string, error) {
|
||||
func getRegv2Token(cl *client.Client, image reference.Named, registryUsername, registryPassword string) (string, error) {
|
||||
img := reference.Path(image)
|
||||
tokenURL := "https://auth.docker.io/token"
|
||||
values := fmt.Sprintf("service=registry.docker.io&scope=repository:%s:pull", img)
|
||||
@ -53,11 +52,10 @@ func getRegv2Token(cl *client.Client, image reference.Named) (string, error) {
|
||||
return "", err
|
||||
}
|
||||
|
||||
username, userOk := os.LookupEnv("DOCKER_USERNAME")
|
||||
password, passOk := os.LookupEnv("DOCKER_PASSWORD")
|
||||
if userOk && passOk {
|
||||
logrus.Debugf("using docker log in credentials for registry token request")
|
||||
req.Header.Add("Authorization", fmt.Sprintf("Basic %s", basicAuth(username, password)))
|
||||
if registryUsername != "" && registryPassword != "" {
|
||||
logrus.Debugf("using registry log in credentials for token request")
|
||||
auth := basicAuth(registryUsername, registryPassword)
|
||||
req.Header.Add("Authorization", fmt.Sprintf("Basic %s", auth))
|
||||
}
|
||||
|
||||
client := web.NewHTTPRetryClient()
|
||||
@ -94,7 +92,7 @@ func getRegv2Token(cl *client.Client, image reference.Named) (string, error) {
|
||||
}
|
||||
|
||||
// GetTagDigest retrieves an image digest from a v2 registry
|
||||
func GetTagDigest(cl *client.Client, image reference.Named) (string, error) {
|
||||
func GetTagDigest(cl *client.Client, image reference.Named, registryUsername, registryPassword string) (string, error) {
|
||||
img := reference.Path(image)
|
||||
tag := image.(reference.NamedTagged).Tag()
|
||||
manifestURL := fmt.Sprintf("https://index.docker.io/v2/%s/manifests/%s", img, tag)
|
||||
@ -104,7 +102,7 @@ func GetTagDigest(cl *client.Client, image reference.Named) (string, error) {
|
||||
return "", err
|
||||
}
|
||||
|
||||
token, err := getRegv2Token(cl, image)
|
||||
token, err := getRegv2Token(cl, image, registryUsername, registryPassword)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
Reference in New Issue
Block a user