This commit extends SwarmKit secret management with pluggable secret
backends support.
Following previous commits:
1. docker/swarmkit@eebac27434
2. docker/docker@08f7cf0526
Added driver parameter to `docker secret` command.
Specifically:
1. `docker secret create [secret_name] --driver [driver_name]`
2. Displaying the driver in
```
$ docker secret ls
$ docker secret inspect [secret_name]
$ docker secret inspect [secret_name] -pretty
```
Signed-off-by: Liron Levin <liron@twistlock.com>
Upstream-commit: 0ee9e05d8f
Component: cli
71 lines
1.6 KiB
Go
71 lines
1.6 KiB
Go
package builders
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/docker/docker/api/types/swarm"
|
|
)
|
|
|
|
// Secret creates a secret with default values.
|
|
// Any number of secret builder functions can be passed to augment it.
|
|
func Secret(builders ...func(secret *swarm.Secret)) *swarm.Secret {
|
|
secret := &swarm.Secret{}
|
|
|
|
for _, builder := range builders {
|
|
builder(secret)
|
|
}
|
|
|
|
return secret
|
|
}
|
|
|
|
// SecretLabels sets the secret's labels
|
|
func SecretLabels(labels map[string]string) func(secret *swarm.Secret) {
|
|
return func(secret *swarm.Secret) {
|
|
secret.Spec.Labels = labels
|
|
}
|
|
}
|
|
|
|
// SecretName sets the secret's name
|
|
func SecretName(name string) func(secret *swarm.Secret) {
|
|
return func(secret *swarm.Secret) {
|
|
secret.Spec.Name = name
|
|
}
|
|
}
|
|
|
|
// SecretDriver sets the secret's driver name
|
|
func SecretDriver(driver string) func(secret *swarm.Secret) {
|
|
return func(secret *swarm.Secret) {
|
|
secret.Spec.Driver = &swarm.Driver{
|
|
Name: driver,
|
|
}
|
|
}
|
|
}
|
|
|
|
// SecretID sets the secret's ID
|
|
func SecretID(ID string) func(secret *swarm.Secret) {
|
|
return func(secret *swarm.Secret) {
|
|
secret.ID = ID
|
|
}
|
|
}
|
|
|
|
// SecretVersion sets the version for the secret
|
|
func SecretVersion(v swarm.Version) func(*swarm.Secret) {
|
|
return func(secret *swarm.Secret) {
|
|
secret.Version = v
|
|
}
|
|
}
|
|
|
|
// SecretCreatedAt sets the creation time for the secret
|
|
func SecretCreatedAt(t time.Time) func(*swarm.Secret) {
|
|
return func(secret *swarm.Secret) {
|
|
secret.CreatedAt = t
|
|
}
|
|
}
|
|
|
|
// SecretUpdatedAt sets the update time for the secret
|
|
func SecretUpdatedAt(t time.Time) func(*swarm.Secret) {
|
|
return func(secret *swarm.Secret) {
|
|
secret.UpdatedAt = t
|
|
}
|
|
}
|