swarm.go 835 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package builders
  2. import (
  3. "time"
  4. "github.com/docker/docker/api/types/swarm"
  5. )
  6. // Swarm creates a swarm with default values.
  7. // Any number of swarm function builder can be pass to augment it.
  8. func Swarm(swarmBuilders ...func(*swarm.Swarm)) *swarm.Swarm {
  9. t1 := time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC)
  10. swarm := &swarm.Swarm{
  11. ClusterInfo: swarm.ClusterInfo{
  12. ID: "swarm",
  13. Meta: swarm.Meta{
  14. CreatedAt: t1,
  15. },
  16. Spec: swarm.Spec{},
  17. },
  18. JoinTokens: swarm.JoinTokens{
  19. Worker: "worker-join-token",
  20. Manager: "manager-join-token",
  21. },
  22. }
  23. for _, builder := range swarmBuilders {
  24. builder(swarm)
  25. }
  26. return swarm
  27. }
  28. // Autolock set the swarm into autolock mode
  29. func Autolock() func(*swarm.Swarm) {
  30. return func(swarm *swarm.Swarm) {
  31. swarm.Spec.EncryptionConfig.AutoLockManagers = true
  32. }
  33. }