Skip to content
Snippets Groups Projects
Unverified Commit 450071c3 authored by Shahidh K Muhammed's avatar Shahidh K Muhammed Committed by GitHub
Browse files

Merge pull request #45 from tirumaraiselvan/issue-38

support for .dockerconfigjson
parents 63820eef 298c35d4
Branches
Tags v0.1.1
No related merge requests found
......@@ -89,10 +89,8 @@ spec:
registry:
url: "registry.io/user"
credentials:
# dockercfg secret
secretKeyRef:
name: regsecret
key: .dockercfg
# docker-registry secret
secretRef: regsecret
# Define deployment rules
deployments:
......
......@@ -74,12 +74,26 @@ EOF
if [ "$REGISTRY_CONF" != "null" ]; then
echo "registry information is being processed"
export REGISTRY_PREFIX=$(echo $REGISTRY_CONF | jq -r '.prefix')
DOCKERCFG=$(echo $REGISTRY_CONF | jq -r '.dockercfg')
if [ "$DOCKERCFG" != "null" ]; then
echo "Found secret type .dockercfg"
echo "writing dockercfg to $HOME_DIR/.dockercfg"
echo $DOCKERCFG > $HOME_DIR/.dockercfg
chown -R $repo:$repo $HOME_DIR/.dockercfg
fi
DOCKERCONFIGJSON=$(echo $REGISTRY_CONF | jq -r '.dockerconfigjson')
if [ "$DOCKERCONFIGJSON" != "null" ]; then
echo "Found secret type .dockerconfigjson"
echo "writing dockerconfigjson to $HOME_DIR/.docker/config.json"
mkdir -p $HOME_DIR/.docker
echo $DOCKERCONFIGJSON > $HOME_DIR/.docker/config.json
chown -R $repo:$repo $HOME_DIR/.docker/config.json
fi
fi
export REPO_OPTS=$(echo $GIT_REMOTES_CONF | jq -c --arg r $repo '.[$r].deployments')
REPO_LOC=$HOME_DIR/git/$repo
......
......@@ -49,7 +49,10 @@ type RegistrySpec struct {
}
type CredentialsSpec struct {
// Secret should point to a secret of type docker-registry
// Secret which points to a docker-registry secret
SecretRef string `json:"secretRef",omitempty`
// Secret with key ref which points to a docker-registry secret
SecretKeyRef corev1.SecretKeySelector `json:"secretKeyRef,omitempty"`
}
......
......@@ -7,6 +7,7 @@ import (
"time"
"k8s.io/api/apps/v1beta1"
"k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
labels "k8s.io/apimachinery/pkg/labels"
"k8s.io/client-go/kubernetes"
......@@ -78,7 +79,6 @@ func CreateRemoteJson(kubeclientset *kubernetes.Clientset, remote *v1alpha1.Remo
remoteMap["deployments"] = deploymentsMap
return remoteMap
}
// createRegistryJson takes a remote and returns a reshaped map of its registry
......@@ -92,13 +92,29 @@ func createRegistryJson(kubeclientset *kubernetes.Clientset, remote *v1alpha1.Re
registryMap["prefix"] = registry.Url
secret, err := kubeclientset.CoreV1().Secrets(remote.Namespace).Get(
var err error
var secret *v1.Secret
if registry.Credentials.SecretRef != "" {
secret, err = kubeclientset.CoreV1().Secrets(remote.Namespace).Get(
registry.Credentials.SecretRef, metav1.GetOptions{})
} else {
secret, err = kubeclientset.CoreV1().Secrets(remote.Namespace).Get(
registry.Credentials.SecretKeyRef.Name, metav1.GetOptions{})
}
if err != nil {
registryMap["dockercfg"] = ""
} else {
registryMap["dockercfg"] = string(secret.Data[registry.Credentials.SecretKeyRef.Key])
return registryMap
}
secretType := secret.Type
switch secretType {
case "kubernetes.io/dockercfg":
registryMap["dockercfg"] = string(secret.Data[".dockercfg"])
case "kubernetes.io/dockerconfigjson":
registryMap["dockerconfigjson"] = string(secret.Data[".dockerconfigjson"])
default:
return registryMap
}
return registryMap
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment