The Atatus Kubernetes Agent automatically discovers all namespaces and workloads upon installation. This guide outlines the various configuration options available to help you manage data collection, filter logs, and control pod scheduling across your cluster.

All configurations must be added to your atatus_values.yml file.

Configuration Options

Use the parameters below to customize the agent's behavior:

Option Description
license_key Your Atatus Infrastructure license key.
logs_enabled Set to true to enable log monitoring.
cluster_name A descriptive name to identify your Kubernetes cluster in the Atatus dashboard.
log_level The internal logging level for the Atatus agent (info, debug, warning, error).
container_include Allowlist of specific namespaces to monitor.
container_exclude Denylist of namespaces to exclude from monitoring.
container_include_log_lines Include specific log lines that match the provided regular expressions.
container_exclude_log_lines Exclude specific log lines that match the provided regular expressions.
daemonset Configures parameters for the agent's DaemonSet deployment.
tolerations Kubernetes tolerations allowing pods to be scheduled on nodes with matching taints.

General Configuration Example

Here is a comprehensive example demonstrating how to construct your atatus_values.yaml file:

copy
icon/buttons/copy
# atatus_values.yaml
atatus:
  license_key: "lic_infra_*************"
  logs_enabled: true
  cluster_name: "my-production-cluster"
  log_level: "info"

  # Namespace filtering
  container_include: kube:preprod kube:staging
  container_exclude: kube:prod

  # Log filtering
  container_include_log_lines:
    - '(?i)error'
  container_exclude_log_lines:
    - '(?i)healthcheck'

daemonset:
  enabled: true
  tolerations:
    - operator: "Exists"

Include & Exclude Options:

Atatus supports configuring log and metric inclusion/exclusion based on Kubernetes namespaces. You must specify the namespaces in your YAML file using the kube: prefix.

  • To monitor namespaces named preprod and staging:

copy
icon/buttons/copy

  container_include: kube:preprod kube:staging
  • To exclude the namespace named prod:

copy
icon/buttons/copy

  container_exclude: kube:prod

2. Log Line Filtering

You can reduce log volume by filtering container logs at the agent level. Use regular expressions to include or exclude specific log patterns.

  • To include log lines that match the regular expression (?i)error:

copy
icon/buttons/copy

  container_include_log_lines:
    - '(?i)error'
  • To exclude log lines that match the regular expression (?i)healthcheck:

copy
icon/buttons/copy

  container_exclude_log_lines:
    - '(?i)healthcheck'

3. Scheduling the Agent on Tainted Nodes

Kubernetes uses taints to restrict which pods can run on specific nodes (e.g., GPU or system nodes). To allow the Atatus Infrastructure Agent to run on tainted nodes, configure tolerations under the daemonset section in your atatus_values.yaml file.

To run the agent on every active node across your cluster, configure a wildcard toleration using the Exists operator:

copy
icon/buttons/copy
daemonset:
  enabled: true
  tolerations:
    - operator: "Exists"

Target Specific Node Pools

If you prefer to explicitly target specialized node pools instead of bypassing all taints, define selective tolerations.

copy
icon/buttons/copy
daemonset:
  enabled: true
  tolerations:
    # System node pools
    - key: "CriticalAddonsOnly"
      operator: "Exists"

    # GPU nodes
    - key: "sku"
      operator: "Equal"
      value: "gpu"
      effect: "NoSchedule"

    # Spot or preemptible nodes
    - key: "node.kubernetes.io/instance-type"
      operator: "Equal"
      value: "spot"
      effect: "NoSchedule"

    # Windows nodes (if applicable)
    - key: "node.kubernetes.io/os"
      operator: "Equal"
      value: "windows"
      effect: "NoSchedule"