Commit Graph

120 Commits

Author SHA1 Message Date
Robert Kozak
b7413b3e37 feat: Allow override of timeouts in node_groups (#1552) 2021-09-03 17:07:59 +02:00
Junaid Ali
bcea0708e6 feat: Added throughput support for root and EBS disks (#1445) 2021-09-02 12:28:13 +02:00
Olesia Ivanenko
19ce95d7b6 chore: Update client_id_list argument for OIDC provider (#1561) 2021-09-02 11:39:39 +02:00
Olesia Ivanenko
8e1d5c11b7 feat: Tags passed into worker_groups_launch_template extend var.tags for the volumes (#1397) 2021-08-31 15:11:43 +02:00
Scott Cabrinha
6fb02c4fc4 feat: Allow users to add more Audiences to OpenID Connect (#1451) 2021-08-31 12:27:04 +02:00
Mikhail Naletov
cd01601805 chore: "Desirec" misspelling fix (#1450) 2021-08-25 18:13:07 +02:00
LAKostis
1e2c32430f feat: Add capacity_rebalance support for self-managed worker groups (#1326) 2021-06-03 23:41:39 +02:00
Thierno IB. BARRY
f993c3622a fix: Fix AMI filtering when the default platform is provided in var.workers_group_defaults (#1413) 2021-05-28 22:12:29 +02:00
Thierno IB. BARRY
73c5107724 fix: Default root_volume_type must be gp2 (#1404) 2021-05-28 15:31:41 +02:00
Thierno IB. BARRY
fcc2fdc993 feat: Define Root device name for Windows self-managed worker groups (#1401)
NOTES: Since we now search only for Linux or Windows AMI if there is a worker groups for the corresponding plateform, we can now define different default root block device name for each plateform. Use locals `root_block_device_name` and `root_block_device_name_windows` to define your owns.
2021-05-28 10:35:51 +02:00
Jason Witkowski
6aac9c4961 feat: Add instance store volume option for instances with local disk (#1213) 2021-05-27 21:46:38 +02:00
Thierno IB. BARRY
06e9078bf4 feat: Search for Windows or Linux AMIs only if they are needed (#1371) 2021-05-19 16:47:40 +02:00
Benjamin Ash
a2761ad685 fix: set an ASG's launch template version to an explicit version to automatically trigger instance refresh (#1370)
NOTES: Set an ASG's launch template version to an explicit version automatically. This will ensure that an instance refresh will be triggered whenever the launch template changes. The default `launch_template_version` is now used to determine the latest or default version of the created launch template for self-managed worker groups.

Signed-off-by: Benjamin Ash <bash@intelerad.com>
Co-authored-by: Thierno IB. BARRY <ibrahima.br@gmail.com>
2021-05-19 16:34:59 +02:00
Benjamin Ash
68e9df92c3 feat: Add support for Auto Scaling Group Instance Refresh for self-managed worker groups (#1224)
Co-authored-by: Thierno IB. BARRY <ibrahima.br@gmail.com>
2021-05-17 22:12:53 +02:00
Thierno IB. BARRY
32f70afe60 feat: Drop asg_recreate_on_change feature to encourage the usage of Instance Refresh for EC2 Auto Scaling (#1360)
BREAKING CHANGES: This module used `random_pet` resources to create a random name for the autoscaling group to force the autoscaling group to be re-created when the launch configuration or launch template was changed (if `recreate_asg_when_lc_changes = true` was set), causing the instances to be removed and re-provisioned each time there was an update. Those random_pet resources has been removed and in its place there is now a set of functionality provided by AWS and the Terraform AWS provider - Instance Refresh. We encourage those users to move on Instance Refresh for EC2 Auto Scaling.
2021-05-17 16:20:35 +02:00
Dov Salomon
f7d09a2901 feat: Remove dependency on deprecated hashicorp/template provider (#1297)
BREAKING CHANGES: We remove the dependency on the deprecated `hashicorp/template` provider and use the Terraform built in `templatefile` function. This will broke some workflows due to previously being able to pass in the raw contents of a template file for processing. The `templatefile` function requires a template file that exists before running a plan.
2021-05-17 10:25:38 +02:00
Sergiu Plotnicu
2549408803 feat: Add support for ASG Warm Pools (#1310) 2021-04-19 23:05:06 +02:00
Thierno IB. BARRY
abdcfb7261 fix: Change back the default disk type to gp2 (#1208) 2021-04-19 22:54:01 +02:00
Rucha Kulkarni
26d40d2f1d feat: Add support for specifying elastic inference accelerator (#1176) 2021-04-19 22:46:17 +02:00
Tjeu Kayim
2a6f07a0e8 fix: Updated code and version requirements to work with Terraform 0.15 (#1165) 2021-04-16 09:56:37 +02:00
Sean P. Kane
4fc609bd22 feat: Add nitro enclave support for EKS (#1185) 2021-01-28 23:45:41 +01:00
Jay
76537d1b8d feat: Use gp3 as default as it saves 20% and is more performant (#1134)
BREAKING CHANGES: The default root volume type is now `gp3` as it saves 20% and is more performant
2021-01-28 22:52:10 +01:00
Siddarth Prakash
7d6e672303 feat: Add support for throughput parameter for gp3 volumes (#1146) 2020-12-22 16:26:47 +01:00
svaranasi-traderev
ccacc17792 feat: Add customizable Auto Scaling Group health check type (#1118) 2020-12-22 11:55:43 +01:00
Thierno IB. BARRY
571da60aea fix: Change the default launch_template_id to null for Managed Node Groups (#1088) 2020-11-07 22:29:24 +01:00
huddy
bba7c151c8 feat: Tags passed into worker groups override tags from var.tags for Autoscaling Groups (#1092)
NOTES: Tags that are passed into `var.worker_groups_launch_template` or `var.worker_groups` now override tags passed in via `var.tags` for Autoscaling Groups only. This allow ASG Tags to be overwritten, so that `propagate_at_launch` can be tweaked for a particular key.
2020-11-07 22:20:22 +01:00
philicious
127a3a8831 feat: Add Launch Template support for Managed Node Groups (#997)
NOTES: Managed Node Groups now support Launch Templates. The Launch Template it self is not managed by this module, so you have to create it by your self and pass it's id to this module. See docs and [`examples/launch_templates_with_managed_node_groups/`](https://github.com/terraform-aws-modules/terraform-aws-eks/tree/master/examples/launch_templates_with_managed_node_group) for more details.
2020-11-02 08:19:10 +01:00
Thierno IB. BARRY
d97edde9cd fix: Use splat syntax to avoid errors during destroy with an empty state (#1041) 2020-10-12 21:59:29 +02:00
hacker65536
8c8f4b56eb feat: Add load_balancers parameter to associate a CLB (Classic Load Balancer) to worker groups ASG (#992) 2020-10-05 15:07:57 +02:00
Lorenzo Aiello
f0ae6c6751 feat: Dynamic Partition for IRSA to support AWS-CN Deployments (#1028) 2020-10-04 20:49:41 +02:00
Giuseppe Crinò
1c81227044 docs: Describe key_name is about AWS EC2 key pairs (#970) 2020-08-14 15:27:46 +02:00
Daniel Quackenbush
23ad497557 feat: IMDSv2 metadata configuration in Launch Templates (#938)
NOTES: Addition of the IMDSv2 metadata configuration block to Launch Templates will cause a diff to be generated for existing Launch Templates on first Terraform apply. The defaults match existing behaviour.
2020-07-12 18:25:48 +02:00
Michael Potter
b0ebef69b3 fix: Strip user Name tag from asg_tags #946) 2020-07-12 17:40:27 +02:00
Daniel Piddock
7de18cd9cd fix: Revert removal of templates provider (#883)
Broke use case of passing in custom template content. Reverts most of the following PRs:
- #865
- #863 
- #854
2020-06-05 10:34:23 +02:00
Simon Gurcke
3fefc2a66c feat: Allow communication between pods on workers and pods using the primary cluster security group (optional) (#892)
NOTES: New variable `worker_create_cluster_primary_security_group_rules` to allow communication between pods on workers and pods using the primary cluster security group (Managed Node Groups or Fargate). It defaults to `false` to avoid potential conflicts with existing security group rules users may have implemented.
2020-05-30 22:43:26 +02:00
Daniel Piddock
bb822a1e56 fix: Fix Launch Templates error with aws 2.61.0 (#875) 2020-05-09 19:58:38 +02:00
Thierno IB. BARRY
9bfdba9fb8 chore: Move all locals in locals.tf (#865) 2020-05-06 14:00:20 +02:00
Albert Lloveras
4cc5753284 improvement: Use aws_partition to build IAM policy ARNs (#820)
* Use aws_partition to build IAM policy ARNs

* Update broken link to CONTRIBUTING.md in README.md
2020-03-30 16:09:41 +02:00
Jaime Hidalgo García
de00694a63 feat: Add support for additional volumes in launch templates and launch configurations (#800)
Co-authored-by: Jaime Hidalgo <jhidalgo@cccis.com>
Co-authored-by: Thierno IB. BARRY <ibrahima.br@gmail.com>
2020-03-24 23:28:59 +01:00
Christian Kemper
2a8e45fe2c defaults lookup before falling back on default ami based on platform (#756)
* defaulting to data lookup if worker_group_defaults have no ami_id entry

* using coalesce instead of lookup and also using local instead of var.

* adding defaults support for specifying windows based amis
2020-03-12 00:34:21 +01:00
Arie Lev
f465e55721 Add ASG cooldown and health_check_grace_period (#770)
* Add default_cooldown/health_check oprions

* Update CHANGELOG.md

* Update CHANGELOG.md

Co-Authored-By: Thierno IB. BARRY <ibrahima.br@gmail.com>

Co-authored-by: Thierno IB. BARRY <ibrahima.br@gmail.com>
2020-03-10 11:20:11 +01:00
Siddarth Prakash
198294c0b6 Add support for ASG max instance lifetime (#769)
Co-authored-by: Thierno IB. BARRY <ibrahima.br@gmail.com>
2020-03-09 23:31:52 +01:00
Craig Rueda
6784824595 'root_encrypted' -> bool (#766) 2020-03-09 23:25:05 +01:00
Yecheng Fu
8382f2c4e8 use the correct policy arns if the region is in CN (#765) 2020-03-09 16:02:53 +01:00
Ryan Ooi
f2cc9f5039 Revert #631. Add back manage security group flag (#722)
* Revert #631

* fix README lint

* fix README lint for bool
2020-02-27 11:23:41 +01:00
Max Williams
626a393ab9 Remove of autoscaling IAM policy related stuff (#716)
* Disable management of autoscaling IAM policy by default

* remove completely

* update changelog notes

* fix pre-commit stuff

* misc updates

* fmt

* fix changelog

* Removal of tags and update docs

* Change after updating terraform-docs

* Add second tag
2020-02-04 19:34:17 +01:00
Daniel Piddock
11147e9af3 Node groups submodule (#650)
* WIP Move node_groups to a submodule

* Split the old node_groups file up

* Start moving locals

* Simplify IAM creation logic

* depends_on from the TF docs

* Wire in the variables

* Call module from parent

* Allow to customize the role name. As per workers

* aws_auth ConfigMap for node_groups

* Get the managed_node_groups example to plan

* Get the basic example to plan too

* create_eks = false works

"The true and false result expressions must have consistent types. The
given expressions are object and object, respectively."
Well, that's useful. But apparently set(string) and set() are ok. So
everything else is more complicated. Thanks.

* Update Changelog

* Update README

* Wire in node_groups_defaults

* Remove node_groups from workers_defaults_defaults

* Synchronize random and node_group defaults

* Error: "name_prefix" cannot be longer than 32

* Update READMEs again

* Fix double destroy

Was producing index errors when running destroy on an empty state.

* Remove duplicate iam_role in node_group

I think this logic works. Needs some testing with an externally created
role.

* Fix index fail if node group manually deleted

* Keep aws_auth template in top module

Downside: count causes issues as usual: can't use distinct() in the
child module so there's a template render for every node_group even if
only one role is really in use. Hopefully just output noise instead of
technical issue

* Hack to have node_groups depend on aws_auth etc

The AWS Node Groups create or edit the aws-auth ConfigMap so that nodes
can join the cluster. This breaks the kubernetes resource which cannot
do a force create. Remove the race condition with explicit depend.

Can't pull the IAM role out of the node_group any more.

* Pull variables via the random_pet to cut logic

No point having the same logic in two different places

* Pass all ForceNew variables through the pet

* Do a deep merge of NG labels and tags

* Update README.. again

* Additional managed node outputs #644

Add change from @TBeijin from PR #644

* Remove unused local

* Use more for_each

* Remove the change when create_eks = false

* Make documentation less confusing

* node_group version user configurable

* Pass through raw output from aws_eks_node_groups

* Merge workers defaults in the locals

This simplifies the random_pet and aws_eks_node_group logic. Which was
causing much consernation on the PR.

* Fix typo

Co-authored-by: Max Williams <max.williams@deliveryhero.com>
2020-01-09 12:53:08 +01:00
Ryan Ooi
b7ffc1b591 Control plane security group always whitelist worker security group and revert #186 (#631)
* Updates and revert #186

* update readme

* update changelog

* update changelog
2019-12-20 16:45:01 +01:00
William Morgan
cf3dcc5c58 Support for EKS Managed Node Groups (#602)
* Finished first cut of managed node groups

* Updated formatting and extra fields.

* Updating Changelog and README

* Fixing formatting

* Fixing docs.

* Updating required Version

* Updating changelog

* Adding example for managed node groups

* Managed IAM Roles for Nodegroups now have correct policies. Tags can now be added to node groups.

* Fixing bug where people could set source_security_group_ids without setting ssh key causing a race condition within the aws provider.

* Adding lifecycle create_before_destroy

* Adding random pet names for create_before_destroy

* Updating per comments.

* Updating required versions of terraform

* Updating per comments.

* Updating vars

* Updating minimum version for terraform

* Change worker_groups_managed_node_groups to node_groups

* Using for_each on the random_pet

* Adding changes recommended by @eytanhanig

* Update node_groups.tf
2019-12-04 18:30:36 +01:00
Miguel Ferreira
a8e54ccf73 Use join and splat syntax to access conditional resources (#569) 2019-10-29 13:55:21 +01:00