Skip to content

[eks controller] adopted resources with read only does not update the cluster version #2856

Description

@shabbskagalwala

Describe the bug
Using EKS controller v1.11.4.

When an EKS cluster resource is adopted with read only mode using the following annotations

apiVersion: eks.services.k8s.aws/v1alpha1
kind: Cluster
metadata:
  annotations:
    services.k8s.aws/adoption-fields: '{"name": "my-test-cluster"}'
    services.k8s.aws/adoption-policy: adopt
    services.k8s.aws/deletion-policy: retain
    services.k8s.aws/read-only: 'true'

And an EKS cluster upgrade is performed, the EKS resource's spec.version is not updated and keep showing the old information.

For example, the resource was initially adopted at version 1.33 - the cluster was upgraded to 1.34, but the spec.version shows 1.33 and does not get updated.

The controller logs

{
  "level": "info",
  "ts": "2026-04-13T22:20:17.502Z",
  "logger": "ackrt",
  "msg": "desired resource state has changed, but resource is read-only - skipping update",
  "kind": "Cluster",
  "namespace": "controllers",
  "name": "my-test-cluster",
  "account": "xxxxx",
  "role": "",
  "region": "us-west-2",
  "is_adopted": true,
  "is_read_only": true,
  "generation": 2,
  "skipped": true,
  "diff": [
    {
      "Path": {
        "Parts": [
          "Spec",
          "Version"
        ]
      },
      "A": "1.33",
      "B": "1.34"
    }
  ]
}

Steps to reproduce

Create an EKS cluster resource - in read only and adoption policy as adopt. Trigger an upgrade and notice the spec.version does not get updated.

Expected outcome
The spec.version should be updated when the cluster resource is adopted in read only mode.

Environment

  • Kubernetes version: 1.33 and 1.34
  • Using EKS (yes/no), if so version? yes
  • AWS service targeted (S3, RDS, etc.) EKS

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/read-onlyIssues related to ReadOnlyResources featureservice/eksIndicates issues or PRs that are related to eks-controller.

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions