---
title: Manage existing instrumentation with Agent Control
source: https://docs.newrelic.com/docs/new-relic-control/agent-control/reinstrumentation
---

> #### ⚠️ IMPORTANT
>
> Agent Control and New Relic Control are now **generally available** for Kubernetes! Support for Linux hosts and Windows hosts is also in **public preview** program, pursuant to our [pre-release policies](https://docs.newrelic.com/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy).

## Kubernetes migration

If your Kubernetes cluster is already instrumented with New Relic, you can transition your agents to be managed by Agent Control to use its management features. The migration process removes existing agent installs and replaces them with Agent Control-managed installs, configured centrally through Fleet Control.

> #### ⚠️ REMOTE CONFIGURATION ALWAYS WINS
>
> Agent Control uses Fleet Control as the authoritative source for agent configuration. Any agent settings — versions, chart values, and resource limits — must be defined in the Fleet Control remote configuration, not in the local installation `values.yaml`. If both exist, the remote configuration takes precedence and will override any local values.

> #### 💡 BEST PRACTICES
>
> To ensure data continuity, use the same cluster name and the same New Relic account during Agent Control installation. You can keep any agents or components that are not yet supported by Agent Control on the cluster until support is available.

### Step 1. Retrieve your existing configuration

First, identify which of your existing agents can be managed by Agent Control.

Agent Control can deploy and manage the following agents from the `nri-bundle` Helm chart, mapped to Agent Control agent types:

-   `newrelic-infrastructure`, `nri-kube-events`, `kube-state-metrics`, and `nri-kube-events`: Managed as the New Relic Infrastructure agent type
-   `newrelic-prometheus-configurator`: Managed as the New Relic Prometheus agent type
-   `newrelic-logging`: Managed as the Fluent Bit agent type
-   `nr-k8s-otel-collector`: Managed as the New Relic OpenTelemetry Collector agent type

If you installed agents using Helm, retrieve your installation config from the cluster by running the following command:

```sh
# Find releases in a namespace (adjust as needed)
helm list --namespace <namespace-name>

# Get the values for a specific release
$ helm get values <release-name> --namespace <namespace-name>
```

If you have the original configuration file saved from the installation, you can use that directly. If you instrumented the cluster via Kubernetes manifests (kubectl or Kustomize), note the options set for each agent — you'll recreate them as Fleet Control remote configurations.

### Step 2. Uninstall your old agents

Before installing Agent Control, remove the old agents from your cluster.

For a Helm installation, use the `helm uninstall` command:

```shell
$ helm uninstall <release-name> -n <namespace>
```

For example, to uninstall the `nri-bundle`:

```shell
$ helm uninstall nri-bundle -n newrelic
```

### Step 3. Install Agent Control

Start the [Agent Control guided installation](https://docs.newrelic.com/docs/new-relic-control/agent-control/setup/) and download the generated `values.yaml`. This file contains only the Agent Control supervisor configuration (credentials, fleet ID, and which agent types to manage) — **do not add agent-specific chart values here**. Those belong in the Fleet Control remote configuration.

For a Helm installation, you would typically run:

```shell
$ helm upgrade --install agent-control-bootstrap -n newrelic newrelic/agent-control-bootstrap --create-namespace --values my_values.yaml
```

### Step 4. Recreate your agent configuration in Fleet Control

After Agent Control is installed and connected to Fleet Control, deploy your agents by creating or updating the fleet's remote configuration with your previous settings. This is the authoritative place for all agent configuration.

#### Example: Migrating an nri-bundle installation

The following shows how to translate existing `nri-bundle` Helm values into a Fleet Control remote configuration.

**Existing `nri-bundle` configuration:**

```yaml
global:
  cluster: test-migration
  licenseKey: ***
kube-state-metrics:
  enabled: false
newrelic-prometheus-agent:
  enabled: true
newrelic-infrastructure:
  enabled: true
  kubelet:
    tolerations:
      - operator: "Exists"
        effect: "NoSchedule"
      - operator: "Exists"
        effect: "NoExecute"
      - operator: "Exists"
        key: "MyToleration"
  ksm:
    enabled: false
  common:
    config:
      interval: 29s
newrelic-logging:
  enabled: true
  image:
    tag: "latest"
  resources:
    limits:
      cpu: 200m
    requests:
      cpu: 200m
nri-kube-events:
  enabled: true
  customAttributes:
    test_tag_label: test_tag_value
```

**Equivalent Fleet Control remote configuration:**

Set this as the remote configuration for your fleet in Fleet Control. Agent Control will apply it automatically.

```yaml
logs:
  chart_version: "1.25.1"
  chart_values:
    newrelic-logging:
      image:
        tag: "latest"
      resources:
        limits:
          cpu: 200m
        requests:
          cpu: 200m
infrastructure:
  chart_version: "5.0.109"
  chart_values:
    newrelic-infrastructure:
      kubelet:
        tolerations:
          - operator: "Exists"
            effect: "NoSchedule"
          - operator: "Exists"
            effect: "NoExecute"
          - operator: "Exists"
            key: "MyToleration"
      ksm:
        enabled: false
      common:
        config:
          interval: 29s
    nri-kube-events:
      customAttributes:
        test_tag_label: test_tag_value
prometheus:
  chart_version: "1.15.4"
```

## Linux migration

> #### ⚠️ IMPORTANT
>
> Agent Control does not support automatic migration of existing agents on Linux. If you have the New Relic Infrastructure Agent already installed on your Linux host, you must uninstall it manually before installing Agent Control. Agent Control distributes agents via OCI-compliant packages through Fleet Control — it does not replace or inherit the existing `newrelic-infra` package installation.

To migrate from a standalone Infrastructure Agent installation on Linux to Agent Control:

1.  **Note your existing configuration.** Before uninstalling, save a copy of your agent configuration at `/etc/newrelic-infra/newrelic-infra.yml` and any on-host integration configs in `/etc/newrelic-infra/integrations.d/`. You will need to recreate these as Fleet Control remote configurations after installing Agent Control.

2.  **Uninstall the existing Infrastructure Agent.** Follow the uninstall steps for your distribution:

    ### Debian, Ubuntu

    ````bash
    sudo apt-get remove newrelic-infra -y
    ```

    ````

    ### SLES

    ````bash
    sudo zypper -n remove newrelic-infra
    ```

    ````

    ### Amazon Linux, CentOS, RHEL

    ````bash
    sudo yum remove newrelic-infra -y
    ```

    ````

3.  **Install Agent Control.** Follow the [Linux installation steps](https://docs.newrelic.com/docs/new-relic-control/agent-control/setup/) using the guided install, ensuring you select or create a fleet of type **"Host - Linux"**.

4.  **Recreate your agent configuration in Fleet Control.** After Agent Control is installed and connected, deploy the Infrastructure Agent through Fleet Control and apply your previous settings via a remote configuration. See [Linux configuration](https://docs.newrelic.com/docs/new-relic-control/agent-control/configuration/#linux-configuration) for guidance on the configuration format.

Custom dashboards and alerts referencing data from the Infrastructure Agent will continue to work as long as you use the same account and host name.

## Windows migration

> #### ⚠️ IMPORTANT
>
> Agent Control does not support automatic migration of existing agents on Windows. If you have the New Relic Infrastructure Agent already installed on your Windows host, you must uninstall it manually before installing Agent Control. APM agents are not managed by Agent Control on Windows and can remain installed.

To migrate from a standalone Infrastructure Agent installation on Windows to Agent Control:

1.  **Uninstall the existing Infrastructure Agent.** Open **Add or Remove Programs** (or use PowerShell) and uninstall the New Relic Infrastructure Agent. Alternatively, run its uninstaller:

    ```powershell
    # Example using the MSI uninstaller
    msiexec /x {PRODUCT_CODE} /quiet
    ```

2.  **Note your existing configuration.** Before uninstalling, save a copy of your agent configuration (typically at `C:\Program Files\New Relic\newrelic-infra\newrelic-infra.yml`) and any on-host integration configs in `C:\Program Files\New Relic\newrelic-infra\integrations.d\`. You will need to recreate these as Fleet Control remote configurations after installing Agent Control.

3.  **Install Agent Control.** Follow the [Windows installation steps](https://docs.newrelic.com/docs/new-relic-control/agent-control/setup/) using the guided install, ensuring you select or create a fleet of type **"Host - Windows"**.

4.  **Recreate your agent configuration in Fleet Control.** After Agent Control is installed and connected, deploy the Infrastructure Agent through Fleet Control and apply your previous settings via a remote configuration. See [Windows configuration](https://docs.newrelic.com/docs/new-relic-control/agent-control/configuration/#windows-configuration) for guidance on the configuration format.

Custom dashboards and alerts referencing data from the Infrastructure Agent will continue to work as long as you use the same account and host name.
