> ## 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.

# Apply an Astro Private Cloud platform Helm configuration change

Astro Private Cloud uses [Helm](https://helm.sh/) to install and manage some platform-level settings that apply to all users and Deployments. The [Astronomer Helm chart](https://github.com/astronomer/astronomer/blob/master/values.yaml) includes configurations for areas such as:

* Identity provider integrations
* Registry backends
* Resource allocation limits

You can apply any platform customizations to your cluster using a YAML configuration. `values.yaml` contains settings for both the Astronomer Helm chart, as well as Helm charts for system components like [Elasticsearch](https://github.com/astronomer/astronomer/blob/master/charts/elasticsearch/values.yaml) and [nginx](https://github.com/astronomer/astronomer/blob/master/charts/nginx/values.yaml). Using Helm allows you to keep all of your configurations in a single file that you can version and store securely.

Use this document to learn how to retrieve your existing Helm configuration, modify configurations, and apply your changes to your cluster.

Before you edit `values.yaml`, read [Configure Astro Private Cloud](/docs/astro-private-cloud/v-2-x/configure-astro-private-cloud) to decide whether a setting belongs in platform Helm values, a cluster override, a workspace override, or a deployment override.

<Steps>
  <Step title="Retrieve your current cluster configuration">
    The best way to add or modify configurations is to start with your existing `values.yaml` file. To retrieve the current `values.yaml` file of an existing APC cluster, run the following command:

    ```bash wrap theme={null}
    helm get values -o yaml <your-installation-release-name> -n <your-installation-namespace> > values.yaml
    ```

    <Note>
      This command overwrites any file called `values.yaml` in your current directory.
    </Note>

    Alternatively, your team might use version management to store your existing Helm configuration. In this case, retrieve, update, and store your configuration file according to your team's workflows. If your configuration file includes secrets, ensure you encrypt it before storing it in version control.
  </Step>

  <Step title="Update your configurations">
    1. Create a copy of your `values.yaml` file so that you can compare your existing configuration to your new configuration.
    2. In your copied file, update the values for the configurations you want to change. To update a configuration you haven't already specified, copy the corresponding default values from the relevant [default Helm chart](https://github.com/astronomer/astronomer/tree/master/charts) into your `values.yaml` file and then modify the value.

    When you have finished updating the configuration, ensure that the configurations have the same relative order and indentation as they do in the [default configuration file](https://github.com/astronomer/astronomer/blob/master/values.yaml). If they don't, your changes might not be properly applied. The name of the Helm charts you're modifying should be the first items in the file, such as in the following example:

    ```yaml wrap theme={null}
    global:
      <your-global-configuration>

    astronomer:
      <your-astronomer-configuration>

    alertmanager:
      <your-alertmanager-configuration>

    nginx:
      <your-nginx-configuration>
    ```

    <Info>A number of configurations, including identity provider settings and platform-wide deployment defaults, live in `astronomer.houston.config`. Astro Private Cloud (APC) 2.x applies platform config first, then cluster, workspace, and Deployment overrides for supported `deployments.*` settings. Use [Configure Astro Private Cloud](/docs/astro-private-cloud/v-2-x/configure-astro-private-cloud) to decide which layer to update before you run a Helm upgrade.</Info>
  </Step>

  <Step title="Push changes to your cluster">
    1. Copy your platform namespace and release name. These are both likely to be `astronomer`. Find your platform release name in your list of active namespaces by running the following command:

       ```bash wrap theme={null}
       kubectl get ns
       ```

       To locate your platform release name, run:

       ```bash wrap theme={null}
       helm ls -n <your-installation-namespace>
       ```

    2. Save your updated `values.yaml` file and run the following command to apply it as a Helm upgrade:

       ```bash wrap theme={null}
       helm upgrade <your-installation-release-name> astronomer/astronomer -f <your-updated-config-yaml-file> -n <your-installation-namespace> --set astronomer.houston.upgradeDeployments.enabled=false
       ```

       Setting `astronomer.houston.upgradeDeployments.enabled=false` ensures that Apache Airflow components in Deployments don't restart during your upgrade.

    3. Run the following command to confirm that your configuration was applied:

       ```bash wrap theme={null}
       helm get values <your-installation-release-name> -n <your-installation-namespace>
       ```
  </Step>
</Steps>
