github.com/olli-ai/jx/v2@v2.0.400-0.20210921045218-14731b4dd448/pkg/cmd/opts/docker.go (about)

     1  package opts
     2  
     3  import (
     4  	"os"
     5  	"strings"
     6  
     7  	"github.com/jenkins-x/jx-logging/pkg/log"
     8  	"github.com/olli-ai/jx/v2/pkg/config"
     9  	"github.com/olli-ai/jx/v2/pkg/gits"
    10  	"github.com/olli-ai/jx/v2/pkg/kube"
    11  )
    12  
    13  // GetDockerRegistryOrg parses the docker registry organisation from various places
    14  func (o *CommonOptions) GetDockerRegistryOrg(projectConfig *config.ProjectConfig, repository *gits.GitRepository) string {
    15  	answer := ""
    16  	if projectConfig != nil {
    17  		answer = projectConfig.DockerRegistryOwner
    18  	}
    19  	if answer == "" {
    20  		teamSettings, err := o.TeamSettings()
    21  		if err != nil {
    22  			log.Logger().Warnf("Could not load team settings %s", err.Error())
    23  		} else {
    24  			answer = teamSettings.DockerRegistryOrg
    25  		}
    26  		if answer == "" {
    27  			answer = os.Getenv("DOCKER_REGISTRY_ORG")
    28  		}
    29  		if answer == "" && repository != nil {
    30  			answer = repository.Organisation
    31  		}
    32  	}
    33  	return strings.ToLower(answer)
    34  }
    35  
    36  // GetDockerRegistry parses the docker registry from various places
    37  func (o *CommonOptions) GetDockerRegistry(projectConfig *config.ProjectConfig) string {
    38  	dockerRegistry := ""
    39  	if projectConfig != nil {
    40  		dockerRegistry = projectConfig.DockerRegistryHost
    41  	}
    42  	if dockerRegistry == "" {
    43  		dockerRegistry = os.Getenv("DOCKER_REGISTRY")
    44  	}
    45  	if dockerRegistry == "" {
    46  		kubeClient, ns, err := o.KubeClientAndDevNamespace()
    47  		if err != nil {
    48  			log.Logger().Warnf("failed to create kube client: %s", err.Error())
    49  		} else {
    50  			name := kube.ConfigMapJenkinsDockerRegistry
    51  			data, err := kube.GetConfigMapData(kubeClient, name, ns)
    52  			if err != nil {
    53  				log.Logger().Debugf("failed to load ConfigMap %s in namespace %s: %s", name, ns, err.Error())
    54  			} else {
    55  				dockerRegistry = data["docker.registry"]
    56  			}
    57  		}
    58  	}
    59  	return dockerRegistry
    60  }
    61  
    62  // GetDockerRegistryMirror parses the docker registry mirror from various places
    63  func (o *CommonOptions) GetDockerRegistryMirror(projectConfig *config.ProjectConfig) string {
    64  	answer := ""
    65  	if projectConfig != nil {
    66  		answer = projectConfig.DockerRegistryMirror
    67  	}
    68  	if answer == "" {
    69  		answer = os.Getenv("DOCKER_REGISTRY_MIRROR")
    70  	}
    71  	if answer == "" {
    72  		kubeClient, ns, err := o.KubeClientAndDevNamespace()
    73  		if err != nil {
    74  			log.Logger().Warnf("failed to create kube client: %s", err.Error())
    75  		} else {
    76  			name := kube.ConfigMapJenkinsDockerRegistry
    77  			data, err := kube.GetConfigMapData(kubeClient, name, ns)
    78  			if err != nil {
    79  				log.Logger().Debugf("failed to load ConfigMap %s in namespace %s: %s", name, ns, err.Error())
    80  			} else {
    81  				answer = data["docker.registry.mirror"]
    82  			}
    83  			if answer == "" {
    84  				name = kube.ConfigMapJenkinsDockerRegistryMirror
    85  				data, err = kube.GetConfigMapData(kubeClient, name, ns)
    86  				if err != nil {
    87  					log.Logger().Debugf("failed to load ConfigMap %s in namespace %s: %s", name, ns, err.Error())
    88  				} else {
    89  					answer = data["docker.registry.mirror"]
    90  				}
    91  			}
    92  		}
    93  	}
    94  	return answer
    95  }