<p>I would like full details on NodeGroups in an EKS cluster, for example volume size  as set using <code>--node-volume-size</code> in the command <code>eksctl create nodegroup ...</code> but also many other details of a NodeGroup that can be set with that command.</p>

<p><code>eksctl get nodegroup</code> gives limited data, omitting volume size.  See below.</p>

<p><code>kubectl get node</code> (or <code>kubectl describe node</code>) gives more information (see at bottom). However, this is information for the Node, not the Node Group. Node Groups have their own details, such as configuration for auto-scaling, and in fact can be zero-sized. Also, the <code>kubectl</code> output does not  match the <code>--node-volume-size</code> value -- in this case 33 GB, as can be confirmed in the AWS EBS console.</p>

<p>I need data on the level of <code>eksctl</code> (EC2 VMs) rather than <code>kubectl</code> (Kubernetes nodes), though of course these do align. </p>

<p>This is just one example of the fields set in  <code>eksctl create nodegroup ...</code> which are not in the (rather thin-looking) JSON.  How can I get a full description of the Node Group?</p>

<pre><code>$ eksctl get nodegroup --name  one-node-group  --cluster clus-bumping  --region=us-east-2 --output json

[
    {
        "StackName": "eksctl-cluster1-nodegroup-one-node-group",
        "Cluster": "cluster1",
        "Name": "one-node-group",
        "MaxSize": 1,
        "MinSize": 1,
        "DesiredCapacity": 1,
        "InstanceType": "t2.small",
        "ImageID": "",
        "CreationTime": "2020-05-27T07:18:32.496Z",
        "NodeInstanceRoleARN": ""
    }
] 
</code></pre>

<p>Relevant output of <code>kubectl</code> concerning volumes:</p>

<pre><code>% kubectl describe node 
Name:               ip-192-168-39-36.us-east-2.compute.internal ...
Capacity: ...
 attachable-volumes-aws-ebs:  39 ...
ephemeral-storage:           34590700Ki ...
Allocatable:
 attachable-volumes-aws-ebs:  39
 ephemeral-storage:           30805047244 ...
 Resource                    Requests    Limits ...
  --------                    --------    ------
 ephemeral-storage           0 (0%)      0 (0%) ...
  attachable-volumes-aws-ebs  0           0   ...
</code></pre>

Joshua Fox
<p>Answer: This is simply a limitation in <code>eksctl</code>. The limitation exists because the node-group configuration is not  implicit  in the EC2-based cluster itself, but rather it would need to be saved specially in cluster metadata.</p>

<p>See eksctl GitHub issues:  <a href="https://github.com/weaveworks/eksctl/issues/2255" rel="nofollow noreferrer">2255</a>  and <a href="https://github.com/weaveworks/eksctl/issues/642" rel="nofollow noreferrer">642</a>.</p>

<p>Yet the information <em>does</em> exist, and you can get it with the AWS SDK for EKS function <a href="https://docs.aws.amazon.com/sdk-for-go/v2/api/service/eks/#Client.DescribeNodegroupRequest" rel="nofollow noreferrer"><code>DescribeNodegroup</code></a>.</p>
