Azure Resource Notifications - ContainerService events in Azure Event Grid (Preview)

The Azure Kubernetes Service (AKS) uses the Container Service Event Resources system topic to deliver preemptive notifications for scheduled maintenance activities on AKS clusters. This functionality enables the reception of push notifications for essential maintenance tasks across different event stages, including scheduled, initiated, completed, canceled, and failed. Notably, for scheduled stage, notifications are dispatched 7 days and 24 hours before the actual maintenance activity.

Notifications encompass:

  • Maintenance initiated by AKS (for instance, Underlay migration, Konnectivity Tunnel Switch)
  • Maintenance initiated by customers (such as Auto upgrade, Node OS upgrade, and weekly release windows)

These forward-looking notifications assist customers by offering the opportunity to better prepare for potential disruptions, ultimately aiming to minimize operational expenses.

This article provides the properties and the schema for Azure Resource Notifications ContainerService events. For an introduction to event schemas in general, see Azure Event Grid event schema. In addition, you can find samples of generated events and a link to a related article on how to create system topic for this topic type.

Event types

ContainerService offers the following event type for consumption:

Event type Description
Microsoft.ResourceNotifications.ContainerServiceEventResources.ScheduledEventEmitted provides advance notifications for scheduled maintenance events on AKS clusters.

Role-based access control

Currently, these events are exclusively emitted at the Azure subscription scope. It implies that the entity creating the event subscription for this topic type receives notifications throughout this Azure subscription. For security reasons, it's imperative to restrict the ability to create event subscriptions on this topic to principals with read access over the entire Azure subscription. To access data via this system topic, in addition to the generic permissions required by Event Grid, the following Azure Resource Notifications specific permission is necessary: ``.

Microsoft.ResourceNotifications/systemTopics/subscribeToContainerServiceEventResources/action

Event schemas

Here's the schema:

{
	"id": "string",
	"source": "string",
	"subject": "string",
	"type": "Microsoft.ResourceNotifications.ContainerServiceEventResources.ScheduledEventEmitted",
	"time ": "string in date-time",
	"data": {
		"resourceInfo": {
			"id": "string",
			"name": "string",
			"type": "string",
			"location": "string",
			"properties": {
				"description": "string",
				"eventId": "string",
				"eventSource": "string",
				"eventStatus": "string",
				"eventDetails": "string",
				"scheduledTime": "string in date-time",
				"startTime": "string in date-time",
				"lastUpdateTime": "string in date-time",
				"resources": "array of strings",
				"resourceType": "string"
			}
		},
		"operationalInfo": {
			"resourceEventTime": "string in date-time"
		},
		"apiVersion": "string"
	},
	"specversion": "string"
}

An event has the following top-level data:

Property Type Description
id String Unique identifier of the event
source String The Azure subscription for which this system topic is being created.
subject String Publisher defined path to the base resource on which this event is emitted.
type String Registered event type of this system topic type
time String
Format: 2022-11-07T18:43:09.2894075Z
The time the event is generated based on the provider's UTC time
data Object Contains event data specific to the resource provider. For more information, see the next table.
specversion String CloudEvents schema specification version.

The data object has the following properties:

Property Type Description
resourceInfo Object Data specific to the resource. For more information, see the next table.
apiVersion String API version of the resource properties.
operationalInfo Object Details of operational information pertaining to the resource.

The resourceInfo object has the following properties:

Property Type Description
id String Publisher defined path to the event subject
name String This field indicates the event ID. It always takes the value of the last section of the id field.
type String The type of event that is being emitted.
location String Location or region where the resource is located.
properties Object Payload of the resource. For more information, see the next table.

The operationalInfo object has the following properties:

Property Type Description
resourceEventTime DateTime Date and time when the resource was updated.

The ScheduledEventEmitted event has the following properties:

Property Type Description
description String The description of the event.
eventId String The event ID of the event.
eventSource String The source of the event.
eventStatus Enum (String) Status of the event which can be – Scheduled, Started, Completed, Canceled, Failed.
eventDetails String The details of the event.
scheduledTime String (date-time format) The time of the event is scheduled to start.
lastUpdateTime String (date-time format) The last time the state of the event was updated.
resources Array of Strings (Azure Resource Manager ID format) The list of resources impacted by the event.
resourceType String The resource type of the event

Example events

The following example shows the schema of a key-value modified event:

{
	"id": "5bdb52cf-5489-4845-86c8-7fe94a4fc6c1",
	"source": "/subscriptions/{subscription-id}",
	"subject": "/subscriptions/{subscription-id}/resourceGroups/{rg-name}/providers/Microsoft.ContainerService/managedClusters/{managedcluster-name}/scheduledEvents/{event-id}",
	"data": {
		"resourceInfo": {
			"id": "/subscriptions/{subscription-id}/resourceGroups/{rg-name}/providers/Microsoft.ContainerService/managedClusters/{managedcluster-name}/scheduledEvents/{event-id}",
			"name": "{event-id}",
			"type": "Microsoft.ContainerService/managedClusters/scheduledEvents",
			"properties": {
				"description": "ScheduledEvents",
				"eventId": "bbe82027-0444-4f73-897a-0bbfe3af66f1",
				"eventSource": "AutoUprader",
				"eventStatus": "Started",
				"eventDetails": "Start to upgrade security vhd",
				"scheduledTime": "2024-04-16T22:17:12.103268606Z",
				"startTime": "0001-01-01T00:00:00.0000000Z",
				"lastUpdateTime": "0001-01-01T00:00:00.0000000Z",
				"resources": [
				  "/subscriptions/{subscription-id}/resourcegroups/{rg-name}/providers/Microsoft.ContainerService/managedClusters/{managedcluster-name}"
				],
				"resourceType": "ManagedCluster"
			}
		},
		"operationalInfo": {
			"resourceEventTime": "2024-04-16T22:17:12.1032748"
		},
		"apiVersion": "2023-11-02-preview"
	},
	"type": "Microsoft.ResourceNotifications.ContainerServiceEventResources.ScheduledEventEmitted",
	"specversion": "1.0",
	"time": "2024-04-16T22:17:12.1032748Z"
}

Contact us

If you have any questions or feedback on this feature, don't hesitate to reach us at arnsupport@microsoft.com.

To better assist you with specific feedback about a certain event, provide the following information:

For missing events:

  • System topic type name
  • Approximate timestamp in UTC when the operation was executed
  • Base resource ID for which the notification was generated
  • Navigate to your resource in Azure portal and select JSON view at the far right corner. Resource ID is the first field on the JSON view page.
  • Expected event type
  • Operation executed (for example, VM started or stopped, Storage account created etc.)
  • Description of issue encountered (for example, VM started and no Microsoft.ResourceNotifications.HealthResources.AvailabilityStatusChanged event generated)
  • If possible, provide the correlation ID of operation executed

For event that was delayed or has unexpected content

  • System topic type name
  • Entire contents of the notification excluding data.resourceInfo.properties
  • Description of issue encountered and impacted field values

Ensure that you aren't providing any end user identifiable information while you're sharing this data.

Next steps

See Subscribe to Azure Resource Notifications - Container Service events.