# Pass additional ScyllaDB arguments

Pass extra command-line arguments to the ScyllaDB binary at startup to tune behaviour or enable features that are not exposed through the ScyllaDB configuration files.

## How it works

The Operator appends the additional arguments to the ScyllaDB binary command line when starting each pod.
Because the arguments are part of the pod spec (via the StatefulSet), changing them triggers a **rolling restart** of all nodes in the cluster — each node is updated one at a time.

## ScyllaCluster (v1 API)

Set `spec.scyllaArgs` to a string of additional arguments:

```yaml
apiVersion: scylla.scylladb.com/v1
kind: ScyllaCluster
metadata:
  name: scylla
  namespace: scylla
spec:
  scyllaArgs: "--blocked-reactor-notify-ms 10"
  datacenter:
    name: us-east-1
    racks:
      - name: us-east-1a
        members: 3
        storage:
          capacity: 500Gi
        resources:
          limits:
            cpu: 4
            memory: 8Gi
```

#### NOTE
In the v1 API, `scyllaArgs` is a single string.
Multiple arguments are separated by spaces.

#### NOTE
Due to a technical limitation, arguments are represented internally as key-value pairs.
Only flags that take a value are supported (e.g. `--blocked-reactor-notify-ms 500`).
For boolean flags, pass `1` (true) or `0` (false) as the value — for example, `--developer-mode 0`.

## Verify

After the rolling restart completes, confirm that the arguments were applied to the ScyllaDB container.

**Check the pod spec:**

```bash
kubectl -n scylla get pod <pod-name> -o jsonpath='{.spec.containers[?(@.name=="scylla")].command}'
```

The arguments appear in the ScyllaDB container’s command alongside other default arguments added by the Operator.

**Check the ScyllaDB startup logs:**

```bash
kubectl -n scylla logs <pod-name> -c scylla | head -20
```

The ScyllaDB startup line will include the configured arguments alongside the other flags passed to the binary.

## Emergency log level changes

When a rolling restart is not possible — for example, during a stuck rollout or with a degraded cluster — use the ScyllaDB REST API to change settings on running pods without a restart. See [Change the log level](https://operator.docs.scylladb.com/v1.22/troubleshoot/change-log-level.md).

## Related pages

- [Perform a rolling restart](https://operator.docs.scylladb.com/v1.22/operate/perform-rolling-restart.md) — how the Operator performs rolling restarts when the pod spec changes
- [Changing the log level](https://operator.docs.scylladb.com/v1.22/troubleshoot/change-log-level.md) — adjusting ScyllaDB runtime settings without a restart
