Cut a dependency between kubectl and the rest of the repo

The types referenced in credentialprovider are part of a long term api
and will not change, and kubectl doesn't need to take a dependency on this
package in order to do minimal validation here.
pull/58/head
Clayton Coleman 2018-09-09 11:22:29 -04:00
parent 5e905f1f5f
commit 9f5c2aea1a
No known key found for this signature in database
GPG Key ID: 3D16906B4F1C5CB3
5 changed files with 27 additions and 6 deletions

View File

@ -393,6 +393,7 @@ package_group(
"//pkg/kubectl",
"//pkg/kubectl/cmd",
"//pkg/kubectl/generate",
"//pkg/kubectl/generate/versioned",
"//pkg/kubectl/proxy",
],
)

View File

@ -190,6 +190,9 @@ pkg/kubectl/cmd/util/openapi
pkg/kubectl/cmd/util/sanity
pkg/kubectl/cmd/version
pkg/kubectl/cmd/wait
pkg/kubectl/describe
pkg/kubectl/generate
pkg/kubectl/generate/versioned
pkg/kubectl/metricsutil
pkg/kubectl/util
pkg/kubectl/util/slice

View File

@ -25,7 +25,6 @@ go_library(
importpath = "k8s.io/kubernetes/pkg/kubectl/generate/versioned",
visibility = ["//visibility:public"],
deps = [
"//pkg/credentialprovider:go_default_library",
"//pkg/kubectl/generate:go_default_library",
"//pkg/kubectl/util:go_default_library",
"//pkg/kubectl/util/hash:go_default_library",

View File

@ -22,7 +22,6 @@ import (
"k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/kubernetes/pkg/credentialprovider"
"k8s.io/kubernetes/pkg/kubectl/generate"
"k8s.io/kubernetes/pkg/kubectl/util/hash"
)
@ -149,15 +148,34 @@ func (s SecretForDockerRegistryGeneratorV1) validate() error {
// handleDockerCfgJsonContent serializes a ~/.docker/config.json file
func handleDockerCfgJsonContent(username, password, email, server string) ([]byte, error) {
dockercfgAuth := credentialprovider.DockerConfigEntry{
dockercfgAuth := DockerConfigEntry{
Username: username,
Password: password,
Email: email,
}
dockerCfgJson := credentialprovider.DockerConfigJson{
Auths: map[string]credentialprovider.DockerConfigEntry{server: dockercfgAuth},
dockerCfgJson := DockerConfigJson{
Auths: map[string]DockerConfigEntry{server: dockercfgAuth},
}
return json.Marshal(dockerCfgJson)
}
// DockerConfigJson represents a local docker auth config file
// for pulling images.
type DockerConfigJson struct {
Auths DockerConfig `json:"auths"`
// +optional
HttpHeaders map[string]string `json:"HttpHeaders,omitempty"`
}
// DockerConfig represents the config file used by the docker CLI.
// This config that represents the credentials that should be used
// when pulling images from specific image repositories.
type DockerConfig map[string]DockerConfigEntry
type DockerConfigEntry struct {
Username string
Password string
Email string
}

View File

@ -73,7 +73,7 @@ func TestSecretForDockerRegistryGenerate(t *testing.T) {
},
expected: &v1.Secret{
ObjectMeta: metav1.ObjectMeta{
Name: "foo-548cm7fgdh",
Name: "foo-7566tc6mgc",
},
Data: map[string][]byte{
v1.DockerConfigJsonKey: secretData,