Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
7314319
[aks-preview] Rename OpenTelemetry metrics/logs port and enable/disab…
Jul 1, 2026
3eaef52
[aks-preview] Add OpenTelemetry gRPC ports for metrics and logs/traces
Jul 1, 2026
c4b189c
[aks-preview] Extend OTLP live tests with gRPC port coverage for logs…
Jul 2, 2026
13c8f97
[aks-preview] Fix OTLP live tests: remove rejected aksHTTPCustomFeatu…
Jul 2, 2026
5e5c6b1
[aks-preview] Exclude required OpenTelemetry option names from lint
Jul 13, 2026
0726098
[aks-preview] Don't trigger Prometheus onboarding for OTLP logs/traces
Jul 28, 2026
891a018
Merge origin/main into cbutz/aks-preview-otlp-grpc
Jul 28, 2026
1dab08b
Merge remote-tracking branch 'upstream/main' into cbutz/aks-preview-o…
Jul 30, 2026
3085e18
[aks-preview] Isolate monitoring workspaces in OTLP live tests
Jul 31, 2026
d4f5c59
[aks-preview] Fix misleading OTLP port examples in help
Jul 31, 2026
a468de3
[aks-preview] Restore AKSHTTPCustomFeatures header on OTLP live tests
Jul 31, 2026
20fb22d
[aks-preview] Use per-option deprecation for renamed OpenTelemetry flags
Aug 4, 2026
73fa986
[aks-preview] Wait for the monitoring extension between OTLP update s…
Aug 6, 2026
bd5f160
[aks-preview] Use the current flag name in aks create examples
Aug 6, 2026
f0528fc
[aks-preview] Restore the preview tag on the renamed OpenTelemetry flags
Aug 6, 2026
f33099b
[aks-preview] Build the sized deprecation through c.deprecate()
Aug 6, 2026
13f2173
Merge remote-tracking branch 'upstream/main' into cbutz/aks-preview-o…
Aug 6, 2026
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
8 changes: 7 additions & 1 deletion src/aks-preview/HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,12 @@ To release a new version, please select a new version number (usually plus 1 to
Pending
+++++++

21.0.0b15
+++++++++
* `az aks create` and `az aks update`: Add `--opentelemetry-metrics-port-grpc` and `--opentelemetry-logs-traces-port-grpc` (preview) to configure the gRPC ports for OpenTelemetry metrics and logs/traces collection, in addition to the existing HTTP/protobuf ports.
* `az aks create` and `az aks update`: Rename the OpenTelemetry parameters, keeping the previous names as deprecated aliases: `--opentelemetry-metrics-port` -> `--opentelemetry-metrics-port-http`, `--opentelemetry-logs-port` -> `--opentelemetry-logs-traces-port-http`, `--enable-opentelemetry-logs` -> `--enable-opentelemetry-logs-traces`, `--disable-opentelemetry-logs` -> `--disable-opentelemetry-logs-traces`.
* `az aks update`: Fix the OpenTelemetry logs and traces parameters (`--enable-opentelemetry-logs-traces`, `--disable-opentelemetry-logs-traces`, `--opentelemetry-logs-traces-port-http`, `--opentelemetry-logs-traces-port-grpc`) incorrectly triggering Azure Monitor Workspace (Prometheus) onboarding. Only Azure Monitor metrics and OpenTelemetry metrics parameters do so now.

21.0.0b14
+++++++++
* Skip SSH key generation/validation for `az aks create --sku automatic` so `--no-ssh-key` is no longer required for Automatic clusters.
Expand All @@ -31,7 +37,7 @@ Pending
* Vendor new SDK and bump API version to `2026-05-02-preview`.

21.0.0b10
++++++++
+++++++++
* `az aks create`: Add parameters `--system-node-subnet-id`, `--node-subnet-id` and `--enable-hosted-system` to support BYO VNet for Automatic Managed System Pool clusters.

21.0.0b9
Expand Down
76 changes: 46 additions & 30 deletions src/aks-preview/azext_aks_preview/_help.py
Original file line number Diff line number Diff line change
Expand Up @@ -630,21 +630,27 @@
- name: --enable-opentelemetry-metrics
type: bool
short-summary: Enable OpenTelemetry metrics collection. Requires Azure Monitor metrics to be enabled.
- name: --opentelemetry-metrics-port
- name: --opentelemetry-metrics-port-http
type: int
short-summary: Port for OpenTelemetry metrics collection (default port will be used if not specified)
short-summary: HTTP/protobuf port for OpenTelemetry metrics collection (default port will be used if not specified)
- name: --opentelemetry-metrics-port-grpc
type: int
short-summary: gRPC 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
- name: --enable-opentelemetry-logs-traces
type: bool
short-summary: Enable OpenTelemetry logs collection. Requires Azure Monitor logs to be enabled.
- name: --opentelemetry-logs-port
short-summary: Enable OpenTelemetry logs and traces collection. Requires Azure Monitor logs to be enabled.
- name: --opentelemetry-logs-traces-port-http
type: int
short-summary: HTTP/protobuf port for OpenTelemetry logs and traces collection (default port will be used if not specified)
- name: --opentelemetry-logs-traces-port-grpc
type: int
short-summary: Port for OpenTelemetry logs collection (default port will be used if not specified)
- name: --disable-opentelemetry-logs
short-summary: gRPC port for OpenTelemetry logs and traces collection (default port will be used if not specified)
- name: --disable-opentelemetry-logs-traces
type: bool
short-summary: Disable OpenTelemetry logs collection
short-summary: Disable OpenTelemetry logs and traces 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 @@ -839,19 +845,21 @@
- name: Create a kubernetes cluster with Azure Service Mesh enabled.
text: az aks create -g MyResourceGroup -n MyManagedCluster --enable-azure-service-mesh
- name: Create a kubernetes cluster with Azure Monitor Metrics enabled.
text: az aks create -g MyResourceGroup -n MyManagedCluster --enable-azuremonitormetrics
text: az aks create -g MyResourceGroup -n MyManagedCluster --enable-azure-monitor-metrics
- 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
text: az aks create -g MyResourceGroup -n MyManagedCluster --enable-opentelemetry-metrics --enable-azure-monitor-metrics
- name: Create a kubernetes cluster with OpenTelemetry logs and traces collection enabled
text: az aks create -g MyResourceGroup -n MyManagedCluster --enable-opentelemetry-logs-traces --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
text: az aks create -g MyResourceGroup -n MyManagedCluster --enable-opentelemetry-metrics --opentelemetry-metrics-port-http 8888 --enable-azure-monitor-metrics
- name: Create a kubernetes cluster with OpenTelemetry logs and traces on custom ports
text: az aks create -g MyResourceGroup -n MyManagedCluster --enable-opentelemetry-logs-traces --opentelemetry-logs-traces-port-http 8080 --opentelemetry-logs-traces-port-grpc 8082 --enable-azure-monitor-logs
- name: Create a kubernetes cluster with OpenTelemetry metrics on custom HTTP and gRPC ports
text: az aks create -g MyResourceGroup -n MyManagedCluster --enable-opentelemetry-metrics --opentelemetry-metrics-port-http 8888 --opentelemetry-metrics-port-grpc 8889 --enable-azure-monitor-metrics
- 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 @@ -1398,21 +1406,27 @@
- name: --enable-opentelemetry-metrics
type: bool
short-summary: Enable OpenTelemetry metrics collection. Requires Azure Monitor metrics to be enabled.
- name: --opentelemetry-metrics-port
- name: --opentelemetry-metrics-port-http
type: int
short-summary: Port for OpenTelemetry metrics collection (default port will be used if not specified)
short-summary: HTTP/protobuf port for OpenTelemetry metrics collection (default port will be used if not specified)
- name: --opentelemetry-metrics-port-grpc
type: int
short-summary: gRPC 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
- name: --enable-opentelemetry-logs-traces
type: bool
short-summary: Enable OpenTelemetry logs collection. Requires Azure Monitor logs to be enabled.
- name: --opentelemetry-logs-port
short-summary: Enable OpenTelemetry logs and traces collection. Requires Azure Monitor logs to be enabled.
- name: --opentelemetry-logs-traces-port-http
type: int
short-summary: HTTP/protobuf port for OpenTelemetry logs and traces collection (default port will be used if not specified)
- name: --opentelemetry-logs-traces-port-grpc
type: int
short-summary: Port for OpenTelemetry logs collection (default port will be used if not specified)
- name: --disable-opentelemetry-logs
short-summary: gRPC port for OpenTelemetry logs and traces collection (default port will be used if not specified)
- name: --disable-opentelemetry-logs-traces
type: bool
short-summary: Disable OpenTelemetry logs collection
short-summary: Disable OpenTelemetry logs and traces collection
- name: --enable-private-cluster
type: bool
short-summary: Enable private cluster for apiserver vnet integration cluster.
Expand Down Expand Up @@ -1654,16 +1668,18 @@
text: az aks update -g MyResourceGroup -n MyManagedCluster --disable-gateway-api
- 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: Enable OpenTelemetry logs and traces collection on an existing cluster
text: az aks update -g MyResourceGroup -n MyManagedCluster --enable-opentelemetry-logs-traces
- 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
text: az aks update -g MyResourceGroup -n MyManagedCluster --enable-opentelemetry-metrics --opentelemetry-metrics-port-http 8888
- name: Configure OpenTelemetry logs and traces with custom ports
text: az aks update -g MyResourceGroup -n MyManagedCluster --enable-opentelemetry-logs-traces --opentelemetry-logs-traces-port-http 8080 --opentelemetry-logs-traces-port-grpc 8082
- name: Configure OpenTelemetry metrics with custom HTTP and gRPC ports
text: az aks update -g MyResourceGroup -n MyManagedCluster --enable-opentelemetry-metrics --opentelemetry-metrics-port-http 8888 --opentelemetry-metrics-port-grpc 8889
- 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
- name: Disable OpenTelemetry logs and traces collection on an existing cluster
text: az aks update -g MyResourceGroup -n MyManagedCluster --disable-opentelemetry-logs-traces
"""

helps['aks kollect'] = """
Expand Down
101 changes: 92 additions & 9 deletions src/aks-preview/azext_aks_preview/_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,34 @@
)

from knack.arguments import CLIArgumentType
from knack.deprecation import Deprecated


class _SizedDeprecated(Deprecated):
"""A Deprecated option that reports a length.

knack computes the preview target with sorted(options_list, key=len). A plain Deprecated
has no __len__, so combining is_preview=True with a deprecated option name raises
TypeError. Reporting the length of the option name keeps both status tags usable and
makes the longest (current) option name the preview target.
"""

def __len__(self):
return len(self.target)


def _deprecate_option(c, target, redirect):
"""Deprecate a single option name and keep it compatible with is_preview.

Builds the Deprecated object through c.deprecate() so that the message, the object type
and the applicability checks stay identical to every other deprecated option, then only
adds the __len__ behaviour that knack needs for the preview tag.
"""
deprecated = c.deprecate(target=target, redirect=redirect)
if deprecated is not None:
deprecated.__class__ = _SizedDeprecated
return deprecated


# candidates for enumeration
# consts for AgentPool
Expand Down Expand Up @@ -1164,30 +1192,57 @@ def load_arguments(self, _):
validator=validate_azure_monitor_and_opentelemetry_for_create
)
c.argument("opentelemetry_metrics_port",
options_list=[
"--opentelemetry-metrics-port-http",
_deprecate_option(c, "--opentelemetry-metrics-port", "--opentelemetry-metrics-port-http"),
],
is_preview=True,
type=int,
help="HTTP/protobuf port for OpenTelemetry metrics collection"
)
c.argument("opentelemetry_metrics_port_grpc",
options_list=["--opentelemetry-metrics-port-grpc"],
is_preview=True,
type=int,
help="Port for OpenTelemetry metrics collection"
help="gRPC 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"],
options_list=[
"--enable-opentelemetry-logs-traces",
_deprecate_option(c, "--enable-opentelemetry-logs", "--enable-opentelemetry-logs-traces"),
],
is_preview=True,
action="store_true",
help="Enable OpenTelemetry logs collection"
help="Enable OpenTelemetry logs and traces collection"
)
c.argument("opentelemetry_logs_port",
options_list=[
"--opentelemetry-logs-traces-port-http",
_deprecate_option(c, "--opentelemetry-logs-port", "--opentelemetry-logs-traces-port-http"),
],
is_preview=True,
type=int,
help="Port for OpenTelemetry logs collection"
help="HTTP/protobuf port for OpenTelemetry logs and traces collection"
)
c.argument("opentelemetry_logs_traces_port_grpc",
options_list=["--opentelemetry-logs-traces-port-grpc"],
is_preview=True,
type=int,
help="gRPC port for OpenTelemetry logs and traces collection"
)
c.argument("disable_opentelemetry_logs",
options_list=[
"--disable-opentelemetry-logs-traces",
_deprecate_option(c, "--disable-opentelemetry-logs", "--disable-opentelemetry-logs-traces"),
],
is_preview=True,
action="store_true",
help="Disable OpenTelemetry logs collection"
help="Disable OpenTelemetry logs and traces collection"
)
c.argument("enable_cost_analysis",
action="store_true"
Expand Down Expand Up @@ -1768,29 +1823,57 @@ def load_arguments(self, _):
validator=validate_azure_monitor_and_opentelemetry_for_update
)
c.argument("opentelemetry_metrics_port",
options_list=[
"--opentelemetry-metrics-port-http",
_deprecate_option(c, "--opentelemetry-metrics-port", "--opentelemetry-metrics-port-http"),
],
is_preview=True,
type=int,
help="HTTP/protobuf port for OpenTelemetry metrics collection"
)
c.argument("opentelemetry_metrics_port_grpc",
options_list=["--opentelemetry-metrics-port-grpc"],
is_preview=True,
type=int,
help="Port for OpenTelemetry metrics collection"
help="gRPC 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-traces",
_deprecate_option(c, "--enable-opentelemetry-logs", "--enable-opentelemetry-logs-traces"),
],
is_preview=True,
action="store_true",
help="Enable OpenTelemetry logs collection"
help="Enable OpenTelemetry logs and traces collection"
)
c.argument("opentelemetry_logs_port",
options_list=[
"--opentelemetry-logs-traces-port-http",
_deprecate_option(c, "--opentelemetry-logs-port", "--opentelemetry-logs-traces-port-http"),
],
is_preview=True,
type=int,
help="HTTP/protobuf port for OpenTelemetry logs and traces collection"
)
c.argument("opentelemetry_logs_traces_port_grpc",
options_list=["--opentelemetry-logs-traces-port-grpc"],
is_preview=True,
type=int,
help="Port for OpenTelemetry logs collection"
help="gRPC port for OpenTelemetry logs and traces collection"
)
c.argument("disable_opentelemetry_logs",
options_list=[
"--disable-opentelemetry-logs-traces",
_deprecate_option(c, "--disable-opentelemetry-logs", "--disable-opentelemetry-logs-traces"),
],
is_preview=True,
action="store_true",
help="Disable OpenTelemetry logs collection"
help="Disable OpenTelemetry logs and traces collection"
)
c.argument(
"enable_vpa",
Expand Down
Loading
Loading