Skip to content

EventBridge Rule Controller has an Error when using ARN for EventBus Name After Initial Creation #2423

@JonathanGraniero

Description

@JonathanGraniero

Describe the bug
I am adding an event rule to one of my event busses in EventBridge via the EventBridge controller. On initial deploy, when I use an arn for the eventBusName, I'm successfully creating the EventRule as expected. If I make a change to a value and re-sync the rule, I'm getting an error

conditions:
    - message: 'Immutable Spec fields have been modified: EventBusName'
      status: 'True'
      type: ACK.Terminal
    - lastTransitionTime: '2025-04-10T19:14:05Z'
      message: Resource not synced
      reason: resource is in terminal condition
      status: 'False'
      type: ACK.ResourceSynced

Steps to reproduce
Create an event rule with a spec similar to:

spec:
  eventBusName: arn:aws:events:eu-central-1:<my-account-id>:event-bus/<my-event-bus>
  eventPattern: '{"detail-type":["event1","event2"]}'
  name: my-event-rule
  targets:
    - arn: arn:aws:sqs:eu-central-1:<my-account-id>:my-queue-target
      id: my-super-awesome-queue-target

On first apply, everything is fine and the resource syncs. Now lets add an event:

spec:
  eventBusName: arn:aws:events:eu-central-1:<my-account-id>:event-bus/<my-event-bus>
  eventPattern: '{"detail-type":["event1","event2","event3"]}'
  name: my-event-rule
  targets:
    - arn: arn:aws:sqs:eu-central-1:<my-account-id>:my-queue-target
      id: my-super-awesome-queue-target

This will give you the error:

conditions:
    - message: 'Immutable Spec fields have been modified: EventBusName'
      status: 'True'
      type: ACK.Terminal
    - lastTransitionTime: '2025-04-10T19:14:05Z'
      message: Resource not synced
      reason: resource is in terminal condition
      status: 'False'
      type: ACK.ResourceSynced

Expected outcome
Sync should be successful because I'm not changing the name of the EventBus, so it should not be trying to modify the value of that field. Something to note, I'm using the arn, not the bus name. This is based off of the schema for this prop:

/**
   * The name or ARN of the event bus to associate with this rule. If you omit
   * this, the default event bus is used.
   *
   * @schema RuleSpec#eventBusName
   */
  readonly eventBusName?: string;

Environment

  • Kubernetes version: 1.30
  • Using EKS (yes/no), if so version? yes, eks.29
  • AWS service targeted (S3, RDS, etc.) EventBridge

Metadata

Metadata

Assignees

No one assigned

    Labels

    service/eventbridgeIndicates issues or PRs that are related to eventbridge-controller.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions