Skip to main content

Configuration

Overview

The OpsWorker Kubernetes Agent is configured through Helm values during installation or upgrade. The chart is published to a public OCI registry: oci://public.ecr.aws/k1v3l8a8/opsworker-agent.

Options

Required

ValueDescription
clusterTokenThe cluster's immutable identifier. Auto-filled by the portal Add Cluster wizard.
apiKeyAPI key used to authenticate the agent. Auto-filled by the portal Add Cluster wizard.

Both values are required. The portal generates and fills them in for you; you do not type them manually.

Image

ValueDefaultDescription
image.repositorypublic.ecr.aws/k1v3l8a8/opsworker-agentContainer image repository
image.tag0.9.3Agent image tag
image.pullPolicyIfNotPresentImage pull policy

Resources

ValueDefaultDescription
resources.requests.cpu100mCPU request
resources.requests.memory256MiMemory request
resources.limits.cpu200mCPU limit
resources.limits.memory512MiMemory limit

Deployment

ValueDefaultDescription
replicaCount1Number of agent replicas
serviceAccount.createtrueWhether to create the opsworker-agent ServiceAccount
serviceAccount.nameopsworker-agentServiceAccount name

RBAC

ValueDefaultDescription
rbac.createtrueCreate the ClusterRoleBinding
rbac.clusterRoleviewBuilt-in ClusterRole the agent binds to (read-only)

See RBAC for details on the binding model and how to scope access to specific namespaces.

Scheduling

ValueDefaultDescription
nodeSelector{}Node selector for pod scheduling
tolerations[]Tolerations for tainted nodes
affinity{}Affinity rules for pod placement

Environment Variables (including Proxy)

The chart has no proxy.* values. Set proxy and other environment variables through the env list. Use the standard HTTP_PROXY, HTTPS_PROXY, and NO_PROXY variables for proxied environments.

env:
- name: HTTPS_PROXY
value: "http://proxy.internal:3128"
- name: NO_PROXY
value: "10.0.0.0/8,172.16.0.0/12"

There is no logLevel value; the log level is fixed. The namespace is set with --namespace, not a chart value.

Bundled Subcharts

A default install enables two subcharts, each running as its own pod:

ValueDefaultDescription
kubernetes-mcp-server.enabledtrueRead-only Kubernetes MCP server (read_only: true)
grafana-mcp.enabledfalse/true per chartGrafana MCP server for observability queries
grafana-mcp.grafana.url-Your Grafana instance URL (e.g., https://grafana.example.com)
grafana-mcp.grafana.apiKey-Grafana service account token (Viewer role)

Grafana MCP is a separate integration from Grafana Alerting (webhook). See Grafana MCP Setup.

Example values.yaml

clusterToken: "auto-filled-by-portal"
apiKey: "auto-filled-by-portal"

image:
repository: public.ecr.aws/k1v3l8a8/opsworker-agent
tag: "0.9.3"

resources:
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: 200m
memory: 512Mi

rbac:
create: true
clusterRole: view

nodeSelector:
kubernetes.io/os: linux

tolerations:
- key: "dedicated"
operator: "Equal"
value: "monitoring"
effect: "NoSchedule"

env:
- name: HTTPS_PROXY
value: "http://proxy.internal:3128"
- name: NO_PROXY
value: "10.0.0.0/8,172.16.0.0/12"

# Optional: enable Grafana MCP for observability queries
grafana-mcp:
enabled: true
grafana:
url: "https://grafana.example.com"
apiKey: "glsa_xxxxxxxxxxxx"

Applying Configuration Changes

Update configuration with helm upgrade:

helm upgrade opsworker-agent oci://public.ecr.aws/k1v3l8a8/opsworker-agent \
--version=v0.9.3 \
-n opsworker-agent \
-f values.yaml

Or override individual values:

helm upgrade opsworker-agent oci://public.ecr.aws/k1v3l8a8/opsworker-agent \
--version=v0.9.3 \
-n opsworker-agent \
--reuse-values \
--set resources.limits.memory=512Mi

Next Steps

  • RBAC - Understand the access model
  • Scope - Understand the read-only model