Skip to content

SQS Controller Constant API Calls #2597

@logand22

Description

@logand22

Describe the bug

Image

After upgrading from 1.0.12 to 1.1.14, we noticed that the SQS controller is constantly attempting to update Queues.

Relevant Logs:

{
  "level": "info",
  "ts": "2025-08-08T11:36:51.982Z",
  "logger": "ackrt",
  "msg": "desired resource state has changed",
  "kind": "Queue",
  "namespace": "<NAMESPACE>",
  "name": "<NAME>",
  "account": "<ACCOUNT_ID>",
  "role": "",
  "region": "<REGION>",
  "is_adopted": false,
  "generation": 6460,
  "diff": [
    {
      "Path": {
        "Parts": [
          "Spec",
          "Policy"
        ]
      },
      "A": "{\"Statement\":[{\"Action\":[\"sqs:SendMessage\"],\"Condition\":{\"ArnEquals\":{\"aws:SourceArn\":\"<TOPIC_ARN>\"}},\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"sns.amazonaws.com\"},\"Resource\":\"<QUEUE_ARN>\"}],\"Version\":\"2012-10-17\"}",
      "B": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"sns.amazonaws.com\"},\"Action\":\"sqs:SendMessage\",\"Resource\":\"<QUEUE_ARN>\",\"Condition\":{\"ArnEquals\":{\"aws:SourceArn\":\"<TOPIC_ARN>\"}}}]}"
    },
    {
      "Path": {
        "Parts": [
          "Spec",
          "DelaySeconds"
        ]
      },
      "A": null,
      "B": "0"
    },
    {
      "Path": {
        "Parts": [
          "Spec",
          "KMSDataKeyReusePeriodSeconds"
        ]
      },
      "A": null,
      "B": "300"
    },
    {
      "Path": {
        "Parts": [
          "Spec",
          "MaximumMessageSize"
        ]
      },
      "A": null,
      "B": "1048576"
    },
    {
      "Path": {
        "Parts": [
          "Spec",
          "MessageRetentionPeriod"
        ]
      },
      "A": null,
      "B": "345600"
    },
    {
      "Path": {
        "Parts": [
          "Spec",
          "ReceiveMessageWaitTimeSeconds"
        ]
      },
      "A": null,
      "B": "0"
    },
    {
      "Path": {
        "Parts": [
          "Spec",
          "SQSManagedSSEEnabled"
        ]
      },
      "A": null,
      "B": "false"
    },
    {
      "Path": {
        "Parts": [
          "Spec",
          "VisibilityTimeout"
        ]
      },
      "A": null,
      "B": "30"
    }
  ]
}

I believe the pertinent diff is the Policy diff which compares an action like:

action: ["sqs:SendMessage"]

to

action: "sqs:SendMessage"

I believe the issue was added in aws-controllers-k8s/sqs-controller@4b7895a.

Steps to reproduce
Create a queue with an action or resource as a string instead of an array of a single string

Expected outcome
I expect SQS to not attempt to make calls to the AWS API when the resources are semantically the same.

Environment

  • EKS Version 1.31
  • SQS

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions