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  }