Releases: kubernetes-sigs/cluster-api-provider-aws
v1.4.1
Release notes for Cluster API Provider AWS (CAPA) v1.4.0
Changelog since v1.4.0
What's Changed
🐛 Bug Fixes
New Contributors
The image for this release is: k8s.gcr.io/cluster-api-aws/cluster-api-aws-controller:v1.4.1
Thanks to all our contributors!
v1.4.0
Release notes for Cluster API Provider AWS (CAPA) v1.4.0
Changelog since v1.3.0
What's Changed
⚠ API Changes
- Add support for Ignition-based bootstrap data and Flatcar Container Linux by @invidian in #2271
- Add nodegroup update config support by @richardcase in #3337
🚀 Features
- Add support for custom protocol for ELB health checks by @Ankitasw in #3124
- Validate internal ELB in a peered VPC by @josh-ferrell in #3285
- Add lookup logic for bastion hosts by @Ankitasw in #3298
- Change the release process to use GitHub Release Notes by @meghanajangi in #3214
- Query AWS to find subnets with explicitely specified subnet IDs by @codablock in #2864
- Add filter lookup support to AWSMachinePool.Spec.Subnets by @shivi28 in #3255
🐛 Bug Fixes
- [EKS] Fix for subnet cloud-provider tags @10hin in #3123
- [EKS] Fix for ASG and instance cloud-provider tags by @faiq in #3343
- [EKS] Fix racing conditions in reconcileDelete by @richardchen331 in #3157
- Block ELB re-creation after the cluster has been provisioned by @Ankitasw in #3240
- Validate additionalTags by @jonathanbeber in #3177
- Fix MP template: use correct machine type env var by @mweibel in #3227
- Update ClusterSecurityGroupsReadyCondition as part of managedcontrolplane by @pydctw in #3234
- Remove .metadata.clusterName usage by @pydctw in #3322
- Fix asgNeedsUpdates invalid condition (pointers) by @mweibel in #3264
- Disassociate secondary CIDR after subnets are deleted by @Ankitasw in #3347
📖 Documentation
- Add documentation for usage of failure domains by @Ankitasw in #3173
- Add list of Prow jobs to the book by @sedefsavas in #3199
- Update version support documentation by @sedefsavas in #3230
- Add an initial page about e2e testing by @mweibel in #3269
- Add documentation for usage of spot instances by @Ankitasw in #3281
- Add documentation for usage of externally managed clusters by @Ankitasw in #3247
- Update developer guideline to write unit/integration tests in CAPA repo by @Ankitasw in #3289
- Update multi-tenacy docs by @davidblum in #3320
🌱 Others
- Add
conversion-verifier
in CI by @zeborg in #3168 - Add
verify-shellcheck
make target by @zeborg in #3178 - Add
verify-book-links
make target by @zeborg in #3194 - Add apidiff target to the Makefile by @meghanajangi in #3222
- Group Makefile targets by @Skarlso in #3192
- Add methods to create AWS resources for externally managed infrastructure tests by @josh-ferrell in #3237 #3251
- Add unit/integration tests for controllers and pkg/cloud/services by @Ankitasw @Madhur97 @shivi28
- Add flatcar-stable to supported OS list for clusterawsadm by @sedefsavas in #3158
- Add a join slack badge in CAPA repo for k8s cluster-api-aws channel by @shivi28 in #3258
- Add go report badge by @shivi28 in #3210
- Update AwsClusterTemplate printcolumn and remove unnecessary RBAC files by @pydctw in #3217
- Add OpenSSF best practices badge to README.md by @Ankitasw in #3260
- Enable EKS upgrade test by @pydctw in #3229
- Add external Sec Groups E2E test by @josh-ferrell in #3261
- Add v1.22 to v1.23 upgrade test for external CCM migration by @sedefsavas in #3267
- Makefile: don't log verbose from tests by default by @invidian in #3351
- Replace all instances of reflect.DeepEqual() with cmp.Equal() by @VibhorChinda in #3342
- Add test to check if bastion host is running when enabled by @Ankitasw in #3318
- Change assertion for DetachInternetGateway to Eventually by @josh-ferrell in #3291
- Using setup-envtest to install kubebuilder dependency by @Skarlso in #3362
🌱 Dependencies
- Upgrade to use latest Kind version v0.12.0 by @shivi28 in #3293
- update GH_VERSION to v2.7.0 by @faiq in #3376
- build(deps): bump sigs.k8s.io/controller-runtime from 0.11.1 to 0.11.2 by @dependabot in #3369
- build(deps): bump github.com/google/go-cmp from 0.5.6 to 0.5.7 by @dependabot in #3349
- build(deps): bump github.com/onsi/gomega from 1.18.1 to 1.19.0 by @dependabot in #3358
- Bump to golangci-lint v1.45.2 by @Prajyot-Parab in #3350
- build(deps): bump sigs.k8s.io/kustomize/kustomize/v4 from 4.5.2 to 4.5.3 in /hack/tools by @dependabot in #3356
- Bump golanci-lint in /hack/tools by @Ankitasw in #3334
- build(deps): bump k8s.io/klog/v2 from 2.50.0 to 2.60.1 by @dependabot in #3330
- build(deps): bump github.com/go-logr/logr from 1.2.2 to 1.2.3 by @dependabot in #3327
- build(deps): bump github.com/aws/amazon-vpc-cni-k8s from 1.10.1 to 1.10.2 by @dependabot in #3162
- build(deps): bump sigs.k8s.io/aws-iam-authenticator from 0.5.3 to 0.5.4 by @dependabot in #3163
- build(deps): bump sigs.k8s.io/kustomize/kustomize/v4 from 4.5.1 to 4.5.2 in /hack/tools by @dependabot in #3213
- build(deps): bump sigs.k8s.io/controller-runtime from 0.11.0 to 0.11.1 by @dependabot in #3221
- build(deps): bump sigs.k8s.io/aws-iam-authenticator from 0.5.4 to 0.5.5 by @dependabot in #3233
- Bump hack/tools/golangci-lint and fix lint errors by @Ankitasw in #3241
- build(deps): bump github.com/joelanford/go-apidiff from 0.2.0 to 0.3.0 in /hack/tools by @dependabot in #3280
- build(deps): bump github.com/itchyny/gojq from 0.12.6 to 0.12.7 in /hack/tools by @dependabot in #3279
- build(deps): bump github.com/spf13/cobra from 1.3.0 to 1.4.0 by @dependabot in #3302
- Bump CAPI to v1.1.2 by @shivi28 in #3231
New Contributors
v1.3.0
Release notes for Cluster API Provider AWS (CAPA) v1.3.0
This version is tested with Cluster API versions 1.1.x.
Changelog since v1.2.0
Changes by Kind
API Change
- [EKS] Expose additional EKS node bootstrap configuration options via EKSConfig (#2965, @richardcase)
Feature
- [EKS] Support tagging EKS node group's underlying ASG (#2884, @richardchen331)
- [clusterawsadm] Allow tagging CloudFormation stack during create/update (#3009, @jonathanbeber)
Documentation
- Fix machinepool template and doc for subnet field usage (#2903, @shivi28)
- Add contributors to the README (#3069, @richardcase)
Failing Test
- Fix EKS conversion tests (#3033, @pydctw)
- Increase vCPU quota limit for EC2 instances in e2e tests (#3002, @Ankitasw)
Bug or Regression
- [EKS] Fix
AWSManagedControlPlane
v1alpha3 to v1beta1 conversion (#3037, @jonathanbeber) - [EKS] Disable bastion SG when bastion is disabled (#3028, @abhinavnagaraj)
- [EKS] Fix EKS encryption configuration comparison bug (#3040, @jon-fearer)
- [EKS] Fix for EKS encryption reporting false changes (#3095, @richardcase)
- [EKS] Fix to allow updating roleName in fargate, if not already configured (#3052, @abhinavnagaraj)
- Fix for using kubeconfig context in clusterawsadm (#3068, @sedefsavas)
- Fix ECR describe in e2e tests when searching for previously created ECR (#3133, @josh-ferrell)
- Refactor TestMain functions to stop using os.Exit which was swallowing errors (#3036, @jonathanbeber)
- Update bastion status after deleting it (#3090, @sedefsavas)
Other (Cleanup or Flake)
- Move randomvariable to emeritus (#3060, @randomvariable)
- Promote @pydctw to reviewers (#3013, @sedefsavas)
- Enable all golang linters by default with explicit disable (#3093, @pydctw)
- Add HA control plane cluster upgrade e2e test (#3075, @pydctw)
- Add test package linter checks (#3071, @sedefsavas)
- Add unit tests for package pkg/cloud/tags (#3117, @Ankitasw)
- Publish CAPA AMI images for last 4 k8s releases in CAPA book (#3125, @shivi28)
- Re-enable GPU test (#3039, @sedefsavas)
New Contributors
- @jon-fearer made their first contribution in #3040
- @KushalBeniwal made their first contribution in #3047
- @richardchen331 made their first contribution in #2884
- @Skarlso made their first contribution in #3115
- @josh-ferrell made their first contribution in #3133
Full Changelog: v1.2.0...v1.3.0
The image for this release is:
k8s.gcr.io/cluster-api-aws/cluster-api-aws-controller:v1.3.0
A special thanks to @randomvariable for his contributions to CAPA from its inception who moves to emeritus status now. And thanks to @pydct who move to reviewers.
Thanks to all our contributors!
v0.7.3
Release notes for Cluster API Provider AWS (CAPA) v0.7.3
Changelog since v0.7.2
Changes by Kind
API Change
Bug or Regression
- Bugfix in
AWSManagedControlPlane
object conversion from v1alpha3 to v1beta1. Some fields in Status and Spec were not being considered during conversion (#3043, @jonathanbeber) - Fixes an issue with using multiple EKS addons. (#2961, @richardcase)
- Refactor TestMain functions across the project to stop using os.Exit swallowing errors (#3041, @jonathanbeber)
The images for this release are:
k8s.gcr.io/cluster-api-aws/cluster-api-aws-controller:v0.7.3
Thanks to all our contributors.
v1.2.0
Release notes for Cluster API Provider AWS (CAPA) v1.2.0
This version is compatible with Cluster API versions 1.0.x.
Changelog since v1.1.0
Changes by Kind
Feature
- [EKS] Allow configuring services cidr when creating an EKS cluster. (#2964, @richardcase)
- [EKS] Expose additional EKS node bootstrap configuration options via EKSConfig. (#2965, @richardcase)
Bug or Regression
- Revert setting ELB name field to a generated name (this was a bug that made v1.1.0 incompatible with v1.0.0) (#3004, @dlipovetsky)
- Block creating a new instance if AWSMachine already has ProviderID field set (#2957, @sedefsavas)
- Fix for setting conditions to error severity only when errors are non-transients (#3018, @sedefsavas)
- Fix recurring AWS.SimpleQueueService.NonExistentQueue error messages from CAPA logs (#2976, @Ankitasw)
- Fix for trying to update AWSMachine immutable field:
rootVolume.deviceName
(#3011, @pydctw) - [EKS] Fix AWSFargateProfile template (#2984, @matthewhembree)
- Use non root numeric user for CAPA containers (#2960, @Ankitasw)
- [EKS] Fix for EKS e2e tests caused by new environment variable (#2987, @richardcase)
- [EKS] Add missing permissions for EKS OIDC provider configuration (#2870, @codablock)
Documentation
- Update documentation to specify JSON output for AWS CLI commands (#2982, @matthewhembree)
- Update tilt development docs for v0.7.0+ and debugging (#2994, @richardcase)
Other
New Contributors
- @matthewhembree made their first contribution in #2984
Full Changelog: v1.1.0...v1.2.0
The image for this release is:
k8s.gcr.io/cluster-api-aws/cluster-api-aws-controller:v1.2.0
Thanks to all our contributors.
v1.1.0
IMPORTANT:
!!Do not use this release!! This release is not backward compatible with v1.0.0 due to a bug caused by an API change. API change is reverted in v1.2.0 release.
Changelog since 1.0.0
Changes by Kind
Feature
- Add support for bring your own control plane ELB. This is an advanced feature (#2787, @dlipovetsky)
- EKS: Add option to create EKS console IAM policy (#2790, @Madhur97)
Bug or Regression
- EKS: Fix for installing multiple EKS addons. (#2914, @richardcase)
- EKS: Add error handling while getting a remote client (#2878, @sedefsavas)
- EKS: Fix panic when adding labels to AWSManagedMachinePool (#2896, @zhengtianbao)
- EKS: Add missing permissions for EKS OIDC provider configuration (#2870, @codablock)
- EKS: Fix for
node-eks-additional
SG overrides for EKSManagedControlPlane (#2850, @codablock) - EKS: Add a check for maximum allowed resync period (#2846, @richardcase)
- Prevent the creation of a new instance if AWSMachine already has ProviderID field set (#2957, @sedefsavas)
- Fix for supporting SecureString parameter type in SSM on GovCloud (#2952, @sedefsavas)
- Use non root numeric user for CAPA containers (#2960, @Ankitasw)
- Allow control plane ELB to use different subnets from node subnets (#2877, @pydctw)
- Fix AWSClusterControllerIdentity ValidateUpdate panic when AllowedNamespaces is nil (#2885, @zhengtianbao)
Documentation
- Add documentation for building custom AMIs (#2934, @sedefsavas)
- Fix documentation on external AWS CCM and EBS CSI driver (#2837, @scottslowe)
- Add externally managed infrastructure docs (#2895, @enxebre)
Other
- Upgrade cluster-api to main branch, golang to v1.17, controller-runtime to v0.11+, go-logr to v1.2.0 (#2943, @sbueringer)
- Replace ioutil deprecated package with os/io for golang 1.16 (#2900, @shivi28)
- Add GPU e2e test (#2843, @Ankitasw)
- Enable v1alpha3/v1alpha4 to v1beta1 upgrade e2e test (#2950, @sedefsavas)
New Contributors
- @Jacobious52 made their first contribution in #2841
- @codablock made their first contribution in #2850
- @ameukam made their first contribution in #2867
- @zhengtianbao made their first contribution in #2885
- @PushkarJ made their first contribution in #2892
- @vibhorrawat made their first contribution in #2889
- @invidian made their first contribution in #2917
Full Changelog: v1.0.0...v1.1.0
The image for this release is:
k8s.gcr.io/cluster-api-aws/cluster-api-aws-controller:v1.1.0
Thanks to all our contributors.
v0.7.2
Release notes for Cluster API Provider AWS (CAPA) v0.7.2
Changelog since v0.7.1
Changes by Kind
Bug or Regression
- Correct version number in metadata.yaml (#2894, @randomvariable)
- Fix panic caused by nil map in
createLabelUpdate
(#2906, @zhengtianbao) - Fix panic in
AWSClusterControllerIdentity.ValidateUpdate
(#2887, @zhengtianbao) - Fix timeout due to delay in bringing up control plane in e2e tests (#2928, @Ankitasw)
- Fix for supporting SecureString as a parameter type in SSM on GovCloud (#2959, @sedefsavas)
- Fix to allow using multiple EKS addons (#2961, @richardcase)
Other
- Bump cluster-api version to v0.4.3 (#2904, @sedefsavas)
- Remove GINKGO_SKIP conditions from Makefile to enable the e2e tests for CAPI (#2946, @Ankitasw)
Full Changelog: v0.7.1...v0.7.2
The images for this release are:
k8s.gcr.io/cluster-api-aws/cluster-api-aws-controller:v0.7.2
Thanks to all our contributors.
v0.7.1
Release notes for Cluster API Provider AWS (CAPA) v0.7.1
Changelog since v0.7.0
Changes by Kind
API Change
- Correct the casing of the ELB load balancer scheme from
Internet-facing
tointernet-facing
, allowing the ELB to be correctly reconciled (#2861, @sedefsavas) (#2768, @dlipovetsky)
Note: This is a seemingly breaking API change, but no users will be impacted, because cluster reconcililation after initial create was failing with the Internet-facing
value. Cluster API Provider AWS v0.7.1 will update the value to the corrected version.
Feature
- EKS: Add support to create/update tags for a Fargate Profile (#2676, @abhinavnagaraj)
- EKS: Support adding additional policies to node group role for AWSManagedMachinePool (#2751, @abhinavnagaraj)
- EKS: Support spot capacity type for ManagedMachinePool (#2702, @abhinavnagaraj)
- Support adding AWS cloud provider tags to pre-existing infrastructure (#2715, @pydctw)
- Expose leader-election-resource-lock as a flag (#2822, @enxebre)
- Add readiness and health checks to webhook server (#2685, @geetikabatra)
Documentation
- Add documentation for using external cloud provider and CSI driver (#2718, @Ankitasw)(#2837, @scottslowe)
Bug or Regression
- Fix panic on RouteTables reconcile (#2705, @dilyevsky)
- Fix findSubnet function's logic when subnet ID is specified (#2728, @pydctw)
- Fix reconciliation of AWS ingress rules of same port (#2813, @pydctw)
- Move EKS-related resources from
AWSIAMManagedPolicyControllers
to a separate policy to work around AWS size limit for managed policies (#2662, @johananl) - Reinstating the check for the maximum allowed resync period when EKS is enabled. (#2846, @richardcase)
- Resolves issue with KIAM annotation not appearing on Cluster API AWS Manager pod (#2800, @voor)
- Fix to honor
AWSMachine.Spec.PublicIP
and set a public IP to the instance (#2772, @pydctw)
Other
- Add v1alpha3 to v1alpha4 upgrade test (#2770, @Ankitasw)
- Add external cloud provider end-to-end test (#2647, @Ankitasw)
- Set controller log level with CAPA_LOGLEVEL variable. Defaults to 0. (#2673, @Ankitasw)
- Clean up unused Kubernetes RBAC permissions (#2720, @sayantani11)
- Bump AWS SDK to v1.4.0.33, with support added for IMDS IPv6 endpoint (#2721, @dependabot[bot])
- Bump AWS SDK to v1.40.28: Fix SDK's suppressing of sensitive API parameters being logged. The SDK did not correctly suppress sensitive API parameters via the
String
andGoString
methods. Updates the SDK's behavior to suppress sensitive API parameters (#2703, @dependabot[bot])
The image for this release is:
k8s.gcr.io/cluster-api-aws/cluster-api-aws-controller:v0.7.1
Thanks to all our contributors.
v0.6.9
Release notes for Cluster API Provider AWS (CAPA) v0.6.9
Changelog since v0.6.8
Changes by Kind
API Change
- Correct the casing of the ELB load balancer scheme from
Internet-facing
tointernet-facing
, allowing the ELB to be correctly reconciled (#2862, @sedefsavas)
Note: This is a seemingly breaking API change, but no users will be impacted, because cluster reconcililation after initial create was failing with the Internet-facing
value. Cluster API Provider AWS v0.6.9 will update the value to the corrected version.
Bug or Regression
- Add missing RBAC permission for AWSClusterControllerIdentities for managed control plane controller (#2709, @richardcase)
- Fix for managed
SecurityGroups
filtering (#2620, @sedefsavas) - EKS: Add missing identity permission for the managed control plane (#2709, @richardcase)
The images for this release are:
k8s.gcr.io/cluster-api-aws/cluster-api-aws-controller:v0.6.9
k8s.gcr.io/cluster-api-aws/eks-controlplane-controller:v0.6.9
k8s.gcr.io/cluster-api-aws/eks-bootstrap-controller:v0.6.9
Thanks to all our contributors.
v1.0.0
Release notes for Cluster API Provider AWS (CAPA) v1.0.0
This version is compatible with Cluster API versions 1.0.x.
Changelog since v0.7.0
Urgent Upgrade Notes
(No, really, you MUST read this before you upgrade)
- v1.0.0 is based on Cluster API v1beta1 and must be used in conjunction with Cluster API v1.0.x. (#2831, @randomvariable)
- All Cluster API Provider AWS API types have been graduated to v1beta1, this includes:
AWSCluster*
,AWSMachine*
,AWSManaged*
and all experimental APIs, covering both EC2 and EKS.- clusterawsadm configuration has also graduated to v1beta1. Clusterawsadm is backwards compatible with v1alpha1 configuration files and they are semantically the same. Running
clusterawsadm bootstrap iam print-config --config <old-file>
will do an automated conversion to v1beta1.
- Cluster API Provider AWS will support upgrades directly from v1alpha3 to v1beta1 as well as v1alpha4 to v1beta1.
Changes by Kind
API Change
- IAM types have been moved (back) out of the main
/api
package into a new/iam/api
package where they are consumed by both EKS and clusterawsadm. (#2820, @randomvariable)
Feature
- EKS: Add support to create and update tags for a Fargate Profile (#2676, @abhinavnagaraj)
- EKS: Support role additional policies for AWSManagedMachinePool (#2751, @abhinavnagaraj)
- EKS: Support spot capacity type for ManagedMachinePool (#2702, @abhinavnagaraj)
- Support adding AWS cloud provider tags to pre-existing infrastructure (#2715, @pydctw)
- Add readiness and health checks to webhook server (#2685, @geetikabatra)
- Controller log level can be set using the CAPA_LOGLEVEL variable. Defaults to 0. (#2673, @Ankitasw)
Documentation
- Add documentation for using external cloud provider and CSI driver add-on (#2718, @Ankitasw)
- Updated readme with godoc shield and centered images. (#2700, @pshail)
- Add doc for using external CCM with CSI driver. (#2724, @Ankitasw)
- Fix the broken link in the tilt development guide. (#2724, @mkumatag)
- Update contributing guide. (#2756, @richardcase)
- Update docs to v1beta1. (#2830, @randomvariable)
Bug or Regression
- Add v1alpha3 to v1alpha4 upgrade test (#2770, @Ankitasw)
- Fixed a panic when there are extra routes with non-CIDR destinations (IPv6 CIDR, Prefix List) present in the managed routing table. (#2705, @dilyevsky)
- Correct the casing of the ELB load balancer scheme from
Internet-facing
tointernet-facing
, allowing the ELB to be correctly continuously reconciled (#2768, @dlipovetsky, #2832, @sedefsavas) - Fix
findSubnet
function's logic when subnet ID is specified. It will find a matching subnet regardless of a failureDomain setting. (#2728, @pydctw) - Fix reconciliation of AWS ingress rules of same port (#2813, @pydctw)
- Move EKS-related resources from
AWSIAMManagedPolicyControllers
to a separate policy to work around AWS size limit for managed policies. (#2662, @johananl) - Resolves issue with KIAM annotation not appearing on Cluster API AWS Manager pod. (#2800, @voor)
- Validation added for empty
InstanceType
inAWSMachine
andAWSMachineTemplate
. (#2740, @shivi28) - When
AWSMachine.Spec.PublicIP
is set true, an instance is launched in a public subnet with public IP. (#2772, @pydctw) - Retry fetching managed vpc attributes when vpc is 'NotFound'. (#2678, @abhinavnagaraj)
- Remove
elasticloadbalancing:AddTags
duplicate entries. (#2692, @rayandas) - Improve the netlify speed issues. (#2682, #2811, @randomvariable)
- Fix inorrect api version in metadata.yml (#2677, @randomvariable)
- Add check for invalid memory address or nil pointer dereference in getImageSnapshotSize (#2821, @enxebre)
- Error when capacity type or scaling config is missing. (#2713, @richardcase)
- Fix node affinity rules in external CCM CRDs. (#2722, #2723, @Ankitasw)
- Fix the gomega errors in tests with the controller runtime version bump. (#2745, @Ankitasw)
- Fix the timeout for conformance test due to prolonged log collection. (#2766, @Ankitasw)
- Fix timeout due to delay in bringing up control plane in e2e tests. (#2777, @Ankitasw)
- Correct typo in
AWSCluster
validation hook error. (#2776,@dlipovetsky) - Make
PublicIP
field inAWSMachine
spec work. (#2772, @pydctw) - Ensure destination pointer is non-nil before calling restore functions. (#2809, @dlipovetsky)
- Add bastion-sg to managedMachinePool remoteAccess source-sgs when bastion is enabled. (#2659, @abhinavnagaraj)
- If one type of webhook is not defined, testenv.Build hits a nil dereference. (#2810, @dlipovetsky)
Other (Cleanup or Flake)
- Clean up unused Kubernetes RBAC permissions (#2720, @sayantani11)
- Expose leader-election-resource-lock as a flag (#2822, @enxebre)
- Add external cloud provider end-to-end test (#2647, @Ankitasw)
- Update to CAPA reviwers and maintainers. (#2716, @vincepri, #2667, @richardcase)
- Use same Golang version everywhere. (#2735, @mkumatag)
- Change references ...