Deploy to an AWS Auto Mode Cluster

Serverless clusters often require custom configuration for the observe agent to work. In the case of AWS Auto Mode, there are certain constraints:

Auto Mode uses a Karpenter-based solution, which takes care of provisioning EC2 instances as necessary. Our usual helm chart includes daemonsets. However, adding daemonsets will not trigger resizing or adding new nodes (as this could lead to adding nodes in an runaway fashion).

We adjust the priority of the daemonset pods to ensure they are scheduled. See here for more details.

Prerequisites

  1. Create your AWS EKS Auto Mode Cluster

Process

  1. Create a Priority Class for Observe’s node-logs-metrics daemonset’s pods.
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
  name: observe-agent-priority
globalDefault: false
value: 10000
preemptionPolicy: "PreemptLowerPriority"
  1. give that priority class to the node-logs-metrics daemonset
# add to your values.yaml

node-logs-metrics:
  priorityClassName: "observe-agent-priority"
  1. We also need to use the node’s IP by default:
node:
  # Use node IP instead of node name for kubeletstats (required for EKS auto-mode where node names are instance IDs)
  kubeletstats:
    useNodeIp: true

Now, deploy with the modified values.yaml.