Skip to main content

Install Conductor with Helm

Conductor cluster connections can be backed with basic Kubernetes manifests or packaged as a Helm chart. Helm is ideal if you already manage Kubernetes apps with Helm/GitOps (ArgoCD, Flux, etc.) and want Conductor and optional Dapr control plane changes to flow through the same pipeline. When you manage a cluster connection entirely through Helm, the Conductor console treats it as read-only: all configuration lives in Helm values.

Enterprise-only

Installing Conductor on ARM-based clusters is specific to the Conductor Enterprise plan

Two Helm charts are involved:

Use the tiles below to jump to the workflow that matches how you provision clusters.

warning

When Dapr is managed by Helm, the following features are not supported in Conductor:

  • Managed mTLS certificate rotation
  • Automatic agent upgrades
  • Automatic Dapr configuration sync
  • Application and sidecar rollouts
  • Dapr upgrades via the web console/CLI
  • Cluster connection updates via the web console/CLI
  • Automatically applying advisories

Installation workflows

CLI workflow

Ensure you have the Diagrid CLI set up.

1

Authenticate with Diagrid

diagrid login
2

Target the Conductor productOptional

Helpful if you also manage Catalyst resources from the same CLI.

diagrid product use conductor
3

Create a Helm-managed cluster connection

diagrid clusters connect -n <new-conductor-cluster-name> --helm-managed

Replace <new-conductor-cluster-name> with a descriptive name. Capture the cluster ID from the command output for the next step.

4

Download the agent Helm values

This file contains the credentials Conductor uses to communicate with your cluster.

diagrid clusters helmvalues <cluster-id> > conductor-agent-values.yaml

Store the file securely and avoid committing it to public repositories.

5

Install the Conductor agent chart

helm install conductor-agent oci://public.ecr.aws/diagrid/conductor-charts/agent \
  --version <version-number> \
  -n diagrid-cloud --create-namespace \
  -f conductor-agent-values.yaml
6

Install Dapr via HelmOptional

helm repo add dapr https://dapr.github.io/helm-charts/
helm repo update
helm install dapr dapr/dapr \
  --version=<dapr-version> \
  --namespace dapr-system --create-namespace --wait
7

Verify resources in Conductor

Watch the agent and Dapr control plane come online in the console.

https://diagrid.ws/conductor

Console workflow

1

Create a Helm-managed cluster connection

In the Conductor console, select the Kubernetes distribution, cluster type, and enable Helm managed.

Create Helm-managed cluster connection

2

Decide whether to install Dapr

Toggle Install Dapr if you want Conductor to generate a separate Helm chart configuration. Set the version, namespace, and Helm values using the provided profiles or your own overrides.

Configure Dapr Helm install

3

Adjust advanced agent settingsOptional

Use Advanced agent configuration to change namespaces, labels, tolerations, and more.

Advanced agent configuration

4

Generate Helm commands and values

Select Create to produce downloadable values files and matching Helm commands.

Download Helm values

5

Download and inspect the values files

Review the agent and Dapr values before storing them in source control. Reference the Helm values tables below to confirm each setting.

6

Install the Helm charts

Run the generated commands (or use the samples below) for the agent and, if enabled, Dapr.

# Sample Agent Helm installation
helm install <cluster-connection-name> oci://public.ecr.aws/diagrid/conductor-charts/agent \
  --version <version-number> \
  -n diagrid-cloud --create-namespace \
  -f https://api.diagrid.io/apis/diagrid.io/v1beta1/clusters/<cluster-id>/helmvalues?token=<cluster-token>

# Sample Dapr Helm installation

helm install dapr dapr/dapr \
--version=<dapr-version> \
--namespace dapr-system --create-namespace --wait \
-f https://api.diagrid.io/apis/diagrid.io/v1beta1/clusters/<cluster-id>/daprhelmvalues?token=<cluster-token>
7

Verify resources in Conductor

Monitor the cluster status at

https://diagrid.ws/conductor

Agent Helm values reference

Required values

It is important that you do not overwrite the following Helm values when modifying or providing your own custom Helm values, as these supply the connection details from your Kubernetes cluster that allow it to connect to your Conductor organization.

caCertPem: "your-ca-cert-pem"

global:
orgId: "your-org-id"
agentId: "your-agent-id"
manifestId: "your-manifest-id"

agent:
key: "your-agent-key"
keyB64: "your-agent-key-base64"
Global configuration

Global configuration applies to the Conductor agent and OpenTelemetry logs and metrics collectors.

ParameterDescriptionDefault
global.namespaceNamespace for deploymentdiagrid-cloud
global.namespaceDefaultDefault namespacediagrid-cloud
global.cloudUrlDiagrid cloud endpointcloudgrid.diagrid.io:443
global.orgIdOrganization ID""
global.agentIdAgent ID""
global.manifestIdManifest ID""
global.imageTagGlobal image tag""
global.mainServiceAccountNameMain service account namediagrid-agent
global.sccTargetServiceAccountNameSCC target service accountdiagrid-agent-logs-collector
global.kubernetesOsKubernetes OSlinux
global.isOpenShiftOpenShift deployment flagfalse
global.isLocalLocal deployment flagfalse
global.customCACustom CA certificate""
global.proxyConfigProxy configuration
Conductor agent
ParameterDescriptionDefault
agent.imageAgent image repositoryus-central1-docker.pkg.dev/prj-common-p-shared-79896/reg-p-common-docker-public/agent
agent.replicasNumber of agent replicas2
agent.logLevelLogging levelinfo
agent.installDependenciesInstall dependenciesfalse
agent.tlsEnabledEnable TLStrue
agent.tlsMutualEnable mutual TLSfalse
agent.keyAgent key""
agent.keyB64Base64 encoded agent key""
agent.goMemLimitGo memory limit675MiB
Conductor OpenTelemetry metrics collector
ParameterDescriptionDefault
otelMetricsCollector.enabledEnable metrics collectortrue
otelMetricsCollector.labelsAdditional labels
otelMetricsCollector.replicasNumber of replicas2
otelMetricsCollector.imageCollector imageus-central1-docker.pkg.dev/prj-common-p-shared-79896/reg-p-common-docker-public/diagrid-otel-collector
otelMetricsCollector.logLevelLogging levelinfo
otelMetricsCollector.memoryLimiterMemory limiter settingsSee values.yaml
otelMetricsCollector.tlsEnabledEnable TLStrue
otelMetricsCollector.remoteWriteURLMetrics endpointhttps://metrics.diagrid.io/api/v1/push
otelMetricsCollector.remoteWriteTlsInsecureAllow insecure TLStrue
otelMetricsCollector.remoteWriteAuthEnabledEnable authtrue
Conductor OpenTelemetry logs collector
ParameterDescriptionDefault
otelLogsCollector.enabledEnable logs collectortrue
otelLogsCollector.labelsAdditional labels
otelLogsCollector.imageCollector imageus-central1-docker.pkg.dev/prj-common-p-shared-79896/reg-p-common-docker-public/diagrid-otel-collector
otelLogsCollector.logLevelLogging levelinfo
otelLogsCollector.daprLogsURLDapr logs endpointcloudgrid.diagrid.io:443
otelLogsCollector.memoryLimiterMemory limiter settingsSee values.yaml
otelLogsCollector.tlsEnabledEnable TLStrue
otelLogsCollector.tlsInsecureAllow insecure TLSfalse
otelLogsCollector.isLogsLimitedEnable log limitingtrue
Certificate management rotation
ParameterDescriptionDefault
certificateRotation.enabledEnable automatic mTLS certificate rotationfalse
certificateRotation.validForDaysCertificate validity period in days365
certificateRotation.renewHoursBeforeExpiryRenew this many hours before expiry72
certificateRotation.preferredRenewalTimePreferred renewal schedule (object)-
certificateRotation.preferredRenewalTime.dayOfWeekPreferred day of week (0-6, Sunday=0)-
certificateRotation.preferredRenewalTime.hourPreferred hour (0-23)-
certificateRotation.preferredRenewalTime.minutePreferred minute (0-59)-

To enable and configure certificate rotation, set the Helm values under the certificateRotation section. Start by setting certificateRotation.enabled to true, then adjust parameters like validForDays and renewHoursBeforeExpiry as needed. You can also optionally specify a preferredRenewalTime to control when rotations occur. These values determine how and when the system automatically renews and rotates mTLS certificates.

Dapr Helm values reference

All Dapr Helm values are from the Dapr open-source Helm chart. Use the Dapr Helm README Configuration to modify any properties required in your Dapr installation. Default Helm arguments profiles are provided, for example the following for Dev environments.

warning

Dapr is installed as a separate Helm chart, removing the management from Conductor and effectively putting the Conductor console into "read-only-mode".

Default Helm arguments profile (Dev)
global:
registry: docker.io/daprio
ha:
enabled: false
mtls:
enabled: true
dapr_rbac: {}
dapr_operator:
watchInterval: 3m
resources:
requests:
memory: 100Mi
cpu: 100m
limits:
memory: 500Mi
cpu: "1"
dapr_sidecar_injector:
resources:
requests:
memory: 30Mi
cpu: 100m
limits:
memory: 500Mi
cpu: "1"
dapr_sentry:
resources:
requests:
memory: 30Mi
cpu: 100m
limits:
memory: 500Mi
cpu: "1"
dapr_placement:
cluster:
forceInMemoryLog: true
resources:
requests:
memory: 75Mi
cpu: 250m
limits:
memory: 500Mi
cpu: "1"
dapr_scheduler:
resources:
requests:
memory: 150Mi
cpu: 250m
limits:
memory: 1024Mi
cpu: "1"

Default resource settings

The following are the default values for the Conductor agent and Dapr control plane resource settings. These are considered a good starting place for Dev/Prod environments respectively, but should be monitored and then updated to ensure appropriate values are set.

Dapr control plane: Dev
dapr:
dapr_operator:
resources:
requests:
memory: 100Mi
cpu: 100m
limits:
memory: 500Mi
cpu: "1"
dapr_sidecar_injector:
resources:
requests:
memory: 30Mi
cpu: 100m
limits:
memory: 500Mi
cpu: "1"
dapr_sentry:
resources:
requests:
memory: 30Mi
cpu: 100m
limits:
memory: 500Mi
cpu: "1"
dapr_placement:
resources:
requests:
memory: 75Mi
cpu: 250m
limits:
memory: 500Mi
cpu: "1"
dapr_scheduler:
resources:
requests:
memory: 150Mi
cpu: 250m
limits:
memory: 1024Mi
cpu: "1"
Dapr control plane: Prod
dapr_operator:
resources:
requests:
memory: 100Mi
cpu: 100m
limits:
memory: 1024Mi
cpu: "1"
dapr_sidecar_injector:
resources:
requests:
memory: 60Mi
cpu: 100m
limits:
memory: 200Mi
cpu: "1"
dapr_sentry:
resources:
requests:
memory: 60Mi
cpu: 100m
limits:
memory: 1024Mi
cpu: "1"
dapr_placement:
resources:
requests:
memory: 75Mi
cpu: 250m
limits:
memory: 1024Mi
cpu: "1"
dapr_scheduler:
resources:
requests:
memory: 250Mi
cpu: 250m
limits:
memory: 1024Mi
cpu: "1"
Conductor agent
resources:
limits:
memory: 750Mi
requests:
cpu: 10m
memory: 250Mi
Conductor OpenTelemetry metrics collector
resources:
limits:
memory: 2Gi
requests:
cpu: 100m
memory: 250Mi
Conductor OpenTelemetry logs collector
resources:
limits:
memory: 750Mi
requests:
cpu: 10m
memory: 250Mi