Closed vineet-krishna closed 4 years ago
Well, this issue does not seem to occur when I am using EKSCTL version 0.13.0 in my docker container. But this causes me to downgrade my EKS version to 1.14 as in EKS version 1.15 --allow-privileged=true flag does not exist which causes node groups to fail while trying to join the cluster.
[ℹ] cluster stack is missing resources for Fargate
[ℹ] adding missing resources to cluster stack
The error suggests that for each of the create nodegroup
commands, eksctl is trying to modify the cluster stack because it's missing resources for Fargate[1], and since multiple processes are attempting to update the stack, the stack update (more specifically, execution of the changeset) is failing.
[✖] executing CloudFormation ChangeSet "eksctl-update-cluster-1585031312" for stack "eksctl-dr-eks-cluster": ChangeSetNotFound: ChangeSet [eksctl-update-cluster-1585031312] does not exist
The execution of the changeset fails because after a stack update is initiated, all previous changesets are invalidated.
Not all commands in eksctl are safe for concurrent usage (since there's no shared lock) and eksctl create nodegroup
is one of them in this case because it's trying to update the cluster stack.
What you're trying to achieve – creating nodegroups in parallel – is already built into eksctl create nodegroup -f config.yaml
as it parallelises creation of all new nodegroups in the specified config file. To fix the error, you need to move all nodegroups to a single ClusterConfig
file and run eksctl create nodegroup -f config-with-all-nodegroups.yaml
only once.
[1]: This is actually a minor (harmless) bug. While eksctl isn't actually adding the resources that are missing for Fargate, it shouldn't attempt the stack update if Fargate profiles aren't being used.
I am closing this issue but please feel free to reopen it if you think there's something we haven't addressed.
What happened? I am trying to launch multiple nodegroups in parallel right after creating an eks cluster.
While passing this as docker entry point only one of the node groups gets created and the docker container keeps running indefinitely.
The same script runs fine while I run it as a bash script in my terminal.
How to reproduce it? Use the following dockerfile and add entrypoint file as mentioned above and add the required yaml files i.e. cluster.yml, ng-app.yml, ng-default.yml, ng-kiam.yml, ng-monitoring.yml, ng-orch-compute.yml
Versions
Logs