---
title: "Update a swarm"
method: POST
path: "/swarm/update"
tags: ["Swarm"]
---

# Update a swarm

`POST /swarm/update`

## Query parameters

- `version` integer, required
- `rotateWorkerToken` boolean
- `rotateManagerToken` boolean
- `rotateManagerUnlockKey` boolean

## Request body

- SwarmSpec — User modifiable swarm configuration.
  - `Name` string — Name of the swarm.
  - `Labels` object — User-defined key/value metadata.
  - `Orchestration` object, nullable — Orchestration configuration.
    - `TaskHistoryRetentionLimit` integer — The number of historic tasks to keep per instance or node. If negative, never remove completed or failed tasks.
  - `Raft` object — Raft configuration.
    - `SnapshotInterval` integer — The number of log entries between snapshots.
    - `KeepOldSnapshots` integer — The number of snapshots to keep beyond the current snapshot.
    - `LogEntriesForSlowFollowers` integer — 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, nullable — Dispatcher configuration.
    - `HeartbeatPeriod` integer — The delay for an agent to send a heartbeat to the dispatcher.
  - `CAConfig` object, nullable — CA configuration.
    - `NodeCertExpiry` integer — The duration node certificates are issued for.
    - `ExternalCAs` object[] — Configuration for forwarding signing requests to an external certificate authority.
      - `Protocol` 'cfssl' — Protocol for communication with the external CA (currently only `cfssl` is supported).
      - `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.
      - `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 — 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.
    - `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.
    - `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.
      - `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.

## Response `200`

no error

## Other responses

- `400` — bad parameter
- `500` — server error
- `503` — node is not part of a swarm

---

[API](https://skmtc.net/hide-org/apis/docker-engine-api.md) · [All operations](https://skmtc.net/hide-org/apis/docker-engine-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hide-org/docker-engine-api/versions/08a57910580a/schema)
