github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/internal/operator/boom/application/resources/secret.go (about)

     1  package resources
     2  
     3  import "encoding/base64"
     4  
     5  type SecretConfig struct {
     6  	Name      string
     7  	Namespace string
     8  	Labels    map[string]string
     9  	Data      map[string]string
    10  }
    11  
    12  type Secret struct {
    13  	APIVersion string            `yaml:"apiVersion"`
    14  	Kind       string            `yaml:"kind"`
    15  	Metadata   *Metadata         `yaml:"metadata"`
    16  	Data       map[string]string `yaml:"data"`
    17  	Type       string            `yaml:"type"`
    18  }
    19  
    20  func NewSecret(conf *SecretConfig) *Secret {
    21  	encodedData := make(map[string]string, 0)
    22  	for k, v := range conf.Data {
    23  		encodedData[k] = base64.StdEncoding.EncodeToString([]byte(v))
    24  	}
    25  
    26  	return &Secret{
    27  		APIVersion: "v1",
    28  		Kind:       "Secret",
    29  		Metadata: &Metadata{
    30  			Name:      conf.Name,
    31  			Namespace: conf.Namespace,
    32  			Labels:    conf.Labels,
    33  		},
    34  		Type: "Opaque",
    35  		Data: encodedData,
    36  	}
    37  }