Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
c88a6d2
initial changes
gracewehner Sep 9, 2025
44176aa
linting
gracewehner Sep 9, 2025
f604862
more lint fixes
gracewehner Sep 9, 2025
a97b5a4
linter 3
gracewehner Sep 9, 2025
03ef05d
linter 4
gracewehner Sep 9, 2025
a52af6e
style
gracewehner Sep 9, 2025
130846a
style 2
gracewehner Sep 9, 2025
db56151
style 3
gracewehner Sep 10, 2025
7dbf857
style 3
gracewehner Sep 10, 2025
e808691
style 4
gracewehner Sep 10, 2025
ddbb008
final linter
gracewehner Sep 10, 2025
e4667fa
cleanup
gracewehner Sep 18, 2025
d2d039c
more cleanup
gracewehner Sep 18, 2025
955d9e5
Merge branch 'main' into grwehner/otlp-preview
gracewehner Sep 18, 2025
f23320c
update version
gracewehner Sep 18, 2025
72326d7
azure-monitor-logs command
gracewehner Sep 25, 2025
24ae90f
fix disable
gracewehner Sep 30, 2025
07610a9
fixes
gracewehner Sep 30, 2025
7aae185
view diff
gracewehner Oct 1, 2025
47eabbc
feedback
gracewehner Oct 2, 2025
c12f04e
debugging
gracewehner Oct 3, 2025
0a52309
fix msi auth and http request header
gracewehner Oct 3, 2025
3962664
final fixes and all tests
gracewehner Oct 7, 2025
b6f831f
fix for live
gracewehner Oct 7, 2025
c44f8e7
fix issues
gracewehner Oct 7, 2025
63970d4
try with different file format
gracewehner Oct 7, 2025
f6b4753
linting
gracewehner Oct 7, 2025
9e20795
fix live tests to use preview flag
gracewehner Oct 7, 2025
4f235dc
linter
gracewehner Oct 7, 2025
a319963
test faillure fixes
gracewehner Oct 7, 2025
854dcc3
Merge remote-tracking branch 'upstream/main' into grwehner/otlp-preview
gracewehner Oct 7, 2025
7fa57b0
cleanup
gracewehner Oct 7, 2025
077b4b8
remove unecessary changes
gracewehner Oct 7, 2025
da23c9b
linter
gracewehner Oct 7, 2025
652855b
pass all tests
gracewehner Oct 7, 2025
48fee49
fix msi issue
gracewehner Oct 7, 2025
ecbe7a5
more linter
gracewehner Oct 7, 2025
3b71c30
revert custom changes
gracewehner Oct 8, 2025
f64ca84
fix test waiting
gracewehner Oct 8, 2025
48ed2e3
fix all commands to have a wait
gracewehner Oct 8, 2025
6f473c0
Merge remote-tracking branch 'upstream/main' into grwehner/otlp-preview
gracewehner Oct 8, 2025
d89275a
cleanup
gracewehner Oct 8, 2025
d22877d
style
gracewehner Oct 8, 2025
a2ef834
debug logging for one live test failing
gracewehner Oct 8, 2025
efeab66
remove debug logs
gracewehner Oct 8, 2025
ac774fa
linter
gracewehner Oct 8, 2025
c5f78c9
feedback
gracewehner Oct 10, 2025
2ba98d8
add extra waiting to tests
gracewehner Oct 10, 2025
67bb6fd
fix syntax
gracewehner Oct 10, 2025
19909b6
fixes
gracewehner Oct 10, 2025
4856eb0
more live test cleanup
gracewehner Oct 10, 2025
6259ba8
try to fix flaky tests
gracewehner Oct 10, 2025
48d7107
check if timing out
gracewehner Oct 10, 2025
58c52ff
last flaky test
gracewehner Oct 10, 2025
c81b044
flaky test check
gracewehner Oct 10, 2025
54de667
more debugging
gracewehner Oct 10, 2025
9a48fe1
test
gracewehner Oct 10, 2025
7ea6673
test
gracewehner Oct 10, 2025
42f2556
test
gracewehner Oct 11, 2025
711f66d
test
gracewehner Oct 11, 2025
97776a6
remove all debug logs
gracewehner Oct 13, 2025
536720b
linter
gracewehner Oct 13, 2025
99b5a17
Merge branch 'main' into grwehner/otlp-preview
gracewehner Oct 13, 2025
25faecc
remove last debug logs
gracewehner Oct 14, 2025
7e5676a
Merge branch 'main' into grwehner/otlp-preview
FumingZhang Oct 15, 2025
ec9d69e
Update src/aks-preview/HISTORY.rst
FumingZhang Oct 15, 2025
73db626
fix history.rst
gracewehner Oct 15, 2025
c3ff29b
account for portal using camelcase for omsagent
gracewehner Oct 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions src/aks-preview/HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,22 @@ To release a new version, please select a new version number (usually plus 1 to
Pending
+++++++

19.0.0b2
+++++++
* `az aks create`: Add new parameter `--enable-opentelemetry-metrics` to enable OTLP feature for metrics addon.
* `az aks update`: Add new parameter `--enable-opentelemetry-metrics` to enable OTLP feature for metrics addon.
* `az aks update`: Add new parameter `--disable-opentelemetry-metrics` to disable OTLP feature for metrics addon.
* `az aks create`: Add new parameter `--opentelemetry-metrics-port` to change the OTLP port from the default for metrics addon.
* `az aks update`: Add new parameter `--opentelemetry-metrics-port` to change the OTLP port from the default for metrics addon.
* `az aks create`: Add new parameter `--enable-opentelemetry-logs` to enable OTLP feature for logs addon.
* `az aks update`: Add new parameter `--enable-opentelemetry-logs` to enable OTLP feature for logs addon.
* `az aks update`: Add new parameter `--disable-opentelemetry-logs` to disable OTLP feature for logs addon.
* `az aks create`: Add new parameter `--opentelemetry-logs-port` to change the OTLP port from the default for logs addon.
* `az aks update`: Add new parameter `--opentelemetry-logs-port` to change the OTLP port from the default for logs addon.
* `az aks create`: Add new parameter `--enable-azure-monitor-logs` that is a wrapper to enable-addons -a monitoring.
* `az aks update`: Add new parameter `--enable-azure-monitor-logs` that is a wrapper to enable-addons -a monitoring.
* `az aks update`: Add new parameter `--disable-azure-monitor-logs` that is a wrapper to disable-addons -a monitoring.

19.0.0b1
+++++++
* [BREAKING CHANGE]: `az aks create`: remove `--enable-custom-ca-trust` and `--disable-custom-ca-trust` options
Expand Down
1 change: 1 addition & 0 deletions src/aks-preview/azext_aks_preview/_consts.py
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@

# monitoring
CONST_MONITORING_ADDON_NAME = "omsagent"
CONST_MONITORING_ADDON_NAME_CAMELCASE = "omsAgent"
CONST_MONITORING_LOG_ANALYTICS_WORKSPACE_RESOURCE_ID = "logAnalyticsWorkspaceResourceID"
CONST_MONITORING_USING_AAD_MSI_AUTH = "useAADAuth"

Expand Down
92 changes: 92 additions & 0 deletions src/aks-preview/azext_aks_preview/_help.py
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,10 @@
- gitops : enable GitOps (PREVIEW).
- azure-keyvault-secrets-provider : enable Azure Keyvault Secrets Provider addon.
- web_application_routing : enable the App Routing addon (PREVIEW). Specify "--dns-zone-resource-id" to configure DNS.
- name: --enable-azure-monitor-logs
type: bool
short-summary: Enable Azure Monitor logs for the cluster.
long-summary: This is equivalent to using "--enable-addons monitoring". Turn on Log Analytics monitoring. Uses the Log Analytics Default Workspace if it exists, else creates one. Specify "--workspace-resource-id" to use an existing workspace. If monitoring addon is enabled --no-wait argument will have no effect
- name: --disable-rbac
type: bool
short-summary: Disable Kubernetes Role-Based Access Control.
Expand Down Expand Up @@ -587,6 +591,24 @@
- name: --enable-azure-monitor-app-monitoring
type: bool
short-summary: Enable Azure Monitor Application Monitoring
- name: --enable-opentelemetry-metrics
type: bool
short-summary: Enable OpenTelemetry metrics collection. Requires Azure Monitor metrics to be enabled.
- name: --opentelemetry-metrics-port
type: int
short-summary: Port for OpenTelemetry metrics collection (default port will be used if not specified)
- name: --disable-opentelemetry-metrics
type: bool
short-summary: Disable OpenTelemetry metrics collection
- name: --enable-opentelemetry-logs
type: bool
short-summary: Enable OpenTelemetry logs collection. Requires Azure Monitor logs to be enabled.
- name: --opentelemetry-logs-port
type: int
short-summary: Port for OpenTelemetry logs collection (default port will be used if not specified)
- name: --disable-opentelemetry-logs
type: bool
short-summary: Disable OpenTelemetry logs collection
- name: --nodepool-labels
type: string
short-summary: The node labels for all node pools in this cluster. See https://aka.ms/node-labels for syntax of labels.
Expand Down Expand Up @@ -737,6 +759,16 @@
text: az aks create -g MyResourceGroup -n MyManagedCluster --enable-azuremonitormetrics
- name: Create a kubernetes cluster with Azure Monitor App Monitoring enabled
text: az aks create -g MyResourceGroup -n MyManagedCluster --enable-azure-monitor-app-monitoring
- name: Create a kubernetes cluster with OpenTelemetry metrics collection enabled
text: az aks create -g MyResourceGroup -n MyManagedCluster --enable-opentelemetry-metrics --enable-azuremonitormetrics
- name: Create a kubernetes cluster with OpenTelemetry logs collection enabled
text: az aks create -g MyResourceGroup -n MyManagedCluster --enable-opentelemetry-logs --enable-addons monitoring
- name: Create a kubernetes cluster with Azure Monitor logs enabled (shorthand)
text: az aks create -g MyResourceGroup -n MyManagedCluster --enable-azure-monitor-logs
- name: Create a kubernetes cluster with OpenTelemetry metrics on custom port
text: az aks create -g MyResourceGroup -n MyManagedCluster --enable-opentelemetry-metrics --opentelemetry-metrics-port 8888 --enable-azuremonitormetrics
- name: Create a kubernetes cluster with OpenTelemetry logs on custom port
text: az aks create -g MyResourceGroup -n MyManagedCluster --enable-opentelemetry-logs --opentelemetry-logs-port 4317 --enable-azure-monitor-logs
- name: Create a kubernetes cluster with a nodepool having ip allocation mode set to "StaticBlock"
text: az aks create -g MyResourceGroup -n MyManagedCluster --os-sku Ubuntu --max-pods MaxPodsPerNode --network-plugin azure --vnet-subnet-id /subscriptions/00000/resourceGroups/AnotherResourceGroup/providers/Microsoft.Network/virtualNetworks/MyVnet/subnets/NodeSubnet --pod-subnet-id /subscriptions/00000/resourceGroups/AnotherResourceGroup/providers/Microsoft.Network/virtualNetworks/MyVnet/subnets/PodSubnet --pod-ip-allocation-mode StaticBlock
- name: Create a kubernetes cluster with a VirtualMachines nodepool
Expand Down Expand Up @@ -961,6 +993,32 @@
- name: --disable-workload-identity
type: bool
short-summary: (PREVIEW) Disable Workload Identity addon for cluster.
- name: --enable-azure-monitor-logs
type: bool
short-summary: Enable Azure Monitor logs for the cluster.
long-summary: This is equivalent to using "az aks enable-addons -a monitoring". Enables Log Analytics monitoring for the cluster. Uses the Log Analytics Default Workspace if it exists, else creates one. Specify "--workspace-resource-id" to use an existing workspace. If monitoring addon is enabled --no-wait argument will have no effect
- name: --disable-azure-monitor-logs
type: bool
short-summary: Disable Azure Monitor logs for the cluster.
long-summary: This is equivalent to using "az aks disable-addons -a monitoring". Disables Log Analytics monitoring for the cluster.
- name: --workspace-resource-id
type: string
short-summary: The resource ID of an existing Log Analytics Workspace to use for storing monitoring data. If not specified, uses the default Log Analytics Workspace if it exists, otherwise creates one.
- name: --enable-msi-auth-for-monitoring
type: bool
short-summary: Send monitoring data to Log Analytics using the cluster's assigned identity (instead of the Log Analytics Workspace's shared key).
- name: --enable-syslog
type: bool
short-summary: Enable syslog data collection for Monitoring addon
- name: --data-collection-settings
type: string
short-summary: Path to JSON file containing data collection settings for Monitoring addon.
- name: --enable-high-log-scale-mode
type: bool
short-summary: Enable High Log Scale Mode for Container Logs.
- name: --ampls-resource-id
type: string
short-summary: Resource ID of Azure Monitor Private Link scope for Monitoring Addon.
- name: --enable-secret-rotation
type: bool
short-summary: Enable secret rotation. Use with azure-keyvault-secrets-provider addon.
Expand Down Expand Up @@ -1184,6 +1242,24 @@
- name: --disable-azure-monitor-app-monitoring
type: bool
short-summary: Disable Azure Monitor Application Monitoring
- name: --enable-opentelemetry-metrics
type: bool
short-summary: Enable OpenTelemetry metrics collection. Requires Azure Monitor metrics to be enabled.
- name: --opentelemetry-metrics-port
type: int
short-summary: Port for OpenTelemetry metrics collection (default port will be used if not specified)
- name: --disable-opentelemetry-metrics
type: bool
short-summary: Disable OpenTelemetry metrics collection
- name: --enable-opentelemetry-logs
type: bool
short-summary: Enable OpenTelemetry logs collection. Requires Azure Monitor logs to be enabled.
- name: --opentelemetry-logs-port
type: int
short-summary: Port for OpenTelemetry logs collection (default port will be used if not specified)
- name: --disable-opentelemetry-logs
type: bool
short-summary: Disable OpenTelemetry logs collection
- name: --enable-private-cluster
type: bool
short-summary: Enable private cluster for apiserver vnet integration cluster.
Expand Down Expand Up @@ -1379,8 +1455,24 @@
text: az aks update -g MyResourceGroup -n MyManagedCluster --safeguards-level Warning
- name: Update a kubernetes cluster with safeguards set to "Warning" and some namespaces excluded. Assumes azure policy addon is already enabled
text: az aks update -g MyResourceGroup -n MyManagedCluster --safeguards-level Warning --safeguards-excluded-ns ns1,ns2
- name: Enable Azure Monitor logs for a kubernetes cluster
text: az aks update -g MyResourceGroup -n MyManagedCluster --enable-azure-monitor-logs
- name: Disable Azure Monitor logs for a kubernetes cluster
text: az aks update -g MyResourceGroup -n MyManagedCluster --disable-azure-monitor-logs
- name: Update a kubernetes cluster to clear any namespaces excluded from safeguards. Assumes azure policy addon is already enabled
text: az aks update -g MyResourceGroup -n MyManagedCluster --safeguards-excluded-ns ""
- name: Enable OpenTelemetry metrics collection on an existing cluster
text: az aks update -g MyResourceGroup -n MyManagedCluster --enable-opentelemetry-metrics
- name: Enable OpenTelemetry logs collection on an existing cluster
text: az aks update -g MyResourceGroup -n MyManagedCluster --enable-opentelemetry-logs
- name: Configure OpenTelemetry metrics with custom port
text: az aks update -g MyResourceGroup -n MyManagedCluster --enable-opentelemetry-metrics --opentelemetry-metrics-port 8888
- name: Configure OpenTelemetry logs with custom port
text: az aks update -g MyResourceGroup -n MyManagedCluster --enable-opentelemetry-logs --opentelemetry-logs-port 4317
- name: Disable OpenTelemetry metrics collection on an existing cluster
text: az aks update -g MyResourceGroup -n MyManagedCluster --disable-opentelemetry-metrics
- name: Disable OpenTelemetry logs collection on an existing cluster
text: az aks update -g MyResourceGroup -n MyManagedCluster --disable-opentelemetry-logs
"""

helps['aks kollect'] = """
Expand Down
135 changes: 129 additions & 6 deletions src/aks-preview/azext_aks_preview/_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,10 @@
validate_assign_kubelet_identity,
validate_azure_keyvault_kms_key_id,
validate_azure_keyvault_kms_key_vault_resource_id,
validate_azure_monitor_and_opentelemetry_for_create,
validate_azure_monitor_and_opentelemetry_for_update,
validate_azure_monitor_logs_and_enable_addons,
validate_azure_monitor_logs_enable_disable,
validate_azuremonitorworkspaceresourceid,
validate_cluster_id,
validate_cluster_snapshot_id,
Expand Down Expand Up @@ -749,6 +753,12 @@ def load_arguments(self, _):
options_list=["--enable-addons", "-a"],
validator=validate_addons,
)
c.argument(
"enable_azure_monitor_logs",
action="store_true",
validator=validate_azure_monitor_logs_and_enable_addons,
help="Enable Azure Monitor logs for the cluster. Equivalent to '--enable-addons monitoring'."
)
c.argument("workspace_resource_id")
c.argument(
"enable_msi_auth_for_monitoring",
Expand Down Expand Up @@ -1028,9 +1038,50 @@ def load_arguments(self, _):
c.argument("ksm_metric_annotations_allow_list")
c.argument("grafana_resource_id", validator=validate_grafanaresourceid)
c.argument("enable_windows_recording_rules", action="store_true")
c.argument("enable_azure_monitor_app_monitoring", is_preview=True, action="store_true")
c.argument("enable_cost_analysis", action="store_true")
c.argument('enable_ai_toolchain_operator', is_preview=True, action='store_true')
c.argument("enable_azure_monitor_app_monitoring",
is_preview=True,
action="store_true"
)
# OpenTelemetry parameters
c.argument("enable_opentelemetry_metrics",
is_preview=True,
action="store_true",
help="Enable OpenTelemetry metrics collection",
validator=validate_azure_monitor_and_opentelemetry_for_create
)
c.argument("opentelemetry_metrics_port",
is_preview=True,
type=int,
help="Port for OpenTelemetry metrics collection"
)
c.argument("disable_opentelemetry_metrics",
is_preview=True,
action="store_true",
help="Disable OpenTelemetry metrics collection"
)
c.argument("enable_opentelemetry_logs",
options_list=["--enable-opentelemetry-logs"],
is_preview=True,
action="store_true",
help="Enable OpenTelemetry logs collection"
)
c.argument("opentelemetry_logs_port",
is_preview=True,
type=int,
help="Port for OpenTelemetry logs collection"
)
c.argument("disable_opentelemetry_logs",
is_preview=True,
action="store_true",
help="Disable OpenTelemetry logs collection"
)
c.argument("enable_cost_analysis",
action="store_true"
)
c.argument("enable_ai_toolchain_operator",
is_preview=True,
action="store_true"
)
# azure container storage
c.argument(
"enable_azure_container_storage",
Expand Down Expand Up @@ -1281,6 +1332,18 @@ def load_arguments(self, _):
is_preview=True,
)
# addons
c.argument(
"enable_azure_monitor_logs",
action="store_true",
validator=validate_azure_monitor_logs_enable_disable,
help="Enable Azure Monitor logs for the cluster. Equivalent to 'az aks enable-addons -a monitoring'."
)
# Monitoring parameters are inherited from base CLI
c.argument(
"disable_azure_monitor_logs",
action="store_true",
help="Disable Azure Monitor logs for the cluster. Equivalent to 'az aks disable-addons -a monitoring'."
)
c.argument("enable_secret_rotation", action="store_true")
c.argument("disable_secret_rotation", action="store_true")
c.argument("rotation_poll_interval")
Expand Down Expand Up @@ -1407,9 +1470,69 @@ def load_arguments(self, _):
hide=True,
),
)
c.argument("disable_azure_monitor_metrics", action="store_true")
c.argument("enable_azure_monitor_app_monitoring", action="store_true", is_preview=True)
c.argument("disable_azure_monitor_app_monitoring", action="store_true", is_preview=True)
c.argument("enable_azure_monitor_app_monitoring",
action="store_true",
is_preview=True
)
c.argument("disable_azure_monitor_app_monitoring",
action="store_true",
is_preview=True
)
# Azure Monitor logs additional parameters
c.argument("workspace_resource_id",
help="Resource ID of the Azure Log Analytics workspace to use for monitoring")
c.argument(
"enable_msi_auth_for_monitoring",
arg_type=get_three_state_flag(),
is_preview=True,
help="Enable managed identity authentication for Azure Monitor logs"
)
c.argument("enable_syslog",
arg_type=get_three_state_flag(),
is_preview=True,
help="Enable syslog collection for Azure Monitor logs")
c.argument("data_collection_settings",
is_preview=True,
help="Data collection settings for Azure Monitor logs")
c.argument("enable_high_log_scale_mode",
arg_type=get_three_state_flag(),
is_preview=True,
help="Enable high log scale mode for Azure Monitor logs")
c.argument("ampls_resource_id",
is_preview=True,
help="Resource ID of the Azure Monitor Private Link Scope to associate with the cluster")
# OpenTelemetry parameters
c.argument("enable_opentelemetry_metrics",
is_preview=True,
action="store_true",
help="Enable OpenTelemetry metrics collection",
validator=validate_azure_monitor_and_opentelemetry_for_update
)
c.argument("opentelemetry_metrics_port",
is_preview=True,
type=int,
help="Port for OpenTelemetry metrics collection"
)
c.argument("disable_opentelemetry_metrics",
is_preview=True,
action="store_true",
help="Disable OpenTelemetry metrics collection"
)
c.argument("enable_opentelemetry_logs",
is_preview=True,
action="store_true",
help="Enable OpenTelemetry logs collection"
)
c.argument("opentelemetry_logs_port",
is_preview=True,
type=int,
help="Port for OpenTelemetry logs collection"
)
c.argument("disable_opentelemetry_logs",
is_preview=True,
action="store_true",
help="Disable OpenTelemetry logs collection"
)
c.argument(
"enable_vpa",
action="store_true",
Expand Down
Loading
Loading