-
Notifications
You must be signed in to change notification settings - Fork 4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(eks): Helm release name length & --wait
option.
#6276
Conversation
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Still needs some test snapshot updates
I rebased again and pushed the integration test expectations. Hopefully it will finish before the branch goes out of date again haha |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
Rebasing again... |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
Currently, Helm will not wait until all applicable resources are in a ready state before deciding a release is successful and moving on. This can be problematic for subsequent chart installations that will necessarily fail if the previous has not completed, even if explicitly added as a dependency.
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
Thank you for contributing! Your pull request is now being automatically merged. |
This PR addresses a couple of issues I encountered earlier today involving the
HelmChart
construct.The Helm release name length limit is 53 characters, not 63 (source). Adding a chart will always fail if CDK is allowed to name it automatically, since it uses the last 63 characters of the node's unique ID.
Since Helm does not wait by default for all resources created by the chart to be in a ready/running state, a race condition can exist that will cause a CDK deploy to fail if CDK moves on to the next Helm chart before the previous one is finished, even if an explicit dependency has been added. For example, adding the
metrics-server
chart, followed byexternal-dns
, even if theexternal-dns
chart hasmetrics-server
as a dependency, can produce aError: could not get apiVersions from Kubernetes: unable to retrieve the complete list of server APIs: metrics.k8s.io/v1beta1: the server is currently unable to handle the request
. Setting the newwait
property totrue
will add the--wait
flag to the Helm tool execution, which will make Helm wait up to 300s for everything to finish before marking that CDK construct complete and allowing any dependent constructs to proceed.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license