Merge pull request #388 from rhatdan/seccomp1

Add support for DOCKER_CONFIG
This commit is contained in:
OpenShift Merge Robot 2020-12-22 11:02:10 -05:00 committed by GitHub
commit 57e9c853aa
2 changed files with 75 additions and 3 deletions

View File

@ -16,10 +16,17 @@ import (
"golang.org/x/crypto/ssh/terminal"
)
// GetDefaultAuthFile returns env value REGISTRY_AUTH_FILE as default --authfile path
// used in multiple --authfile flag definitions
// GetDefaultAuthFile returns env value REGISTRY_AUTH_FILE as default
// --authfile path used in multiple --authfile flag definitions
// Will fail over to DOCKER_CONFIG if REGISTRY_AUTH_FILE environment is not set
func GetDefaultAuthFile() string {
return os.Getenv("REGISTRY_AUTH_FILE")
authfile := os.Getenv("REGISTRY_AUTH_FILE")
if authfile == "" {
if authfile, ok := os.LookupEnv("DOCKER_CONFIG"); ok {
logrus.Infof("Using DOCKER_CONFIG environment variable for authfile path %s", authfile)
}
}
return authfile
}
// CheckAuthFile validates filepath given by --authfile

View File

@ -0,0 +1,65 @@
package auth
import (
"io/ioutil"
"os"
. "github.com/onsi/ginkgo"
"github.com/onsi/gomega"
)
var _ = Describe("Config", func() {
Describe("ValidateAuth", func() {
It("validate GetDefaultAuthFile", func() {
// Given
oldDockerConf, envDockerSet := os.LookupEnv("DOCKER_CONFIG")
os.Setenv("DOCKER_CONFIG", "/tmp/docker.file")
oldConf, envSet := os.LookupEnv("REGISTRY_AUTH_FILE")
os.Setenv("REGISTRY_AUTH_FILE", "/tmp/registry.file")
// When // When
authFile := GetDefaultAuthFile()
// Then
gomega.Expect(authFile).To(gomega.BeEquivalentTo("/tmp/registry.file"))
os.Unsetenv("REGISTRY_AUTH_FILE")
// Fall back to DOCKER_CONFIG
authFile = GetDefaultAuthFile()
// Then
gomega.Expect(authFile).To(gomega.BeEquivalentTo("/tmp/docker.file"))
os.Unsetenv("DOCKER_CONFIG")
// Fall back to DOCKER_CONFIG
authFile = GetDefaultAuthFile()
// Then
gomega.Expect(authFile).To(gomega.BeEquivalentTo(""))
// Undo that
if envSet {
os.Setenv("REGISTRY_AUTH_FILE", oldConf)
}
if envDockerSet {
os.Setenv("DOCKER_CONFIG", oldDockerConf)
}
})
})
It("validate CheckAuthFile", func() {
// When // When
err := CheckAuthFile("")
// Then
gomega.Expect(err).To(gomega.BeNil())
conf, _ := ioutil.TempFile("", "authfile")
defer os.Remove(conf.Name())
// When // When
err = CheckAuthFile(conf.Name())
// Then
gomega.Expect(err).To(gomega.BeNil())
// When // When
err = CheckAuthFile(conf.Name() + "missing")
// Then
gomega.Expect(err).ShouldNot(gomega.BeNil())
})
})