Skip to content

Commit f90f15e

Browse files
gillcalebstavvy-cgillbryantbiggs
authored
docs: Include ref to addon naming and config documentation (#3043)
* docs: include ref to addon naming and config * docs: including addon configuration details in the faq * docs: including addon configuration details in the faq doc * docs: including addon configuration details in the faq * chore: Updates --------- Co-authored-by: Caleb Gill <[email protected]> Co-authored-by: Bryant Biggs <[email protected]>
1 parent 29c19cc commit f90f15e

File tree

1 file changed

+214
-2
lines changed

1 file changed

+214
-2
lines changed

docs/faq.md

Lines changed: 214 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@
44
- [I received an error: `expect exactly one securityGroup tagged with kubernetes.io/cluster/<NAME> ...`](https://github.com/terraform-aws-modules/terraform-aws-eks/blob/master/docs/faq.md#i-received-an-error-expect-exactly-one-securitygroup-tagged-with-kubernetesioclustername-)
55
- [Why are nodes not being registered?](https://github.com/terraform-aws-modules/terraform-aws-eks/blob/master/docs/faq.md#why-are-nodes-not-being-registered)
66
- [Why are there no changes when a node group's `desired_size` is modified?](https://github.com/terraform-aws-modules/terraform-aws-eks/blob/master/docs/faq.md#why-are-there-no-changes-when-a-node-groups-desired_size-is-modified)
7-
- [How can I deploy Windows based nodes?](https://github.com/terraform-aws-modules/terraform-aws-eks/blob/master/docs/faq.md#how-can-i-deploy-windows-based-nodes)
87
- [How do I access compute resource attributes?](https://github.com/terraform-aws-modules/terraform-aws-eks/blob/master/docs/faq.md#how-do-i-access-compute-resource-attributes)
8+
- [What add-ons are available?](https://github.com/terraform-aws-modules/terraform-aws-eks/blob/master/docs/faq.md#what-add-ons-are-available)
9+
- [What configuration values are available for an add-on?](https://github.com/terraform-aws-modules/terraform-aws-eks/blob/master/docs/faq.md#what-configuration-values-are-available-for-an-add-on)
910

1011
### Setting `disk_size` or `remote_access` does not make any changes
1112

@@ -65,7 +66,7 @@ Examples of accessing the attributes of the compute resource(s) created by the r
6566

6667
```hcl
6768
eks_managed_role_arns = [for group in module.eks_managed_node_group : group.iam_role_arn]
68-
````
69+
```
6970

7071
- Self Managed Node Group attributes
7172

@@ -78,3 +79,214 @@ self_managed_role_arns = [for group in module.self_managed_node_group : group.ia
7879
```hcl
7980
fargate_profile_pod_execution_role_arns = [for group in module.fargate_profile : group.fargate_profile_pod_execution_role_arn]
8081
```
82+
83+
### What add-ons are available?
84+
85+
The available EKS add-ons can be [found here](https://docs.aws.amazon.com/eks/latest/userguide/eks-add-ons.html). You can also retrieve the available addons from the API using:
86+
87+
```sh
88+
aws eks describe-addon-versions --query 'addons[*].addonName'
89+
```
90+
91+
### What configuration values are available for an add-on?
92+
93+
You can retrieve the configuration value schema for a given addon using the following command:
94+
95+
```sh
96+
aws eks describe-addon-configuration --addon-name <value> --addon-version <value> --query 'configurationSchema' --output text | jq
97+
```
98+
99+
For example:
100+
101+
```sh
102+
aws eks describe-addon-configuration --addon-name coredns --addon-version v1.11.1-eksbuild.8 --query 'configurationSchema' --output text | jq
103+
```
104+
105+
Returns (at the time of writing):
106+
107+
```json
108+
{
109+
"$ref": "#/definitions/Coredns",
110+
"$schema": "http://json-schema.org/draft-06/schema#",
111+
"definitions": {
112+
"Coredns": {
113+
"additionalProperties": false,
114+
"properties": {
115+
"affinity": {
116+
"default": {
117+
"affinity": {
118+
"nodeAffinity": {
119+
"requiredDuringSchedulingIgnoredDuringExecution": {
120+
"nodeSelectorTerms": [
121+
{
122+
"matchExpressions": [
123+
{
124+
"key": "kubernetes.io/os",
125+
"operator": "In",
126+
"values": [
127+
"linux"
128+
]
129+
},
130+
{
131+
"key": "kubernetes.io/arch",
132+
"operator": "In",
133+
"values": [
134+
"amd64",
135+
"arm64"
136+
]
137+
}
138+
]
139+
}
140+
]
141+
}
142+
},
143+
"podAntiAffinity": {
144+
"preferredDuringSchedulingIgnoredDuringExecution": [
145+
{
146+
"podAffinityTerm": {
147+
"labelSelector": {
148+
"matchExpressions": [
149+
{
150+
"key": "k8s-app",
151+
"operator": "In",
152+
"values": [
153+
"kube-dns"
154+
]
155+
}
156+
]
157+
},
158+
"topologyKey": "kubernetes.io/hostname"
159+
},
160+
"weight": 100
161+
}
162+
]
163+
}
164+
}
165+
},
166+
"description": "Affinity of the coredns pods",
167+
"type": [
168+
"object",
169+
"null"
170+
]
171+
},
172+
"computeType": {
173+
"type": "string"
174+
},
175+
"corefile": {
176+
"description": "Entire corefile contents to use with installation",
177+
"type": "string"
178+
},
179+
"nodeSelector": {
180+
"additionalProperties": {
181+
"type": "string"
182+
},
183+
"type": "object"
184+
},
185+
"podAnnotations": {
186+
"properties": {},
187+
"title": "The podAnnotations Schema",
188+
"type": "object"
189+
},
190+
"podDisruptionBudget": {
191+
"description": "podDisruptionBudget configurations",
192+
"enabled": {
193+
"default": true,
194+
"description": "the option to enable managed PDB",
195+
"type": "boolean"
196+
},
197+
"maxUnavailable": {
198+
"anyOf": [
199+
{
200+
"pattern": ".*%$",
201+
"type": "string"
202+
},
203+
{
204+
"type": "integer"
205+
}
206+
],
207+
"default": 1,
208+
"description": "minAvailable value for managed PDB, can be either string or integer; if it's string, should end with %"
209+
},
210+
"minAvailable": {
211+
"anyOf": [
212+
{
213+
"pattern": ".*%$",
214+
"type": "string"
215+
},
216+
{
217+
"type": "integer"
218+
}
219+
],
220+
"description": "maxUnavailable value for managed PDB, can be either string or integer; if it's string, should end with %"
221+
},
222+
"type": "object"
223+
},
224+
"podLabels": {
225+
"properties": {},
226+
"title": "The podLabels Schema",
227+
"type": "object"
228+
},
229+
"replicaCount": {
230+
"type": "integer"
231+
},
232+
"resources": {
233+
"$ref": "#/definitions/Resources"
234+
},
235+
"tolerations": {
236+
"default": [
237+
{
238+
"key": "CriticalAddonsOnly",
239+
"operator": "Exists"
240+
},
241+
{
242+
"effect": "NoSchedule",
243+
"key": "node-role.kubernetes.io/control-plane"
244+
}
245+
],
246+
"description": "Tolerations of the coredns pod",
247+
"items": {
248+
"type": "object"
249+
},
250+
"type": "array"
251+
},
252+
"topologySpreadConstraints": {
253+
"description": "The coredns pod topology spread constraints",
254+
"type": "array"
255+
}
256+
},
257+
"title": "Coredns",
258+
"type": "object"
259+
},
260+
"Limits": {
261+
"additionalProperties": false,
262+
"properties": {
263+
"cpu": {
264+
"type": "string"
265+
},
266+
"memory": {
267+
"type": "string"
268+
}
269+
},
270+
"title": "Limits",
271+
"type": "object"
272+
},
273+
"Resources": {
274+
"additionalProperties": false,
275+
"properties": {
276+
"limits": {
277+
"$ref": "#/definitions/Limits"
278+
},
279+
"requests": {
280+
"$ref": "#/definitions/Limits"
281+
}
282+
},
283+
"title": "Resources",
284+
"type": "object"
285+
}
286+
}
287+
}
288+
```
289+
290+
> [!NOTE]
291+
> The available configuration values will vary between add-on versions,
292+
> typically more configuration values will be added in later versions as functionality is enabled by EKS.

0 commit comments

Comments
 (0)