Files
abra/pkg/client/secret.go

44 lines
1.0 KiB
Go

package client
import (
"context"
appPkg "coopcloud.tech/abra/pkg/app"
"github.com/docker/docker/api/types/filters"
"github.com/docker/docker/api/types/swarm"
"github.com/docker/docker/client"
)
func StoreSecret(cl *client.Client, secretName, secretValue string) error {
ann := swarm.Annotations{Name: secretName}
spec := swarm.SecretSpec{Annotations: ann, Data: []byte(secretValue)}
if _, err := cl.SecretCreate(context.Background(), spec); err != nil {
return err
}
return nil
}
func GetSecretNamesForStack(cl *client.Client, app appPkg.App) ([]string, error) {
filters, err := app.Filters(false, false)
if err != nil {
return nil, err
}
secretList, err := cl.SecretList(context.Background(), swarm.SecretListOptions{Filters: filters})
if err != nil {
return nil, err
}
return GetSecretNames(secretList), nil
}
func GetSecretNames(secrets []swarm.Secret) []string {
var secretNames []string
for _, secret := range secrets {
secretNames = append(secretNames, secret.Spec.Name)
}
return secretNames
}