github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/pkg/secret/read/secret.go (about) 1 package read 2 3 import ( 4 "github.com/caos/orbos/internal/utils/clientgo" 5 "github.com/caos/orbos/pkg/kubernetes" 6 "github.com/caos/orbos/pkg/secret" 7 ) 8 9 func IsExistentSecret(secret *secret.Secret, existent *secret.Existing) bool { 10 if (secret == nil || secret.Value == "") && existent != nil && (existent.Name != "" && existent.Key != "") { 11 return true 12 } 13 return false 14 } 15 16 func IsCrdSecret(secret *secret.Secret, existent *secret.Existing) bool { 17 if (secret != nil && secret.Value != "") && (existent == nil || (existent.Name == "" || existent.Key == "")) { 18 return true 19 } 20 return false 21 } 22 23 func GetSecretValueOnlyIncluster(secret *secret.Secret, existing *secret.Existing) (string, error) { 24 if IsExistentSecret(secret, existing) { 25 secret, err := clientgo.GetSecret(existing.Name, "caos-system") 26 if err != nil { 27 return "", err 28 } 29 30 return string(secret.Data[existing.Key]), nil 31 } else if IsCrdSecret(secret, existing) { 32 return secret.Value, nil 33 } 34 35 return "", nil 36 } 37 38 func GetSecretValue(k8sClient kubernetes.ClientInt, secret *secret.Secret, existing *secret.Existing) (string, error) { 39 if IsExistentSecret(secret, existing) { 40 secret, err := k8sClient.GetSecret("caos-system", existing.Name) 41 if err != nil { 42 return "", err 43 } 44 45 return string(secret.Data[existing.Key]), nil 46 } else if IsCrdSecret(secret, existing) { 47 return secret.Value, nil 48 } 49 50 return "", nil 51 }