Fleets with a Shared Pipeline

Deploying Multiple Fleets with a Shared Pipeline.

Overview

By default, a fleet is defined as a set of agents that share the same Pipeline configuration. However, you can deploy multiple fleets that all share the same pipeline configuration. This enables you to filter by Fleet.

A best practice is to share Pipeline components using Compound Nodes, rather than duplicating a pipeline across multiple fleets. See Deleting a Shared Pipeline below.

Helm

  1. Click Pipelines and select the fleet with the Pipeline you want to share.
  2. Click Add Agents.
  3. Select Helm.
  4. Copy and execute the commands, while passing in the following Helm value to the helm upgrade command:
--set edTagOverride=<new name>

Replace <new name> with the Fleet name you want the new Fleet to have.

kubectl

  1. Click Pipelines and select the Fleet with the Pipeline you want to share.
  2. Click Add Agents.
  3. Select Kubernetes.
  4. Open the file mentioned in the kubectl apply command and create a local copy of the manifest:
https://raw.githubusercontent.com/edgedelta/k8s/master/edgedelta-agent-k8s-from-helm.yaml

Add the following environment variable to the Processor DaemonSet, rollup StatefulSet, and Compactor Agent StatefulSet:

env:
  - name: ED_TAG_OVERRIDE
    value: "NewFleetName"

Replace <new name> with the Fleet name you want the new Fleet to have.

  1. Execute the commands listed in the Add Agents instructions but replace the manifest URL with the filepath to your local manifest that contains the new environment variables.
kubectl apply -f <updated manifest>.yaml

Linux and MacOS

  1. Click Pipelines and select the Fleet with the Pipeline you want to share.
  2. Click Add Agents.
  3. Select Linux or MacOS.
  4. Add the following environment variable to the beginning of the command:
ED_TAG_OVERRIDE=<new name>

Replace <new name> with the Fleet name you want the new Fleet to have.

Deleting a Shared Pipeline

Note: When you delete a fleet that shares a Pipeline configuration with other fleets, all the fleets that use that pipeline will be deleted.

To delete all the fleets that share a pipeline:

  1. Click Pipelines and select any of the Fleets with the Pipeline you want to delete.
  2. Click Delete Fleet.

Alternatively, you can delete the agents from your environment, or re-deploy into the same environment without edTagOverride. Bear in mind the empty fleet will remain in the Dashboard.