Configuration

All configuration options

Configuration File

Vigil reads configuration from a YAML file (default: /etc/vigil/config/config.yaml).

# The taint key to watch for and remove
taintKey: "node.example.com/initializing"

# The taint effect to match
taintEffect: "NoSchedule"

# All known temporary startup taint keys in the cluster.
# Used for DaemonSet discovery only — Vigil does not remove these taints.
# Their respective controllers (CSI drivers, CNI plugins) handle removal.
knownStartupTaintKeys:
  - "node.example.com/initializing"
  - "cni.istio.io/not-ready"
  - "ebs.csi.aws.com/agent-not-ready"
  - "efs.csi.aws.com/agent-not-ready"

# Maximum time to wait before removing taint anyway (seconds)
timeoutSeconds: 120

# DaemonSets to exclude from readiness checks
excludeDaemonSets:
  byName:
    - namespace: kube-system
      name: slow-daemonset

CLI Flags

FlagDefaultDescription
--config/etc/vigil/config/config.yamlConfig file path
--metrics-bind-address:8080Metrics endpoint
--health-probe-bind-address:8081Health/readiness probes
--leader-electfalseEnable leader election
--zap-log-level(default)Log verbosity

Configuration Fields

FieldTypeDefaultDescription
taintKeystringnode.nextdoor.com/initializingThe taint key to watch and remove
taintEffectstringNoScheduleThe taint effect to match
knownStartupTaintKeys[]string[taintKey]All temporary startup taint keys in the cluster (used for discovery only — Vigil does not remove these)
timeoutSecondsint120Max wait time before forced taint removal
excludeDaemonSets.byName[]object[]DaemonSets to exclude by namespace/name