Initialize a new swarm Run in API Explorer

POST /swarm/init
application/json

Body Required

  • ListenAddr string

    Listen address used for inter-manager communication, as well as determining the networking interface used for the VXLAN Tunnel Endpoint (VTEP). This can either be an address/port combination in the form 192.168.1.1:4567, or an interface followed by a port number, like eth0:4567. If the port number is omitted, the default swarm listening port is used.

  • AdvertiseAddr string

    Externally reachable address advertised to other nodes. This can either be an address/port combination in the form 192.168.1.1:4567, or an interface followed by a port number, like eth0:4567. If the port number is omitted, the port number from the listen address is used. If AdvertiseAddr is not specified, it will be automatically detected when possible.

  • DataPathAddr string

    Address or interface to use for data path traffic (format: <ip|interface>), for example, 192.168.1.1, or an interface, like eth0. If DataPathAddr is unspecified, the same address as AdvertiseAddr is used.

    The DataPathAddr specifies the address that global scope network drivers will publish towards other nodes in order to reach the containers running on this node. Using this parameter it is possible to separate the container data traffic from the management traffic of the cluster.

  • DataPathPort integer(uint32)

    DataPathPort specifies the data path port number for data traffic. Acceptable port range is 1024 to 49151. if no port is set or is set to 0, default port 4789 will be used.

  • DefaultAddrPool array[string]

    Default Address Pool specifies default subnet pools for global scope networks.

  • ForceNewCluster boolean

    Force creation of a new swarm.

  • SubnetSize integer(uint32)

    SubnetSize specifies the subnet size of the networks created from the default subnet pool.

  • Spec object

    User modifiable swarm configuration.

    Hide Spec attributes Show Spec attributes object
    • Name string

      Name of the swarm.

    • Labels object

      User-defined key/value metadata.

      Hide Labels attribute Show Labels attribute object
      • * string Additional properties
    • Orchestration object

      Orchestration configuration.

      Hide Orchestration attribute Show Orchestration attribute object
      • TaskHistoryRetentionLimit integer(int64)

        The number of historic tasks to keep per instance or node. If negative, never remove completed or failed tasks.

    • Raft object

      Raft configuration.

      Hide Raft attributes Show Raft attributes object
      • SnapshotInterval integer(uint64)

        The number of log entries between snapshots.

      • KeepOldSnapshots integer(uint64)

        The number of snapshots to keep beyond the current snapshot.

      • LogEntriesForSlowFollowers integer(uint64)

        The number of log entries to keep around to sync up slow followers after a snapshot is created.

      • ElectionTick integer

        The number of ticks that a follower will wait for a message from the leader before becoming a candidate and starting an election. ElectionTick must be greater than HeartbeatTick.

        A tick currently defaults to one second, so these translate directly to seconds currently, but this is NOT guaranteed.

      • HeartbeatTick integer

        The number of ticks between heartbeats. Every HeartbeatTick ticks, the leader will send a heartbeat to the followers.

        A tick currently defaults to one second, so these translate directly to seconds currently, but this is NOT guaranteed.

    • Dispatcher object

      Dispatcher configuration.

      Hide Dispatcher attribute Show Dispatcher attribute object
      • HeartbeatPeriod integer(int64)

        The delay for an agent to send a heartbeat to the dispatcher.

    • CAConfig object

      CA configuration.

      Hide CAConfig attributes Show CAConfig attributes object
      • NodeCertExpiry integer(int64)

        The duration node certificates are issued for.

      • ExternalCAs array[object]

        Configuration for forwarding signing requests to an external certificate authority.

        Hide ExternalCAs attributes Show ExternalCAs attributes object
        • Protocol string

          Protocol for communication with the external CA (currently only cfssl is supported).

          Value is cfssl. Default value is cfssl.

        • URL string

          URL where certificate signing requests should be sent.

        • Options object

          An object with key/value pairs that are interpreted as protocol-specific options for the external CA driver.

          Hide Options attribute Show Options attribute object
          • * string Additional properties
        • CACert string

          The root CA certificate (in PEM format) this external CA uses to issue TLS certificates (assumed to be to the current swarm root CA certificate if not provided).

      • SigningCACert string

        The desired signing CA certificate for all swarm node TLS leaf certificates, in PEM format.

      • SigningCAKey string

        The desired signing CA key for all swarm node TLS leaf certificates, in PEM format.

      • ForceRotate integer(uint64)

        An integer whose purpose is to force swarm to generate a new signing CA certificate and key, if none have been specified in SigningCACert and SigningCAKey

    • EncryptionConfig object

      Parameters related to encryption-at-rest.

      Hide EncryptionConfig attribute Show EncryptionConfig attribute object
      • AutoLockManagers boolean

        If set, generate a key and use it to lock data stored on the managers.

    • TaskDefaults object

      Defaults for creating tasks in this cluster.

      Hide TaskDefaults attribute Show TaskDefaults attribute object
      • LogDriver object

        The log driver to use for tasks created in the orchestrator if unspecified by a service.

        Updating this value only affects new tasks. Existing tasks continue to use their previously configured log driver until recreated.

        Hide LogDriver attributes Show LogDriver attributes object
        • Name string

          The log driver to use as a default for new tasks.

        • Options object

          Driver-specific options for the selectd log driver, specified as key/value pairs.

          Hide Options attribute Show Options attribute object
          • * string Additional properties

Responses

  • no error

    The node ID

    The node ID

  • bad parameter

    Hide response attribute Show response attribute object
    • message string Required

      The error message.

    Hide response attribute Show response attribute object
    • message string Required

      The error message.

  • server error

    Hide response attribute Show response attribute object
    • message string Required

      The error message.

    Hide response attribute Show response attribute object
    • message string Required

      The error message.

  • node is already part of a swarm

    Hide response attribute Show response attribute object
    • message string Required

      The error message.

    Hide response attribute Show response attribute object
    • message string Required

      The error message.

POST /swarm/init
curl \
 --request POST 'http://api.example.com/v1.44/swarm/init' \
 --header "Content-Type: application/json" \
 --data '{"Spec":{"Raft":{},"CAConfig":{},"Dispatcher":{},"Orchestration":{},"EncryptionConfig":{"AutoLockManagers":false}},"ListenAddr":"0.0.0.0:2377","SubnetSize":24,"DataPathPort":4789,"AdvertiseAddr":"192.168.1.1:2377","DefaultAddrPool":["10.10.0.0/8","20.20.0.0/8"],"ForceNewCluster":false}'
Request examples
{
  "Spec": {
    "Raft": {},
    "CAConfig": {},
    "Dispatcher": {},
    "Orchestration": {},
    "EncryptionConfig": {
      "AutoLockManagers": false
    }
  },
  "ListenAddr": "0.0.0.0:2377",
  "SubnetSize": 24,
  "DataPathPort": 4789,
  "AdvertiseAddr": "192.168.1.1:2377",
  "DefaultAddrPool": [
    "10.10.0.0/8",
    "20.20.0.0/8"
  ],
  "ForceNewCluster": false
}
Response examples (200)
7v2t30z9blmxuhnyo6s4cpenp
Response examples (200)
7v2t30z9blmxuhnyo6s4cpenp
Response examples (400)
{
  "message": "Something went wrong."
}
Response examples (400)
{
  "message": "Something went wrong."
}
Response examples (500)
{
  "message": "Something went wrong."
}
Response examples (500)
{
  "message": "Something went wrong."
}
Response examples (503)
{
  "message": "Something went wrong."
}
Response examples (503)
{
  "message": "Something went wrong."
}