<p>In the terraform <code>aws_eks_node_group</code> resource I can't set :</p>

<pre><code>labels = {
  "node-role.kubernetes.io/others" = "other"
}
</code></pre>

<p>as AWS complains labels key should not contains kubernetes.io. </p>

<pre><code>Error: error creating EKS Node Group (my-cluster:others): InvalidParameterException: Label cannot contain reserved labels kubernetes.io/
{
  ClusterName: "my-cluster",
  Message_: "Label cannot contain reserved labels kubernetes.io/",
  NodegroupName: "others"
}
</code></pre>

<p>Also, EC2 instances spawned have no name and I have no clue on how to specify a Name for my instances based on their node group.</p>

<p>Any idea on how to achieve this ?</p>

<p>As per the <a href="https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/" rel="nofollow noreferrer">documentation</a> you can't use specific labels, regarding labels: </p>

<blockquote>
  <p>The kubernetes.io/ and k8s.io/ prefixes are reserved for Kubernetes core components. Valid label values must be 63 characters or less and must be empty or begin and end with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between.</p>
</blockquote>

<p>Regarding your specific label. There are many issues since k8s 1.15 or 1.16 where some change in the core kubernetes don’t allow that label. <a href="https://github.com/kubernetes/kubernetes/issues/84912" rel="nofollow noreferrer">one detailed issue</a></p>

<p>As for naming of EC2 instances created by EKS Node Group. Currently, there is no way to pass "Name" tag. This question is a duplicate of <a href="https://stackoverflow.com/questions/59902283/adding-name-to-ec2-instances-when-deploying-awseksnodegroup-in-cloudformatio/59920928#59920928">this</a> where you can also find the answer how to name your instances for time being.</p>
