> ## Documentation Index
> Fetch the complete documentation index at: https://astronomer.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# astro deployment update

> Update a Deployment.

<Info>
  The behavior and format of this command differs depending on what Astronomer
  product you're using. Use the following tabs to change product contexts.
</Info>

<Tabs>
  <Tab title="Astro">
    Update the configuration for a Deployment on Astro.

    <Info>
      To update existing worker queues or to create new queues for an existing
      Deployment, you must update your Deployment by using the `--deployment-file`
      flag to update a [Deployment file](/docs/astro/manage-deployments-as-code).
    </Info>

    ## Usage

    ```sh wrap theme={null}
    astro deployment update <deployment-id> <flags>
    ```

    <Tip>
      This command is recommended for automated workflows. To run this command in an automated process such as a [CI/CD pipeline](/docs/astro/set-up-ci-cd), you can generate an API token, then specify the `ASTRO_API_TOKEN` environment variable in the system running the Astro CLI:

      ```bash wrap theme={null}
      export ASTRO_API_TOKEN=<your-token>
      ```

      See [Organization](/docs/astro/organization-api-tokens), [Workspace](/docs/astro/workspace-api-tokens), and [Deployment](/docs/astro/deployment-api-tokens) API token documentation for more details about ways to use API tokens.
    </Tip>

    ## Options

    | Option | Description | Possible Values |
    | - | - | - |
    | `<deployment-id>` (*Required*) | The ID of the Deployment to update | Any valid Deployment ID |
    | `--allowed-ip-address-ranges` | If Remote Execution is enabled, limit the Deployment's incoming traffic to the Remote Agents in your environment. | A comma-separated list of CIDR blocks, such as `192.168.0.0/24,10.0.0.0/16`. |
    | `--cicd-enforcement` | Specify that the Deployment can only accept code deploys from API tokens. Note that in CLI versions before 1.23, this flag was `--enforce-cicd`. | None |
    | `--dag-deploy` | Enable or disable dag-only deploys for the Deployment. | Either `enable` or `disable`. Contact [Astronomer support](https://cloud.astronomer.io/open-support-request) before using `disable` to disable the feature. |
    | `--default-task-pod-cpu` | The default task Pod CPUs to use for the Deployment. See [Customize a task's Kubernetes Pod](/docs/astro/kubernetes-executor#customize-a-task’s-kubernetes-pod) for more information. | A numeric value such as `0.25`. This number cannot exceed the values you configured in your [Default pod resources](/docs/astro/deployment-resources#configure-kubernetes-pod-resources) in the UI or in your Deployment configuration file. |
    | `--default-task-pod-memory` | The default task pod memory to use for the Deployment in Gi. See [Customize a task's Kubernetes Pod](/docs/astro/kubernetes-executor#customize-a-task’s-kubernetes-pod) for more information. | A numeric value followed by `Gi`, such as `0.5Gi`. This number cannot exceed the values you configured in your [Default pod resources](/docs/astro/deployment-resources#configure-kubernetes-pod-resources) in the UI or in your Deployment configuration file. |
    | `--deployment-file` | A location of the Deployment file to update the Deployment with. The file format can be JSON or YAML. See [Create a Deployment with a Deployment File](/docs/astro/manage-deployments-as-code). | A valid file path to any YAML or JSON Deployment file |
    | `--deployment-name` | The name of the Deployment to update. Use as an alternative to `<deployment-id>`. | Any valid Deployment name |
    | `-d`,`--description` | A description of the Deployment | Any string. Multiple-word descriptions should be specified in quotations (`"`) |
    | `-m`, `--development-mode` | Whether the Deployment is for development mode only. If set to `disable`, the Deployment can be considered production for the purposes of Astro support case priority, but development-only features such as hibernation aren't available. You can't update this value to `enable` for existing non-development Deployments. Set to `disable` by default. | `disable` or `enable` |
    | `-e`,`--executor` | The executor to use for the Deployment | CeleryExecutor or KubernetesExecutor |
    | `-f`,`--force` | Force a Deployment update | None |
    | `-n`,`--name` | The Deployment's name | Any string. Multiple-word descriptions should be specified in quotations. |
    | `--resource-quota-cpu` | The Deployment's CPU resource quota for Kubernetes Pods. See [Customize a task's Kubernetes Pod](/docs/astro/kubernetes-executor#customize-a-task’s-kubernetes-pod) for more information. | A numeric value such as `10`. This number cannot exceed the values you configured in your [Default pod resources](/docs/astro/deployment-resources#configure-kubernetes-pod-resources) in the UI or in your [Deployment file](/docs/astro/deployment-file-reference) configuration file. |
    | `--resource-quota-memory` | The Deployment's memory resource quota for Kubernetes Pods in Gi. See [Customize a task's Kubernetes Pod](/docs/astro/kubernetes-executor#customize-a-task’s-kubernetes-pod) for more information. | A numeric value followed by `Gi`, such as `20Gi`. This number cannot exceed the values you configured in your [Default pod resources](/docs/astro/deployment-resources#configure-kubernetes-pod-resources) in the UI or in your [Deployment file](/docs/astro/deployment-file-reference) configuration file. |
    | `--scheduler-size` | The size of the Scheduler for the Deployment. | Possible values can be `small`, `medium`, `large`, or `extra_large`. `extra_large` schedulers require a minimum Astro Runtime version of 9.7.0. |
    | `-s`,`--scheduler-au` | The number of AU to allocate towards the Deployment's Scheduler(s). The default is`5`. | Integer between `0` and `24` |
    | `-r`,`--scheduler-replicas` | The number of scheduler replicas for the Deployment. The default is `1`. | Integer between `0` and `4` |
    | `--task-log-bucket` | If Remote Execution is enabled, specify the cloud storage bucket for task log storage. You can configure your Deployment to [show the stored logs directly in the Airflow UI](/docs/astro/remote-execution/remote-task-logs-af-ui). | A valid cloud storage bucket name, such as `gs://my-task-logs` or `s3://my-task-logs`. |
    | `--task-log-url-pattern` | If Remote Execution is enabled, specify the URL template to link to task logs stored in an external logging provider from the Airflow UI. | A string URL template. See [Configure external logging provider for Remote Execution Deployments](/docs/astro/remote-execution/remote-task-logs-external#configure-external-logging-provider-for-remote-execution-deployments). |
    | `--workload-identity` | The workload identity to use for the Deployment. | A valid AWS `arn` or a GCP service account. |
    | `-w`,`--workspace-id` | Specify a Workspace to update a Deployment outside of your current Workspace | Any valid Workspace ID |

    ## Examples

    ```sh wrap theme={null}
    # Update a Deployment's name and description
    $ astro deployment update cl03oiq7d80402nwn7fsl3dmv -d="My Deployment Description" --name="My Deployment Name"

    # Force update a Deployment
    $ astro deployment update cl03oiq7d80402nwn7fsl3dmv -d="My Deployment Description" --force

    # Update the Deployment according to the configurations specified in the YAML Deployment file
    $ astro deployment update --deployment-file deployment.yaml
    ```
  </Tab>

  <Tab title="APC">
    Create a Deployment on Astro Private Cloud. This command is functionally identical to using the UI to create a Deployment.

    ## Usage

    ```sh wrap theme={null}
    astro deployment update <deployment-id>
    ```

    ## Options

    | Option | Description | Possible Values |
    | - | - | - |
    | `<deployment-id>` (*Required*) | The ID for the Deployment to update | Any valid Deployment ID |
    | `-a`,`--airflow-version` | The version of Astronomer Certified to use for the Deployment | Any supported version of Astronomer Certified |
    | `-c`, `--cloud-role` | An AWS or GCP IAM role to append to your Deployment's webserver, scheduler, and worker Pods | Any string |
    | `-t`, `--dag-deployment-type` | The dag deploy method for the Deployment | Can be either `image`, `git_sync`, or `volume`. The default is `image` |
    | `-d`,`--description` | The description for the Deployment | Any string. Multiple-word descriptions should be specified in quotations (`"`) |
    | `-e`, `--executor` | The executor type for the Deployment | `local`, `celery`, or `kubernetes`. The default value is `celery` |
    | `-b`, `--git-branch-name` | The branch name of the git repo to sync your Deployment from. Must be specified with `--dag-deployment-type=git_sync` | Any valid git branch name |
    | `-u`, `--git-repository-url` | The URL for the git repository to sync your Deployment from. Must be specified with `--dag-deployment-type=git_sync` | Any valid git repository URL |
    | `-v`, `--git-revision` | The commit reference of the branch that you want to sync with your Deployment. Must be specified with `--dag-deployment-type=git_sync` | Any valid git revision |
    | `--known-hosts` | The public key for your Git provider, which can be retrieved using `ssh-keyscan -t rsa <provider-domain>`. Must be specified with `--dag-deployment-type=git_sync` | Any valid public key |
    | `-l`,`--label` | The label for your Deployment | Any string |
    | `-n`,`--nfs-location` | The location for an NFS volume mount. Must be specified with `--dag-deployment-type=volume` | An NFS volume mount specified as: `<IP>:/<path>`. Input is automatically prepended with `nfs:/` - do not include this in your input |
    | `-r`,`--release-name` | A custom release name for the Deployment. See [Customize release names](https://www.astronomer.io/docs/software/configure-deployment#customize-release-names) | Any string of alphanumeric and hyphen characters |
    | `--runtime-version` | The Astro Runtime version for the Deployment | Any supported version of Astro Runtime. Major, minor, and patch versions must be specified |
    | `--ssh-key` | The SSH private key for your Git repository. Must be specified with `--dag-deployment-type=git_sync` | Any valid SSH key |
    | `-s`,`--sync-interval` | The time interval between checks for updates in your Git repository, in seconds. Must be specified with `--dag-deployment-type=git_sync` | Any integer |
    | `-t`,`--triggerer-replicas` | Number of replicas to use for the Airflow triggerer | Any integer between 0 - 2. The default value is 1 |
    | `--workload-identity` | The workload identity to use for the Deployment. You must use this flag with `--cloud-provider`. | A valid AWS `arn` or GCP `service account` |
    | `--workspace-id` | The Workspace in which to create a Deployment. If not specified, your current Workspace is assumed | Any valid Workspace ID |

    ## Examples

    ```sh wrap theme={null}
    $ astro deployment update telescopic-sky-4599 --executor kubernetes
    # Change the executor for a Deployment

    $ astro deployment update telescopic-sky-4599 -l="My Deployment label" --workspace-id="ckwqkz36200140ror6axh8p19"
    # Update a Deployment in a separate Workspace. The CLI will not prompt you for more information
    ```
  </Tab>
</Tabs>

## Related commands

* [`astro deployment delete`](/docs/cli/v1.46/astro-deployment-delete)
* [`astro deployment list`](/docs/cli/v1.46/astro-deployment-list)
