You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`webhookTemplateConfigMapName` | Pass Webhook template file as configmap | None
66
68
`webhookTemplateConfigMapKey` | Name of the template file stored in the configmap| None
67
-
`enableScheduledEventDraining` | [EXPERIMENTAL] If true, drain nodes before the maintenance window starts for an EC2 instance scheduled event | `false`
68
-
`enableSpotInterruptionDraining` | If true, drain nodes when the spot interruption termination notice is received | `true`
69
-
`enableSqsTerminationDraining` | If true, drain nodes when an SQS termination event is received | `false`
70
-
`queueURL` | Listens for messages on the specified SQS queue URL | None
71
-
`awsRegion` | If specified, use the AWS region for AWS API calls, else NTH will try to find the region through AWS_REGION env var, IMDS, or the specified queue URL | ``
72
69
`metadataTries` | The number of times to try requesting metadata. If you would like 2 retries, set metadata-tries to 3. | `3`
73
70
`cordonOnly` | If true, nodes will be cordoned but not drained when an interruption event occurs. | `false`
74
71
`taintNode` | If true, nodes will be tainted when an interruption event occurs. Currently used taint keys are `aws-node-termination-handler/scheduled-maintenance`, `aws-node-termination-handler/spot-itn`, and `aws-node-termination-handler/asg-lifecycle-termination` | `false`
75
72
`jsonLogging` | If true, use JSON-formatted logs instead of human readable logs. | `false`
73
+
`enablePrometheusServer` | If true, start an http server exposing `/metrics` endpoint for prometheus. | `false`
74
+
`prometheusServerPort` | Replaces the default HTTP port for exposing prometheus metrics. | `9092`
75
+
`podMonitor.create` | if `true`, create a PodMonitor | `false`
`procUptimeFile` | (Used for Testing) Specify the uptime file | `/proc/uptime`
82
-
`awsEndpoint` | (Used for testing) If specified, use the AWS endpoint to make API calls | None
83
-
`awsSecretAccessKey` | (Used for testing) Pass-thru env var | None
84
-
`awsAccessKeyID` | (Used for testing) Pass-thru env var | None
85
-
`dryRun` | If true, only log if a node would be drained | `false`
85
+
`enableSqsTerminationDraining` | If true, this turns on queue-processor mode which drains nodes when an SQS termination event is received| `false`
86
+
`queueURL` | Listens for messages on the specified SQS queue URL | None
87
+
`awsRegion` | If specified, use the AWS region for AWS API calls, else NTH will try to find the region through AWS_REGION env var, IMDS, or the specified queue URL | ``
`enableScheduledEventDraining` | [EXPERIMENTAL] If true, drain nodes before the maintenance window starts for an EC2 instance scheduled event | `false`
94
+
`enableSpotInterruptionDraining` | If true, drain nodes when the spot interruption termination notice is received | `true`
95
+
`useHostNetwork` | If `true`, enables `hostNetwork` for the Linux DaemonSet. NOTE: setting this to `false` may cause issues accessing IMDSv2 if your account is not configured with an IP hop count of 2 | `true`
`targetNodeOs` | Space separated list of node OS's to target, e.g. "linux", "windows", "linux windows". Note: Windows support is experimental. | `"linux"`
121
-
`enablePrometheusServer` | If true, start an http server exposing `/metrics` endpoint for prometheus. | `false`
122
-
`prometheusServerPort` | Replaces the default HTTP port for exposing prometheus metrics. | `9092`
123
-
`podMonitor.create` | if `true`, create a PodMonitor | `false`
`updateStrategy` | Update strategy for the all DaemonSets (Linux and Windows) | `type=RollingUpdate,rollingUpdate.maxUnavailable=1`
128
132
`linuxUpdateStrategy` | Update strategy for the Linux DaemonSet | `type=RollingUpdate,rollingUpdate.maxUnavailable=1`
129
133
`windowsUpdateStrategy` | Update strategy for the Windows DaemonSet | `type=RollingUpdate,rollingUpdate.maxUnavailable=1`
130
134
135
+
### Testing Configuration (NOT RECOMMENDED FOR PROD DEPLOYMENTS)
136
+
137
+
Parameter | Description | Default
138
+
--- | --- | ---
139
+
`procUptimeFile` | (Used for Testing) Specify the uptime file | `/proc/uptime`
140
+
`awsEndpoint` | (Used for testing) If specified, use the AWS endpoint to make API calls | None
141
+
`awsSecretAccessKey` | (Used for testing) Pass-thru env var | None
142
+
`awsAccessKeyID` | (Used for testing) Pass-thru env var | None
143
+
`dryRun` | If true, only log if a node would be drained | `false`
144
+
131
145
## Metrics endpoint consideration
132
-
If prometheus server is enabled and since NTH is a daemonset with`host_networking=true`, nothing else will be able to bind to `:9092` (or the port configured) in the root network namespace
133
-
since it's listening on all interfaces.
134
-
Therefore, it will need to have a firewall/security group configured on the nodes to block access to the `/metrics` endpoint.
146
+
NTH in IMDS mode runs as a DaemonSet w/`host_networking=true` by default. If the prometheus server is enabled, nothing else will be able to bind to the configured port (by default `:9092`) in the root network namespace. Therefore, it will need to have a firewall/security group configured on the nodes to block access to the `/metrics` endpoint.
147
+
148
+
You can switch NTH in IMDS mode to run w/ `host_networking=false`, but you will need to make sure that IMDSv1 is enabled or IMDSv2 IP hop count will need to be incremented to 2. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html
0 commit comments