github.com/verrazzano/verrazzano@v1.7.1/tools/psr/tests/pkg/secrets/pipeline_secrets.go (about) 1 // Copyright (c) 2022, Oracle and/or its affiliates. 2 // Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. 3 4 package secrets 5 6 import ( 7 "fmt" 8 "k8s.io/apimachinery/pkg/api/errors" 9 "os" 10 11 "github.com/verrazzano/verrazzano/pkg/log/vzlog" 12 "github.com/verrazzano/verrazzano/tests/e2e/pkg" 13 ) 14 15 const ( 16 //PipelineImagePullSecName Image pull secr env var name for pipeline 17 PipelineImagePullSecName = "IMAGE_PULL_SECRET" 18 //PipelineRegistryKey Docker registry env var name for pipeline 19 PipelineRegistryKey = "DOCKER_REGISTRY" 20 //PipelineDockerUserKey Docker user env var name for pipeline 21 PipelineDockerUserKey = "DOCKER_CREDS_USR" 22 //PipelineDockerPswKey Docker credential env var name for pipeline 23 PipelineDockerPswKey = "DOCKER_CREDS_PSW" 24 25 //DefaultImagePullSecName Default image pull sec name 26 DefaultImagePullSecName = "verrazzano-container-registry" 27 ) 28 29 // CreateOrUpdatePipelineImagePullSecret Creates an image pull secret for a Pipeline test run if the variable 30 // "IMAGE_PULL_SECRET" is defined. 31 // 32 // If IMAGE_PULL_SECRET is defined, the secret is created from the following env vars: 33 // - DOCKER_REGISTRY (defaults to "ghcr.io") 34 // - DOCKER_CREDS_USR 35 // - DOCKER_CREDS_PSW 36 func CreateOrUpdatePipelineImagePullSecret(log vzlog.VerrazzanoLogger, namespace string, kubeconfigPath string) error { 37 pullSecretName := os.Getenv(PipelineImagePullSecName) 38 if pullSecretName == "" { 39 log.Infof("Image pull secret not defined, skipping secret creation") 40 return nil 41 } 42 registryName := os.Getenv(PipelineRegistryKey) 43 if registryName == "" { 44 registryName = "ghcr.io" 45 log.Infof("Image registry not defined, using default %s", registryName) 46 } 47 registryUser := os.Getenv(PipelineDockerUserKey) 48 if registryName == "" { 49 return fmt.Errorf("registry user %s not defined", PipelineDockerUserKey) 50 } 51 registryPwd := os.Getenv(PipelineDockerPswKey) 52 if registryName == "" { 53 return fmt.Errorf("registry cred %s not defined", PipelineDockerPswKey) 54 } 55 _, err := pkg.CreateDockerSecretInCluster(namespace, pullSecretName, registryName, registryUser, registryPwd, kubeconfigPath) 56 if err != nil && !errors.IsAlreadyExists(err) { 57 return err 58 } 59 return nil 60 }