connectedk8s: release v1.11.2 - #10187
Open
Ashlee Nanze (ashnanze) wants to merge 39 commits into
Open
Conversation
* forcedelete * format * add code owner * mypy
… '2025-08-01-preview' (#17)
…add E2E coverage and improve logging (#20) * add pester tests for connectedk8s cli extension * Pass the force delete param to the API call (#4) * forcedelete * format * add code owner * mypy * Parameterize for airgapped clouds (#5) * Add parameterization for the airgapped clouds * Fix azdev style * MCR path function * azdev, ruff, and mypy --------- Co-authored-by: Matthew McNeal (from Dev Box) <mmcneal@microsoft.com> * Oras client fix to work with different MCRs (#6) Co-authored-by: mmcneal <mmcneal@microsoft.com> * fix CI testcases for nodepool image issues (#8) * update errors for the config and connectivity issues (#11) * update errors * format * style * update python version to 3.13 (#12) * Update cluster diagnostics image to 1.29.3 (#7) * Update cluster diagnostics helm chart to 1.29.3 * Fix lint issues --------- Co-authored-by: bgriddaluru <bharath.griddaluru@microsoft.com> * RBAC deprecation & fix the issue * typo * fix comments * update tests * add pester tests for connectedk8s cli extension * Pass the force delete param to the API call (#4) * forcedelete * format * add code owner * mypy * fix CI testcases for nodepool image issues (#8) * update errors for the config and connectivity issues (#11) * update errors * format * style * update python version to 3.13 (#12) * rebase * fix tests * fix version * fix mypy, lint * fix test * fix test * fix test * fix test * fix test * rename test * deprecate flags * rebase * rebase * bump version for release --------- Co-authored-by: Bavneet Singh <bavneetsingh@microsoft.com> Co-authored-by: Atchut Kumar Barli <atchut@gmail.com> Co-authored-by: mcnealm13 <57726243+mcnealm13@users.noreply.github.com> Co-authored-by: Matthew McNeal (from Dev Box) <mmcneal@microsoft.com> Co-authored-by: Bavneet Singh <33008256+bavneetsingh16@users.noreply.github.com> Co-authored-by: bgriddaluru <117554445+bgriddaluru@users.noreply.github.com> Co-authored-by: bgriddaluru <bharath.griddaluru@microsoft.com> Co-authored-by: vithumma <vithumma@microsoft.com>
* add agc overrides * update gns endpoint * add indentation * fix linter error * fix ruff formatting * move overrides to it's own method * update method * update ruff formatting
* add pester tests for connectedk8s cli extension * Pass the force delete param to the API call (#4) * forcedelete * format * add code owner * mypy * Parameterize for airgapped clouds (#5) * Add parameterization for the airgapped clouds * Fix azdev style * MCR path function * azdev, ruff, and mypy --------- Co-authored-by: Matthew McNeal (from Dev Box) <mmcneal@microsoft.com> * Oras client fix to work with different MCRs (#6) Co-authored-by: mmcneal <mmcneal@microsoft.com> * fix CI testcases for nodepool image issues (#8) * update errors for the config and connectivity issues (#11) * update errors * format * style * update python version to 3.13 (#12) * Update cluster diagnostics image to 1.29.3 (#7) * Update cluster diagnostics helm chart to 1.29.3 * Fix lint issues --------- Co-authored-by: bgriddaluru <bharath.griddaluru@microsoft.com> * RBAC deprecation & fix the issue * typo * fix comments * update tests * add pester tests for connectedk8s cli extension * Pass the force delete param to the API call (#4) * forcedelete * format * add code owner * mypy * fix CI testcases for nodepool image issues (#8) * update errors for the config and connectivity issues (#11) * update errors * format * style * update python version to 3.13 (#12) * rebase * fix tests * fix version * fix mypy, lint * fix test * fix test * fix test * fix test * fix test * rename test * add pester tests for connectedk8s cli extension * Pass the force delete param to the API call (#4) * forcedelete * format * add code owner * mypy * fix CI testcases for nodepool image issues (#8) * update python version to 3.13 (#12) * changes to support gateway association/disassociation for api version '2025-08-01-preview' (#17) * [Azure RBAC] Deprecate 3P mode flags, fix Azure RBAC enablement bug, add E2E coverage and improve logging (#20) * add pester tests for connectedk8s cli extension * Pass the force delete param to the API call (#4) * forcedelete * format * add code owner * mypy * Parameterize for airgapped clouds (#5) * Add parameterization for the airgapped clouds * Fix azdev style * MCR path function * azdev, ruff, and mypy --------- Co-authored-by: Matthew McNeal (from Dev Box) <mmcneal@microsoft.com> * Oras client fix to work with different MCRs (#6) Co-authored-by: mmcneal <mmcneal@microsoft.com> * fix CI testcases for nodepool image issues (#8) * update errors for the config and connectivity issues (#11) * update errors * format * style * update python version to 3.13 (#12) * Update cluster diagnostics image to 1.29.3 (#7) * Update cluster diagnostics helm chart to 1.29.3 * Fix lint issues --------- Co-authored-by: bgriddaluru <bharath.griddaluru@microsoft.com> * RBAC deprecation & fix the issue * typo * fix comments * update tests * add pester tests for connectedk8s cli extension * Pass the force delete param to the API call (#4) * forcedelete * format * add code owner * mypy * fix CI testcases for nodepool image issues (#8) * update errors for the config and connectivity issues (#11) * update errors * format * style * update python version to 3.13 (#12) * rebase * fix tests * fix version * fix mypy, lint * fix test * fix test * fix test * fix test * fix test * rename test * deprecate flags * rebase * rebase * bump version for release --------- Co-authored-by: Bavneet Singh <bavneetsingh@microsoft.com> Co-authored-by: Atchut Kumar Barli <atchut@gmail.com> Co-authored-by: mcnealm13 <57726243+mcnealm13@users.noreply.github.com> Co-authored-by: Matthew McNeal (from Dev Box) <mmcneal@microsoft.com> Co-authored-by: Bavneet Singh <33008256+bavneetsingh16@users.noreply.github.com> Co-authored-by: bgriddaluru <117554445+bgriddaluru@users.noreply.github.com> Co-authored-by: bgriddaluru <bharath.griddaluru@microsoft.com> Co-authored-by: vithumma <vithumma@microsoft.com> * remove breaking change announcement for removed flags --------- Co-authored-by: Bavneet Singh <bavneetsingh@microsoft.com> Co-authored-by: Atchut Kumar Barli <atchut@gmail.com> Co-authored-by: mcnealm13 <57726243+mcnealm13@users.noreply.github.com> Co-authored-by: Matthew McNeal (from Dev Box) <mmcneal@microsoft.com> Co-authored-by: Bavneet Singh <33008256+bavneetsingh16@users.noreply.github.com> Co-authored-by: bgriddaluru <117554445+bgriddaluru@users.noreply.github.com> Co-authored-by: bgriddaluru <bharath.griddaluru@microsoft.com> Co-authored-by: vithumma <vithumma@microsoft.com>
* adjusting arm64 support * editing * adding * Revert k8s-extension changes from this repo * changes * changing order * fix ruff: ternary for arch, remove unused artifactTag * fix ruff format * fix mypy type: ignore comments in _utils.py * raise CLIInternalError instead of silent fallbacks in _resolve_helm_pull_target * use requests instead of oras internals for manifest resolution * add MCR anonymous bearer token auth for manifest resolution * fix MCR resolution: add Accept header, fetch child manifests for annotations
the tests passed, the typecheck and extension index failures are not relevant to this PR * switch * fixswitch * addhelm4test * specificexception
* Adding CLI changes for AGC Scenario * Adding CLI changes for AGC Scenario * remove special case for base_path, false scenario * Refactor CLI tool locations * Address mypy error * Ruff formatting
…o Agent conversion in connected clusters (#46) * [az-cli][connectedk8s][MultiCloudConnector] Allow AgentNotInstalled to Agent conversion in connected clusters
* propagate correlation-id to arc proxy * code clean up * add version infirmation * add doc * nit: fix logger statement * style check - code cleanup * remove redundant import * code clean up.
…nstrumentation, and catch-all decorato (#53) * adding telemetry updates to update unknown * Fix telemetry reporting: wrap string exceptions in Exception() and add catch-all decorator - Replace all exception='string' calls with exception=Exception('string') across custom.py, _utils.py, and _precheckutils.py so that ExceptionName in telemetry shows 'Exception' instead of 'str' - Add _telemetry_catch_all decorator to top-level command functions (create, delete, update, upgrade) to catch unhandled exceptions, log them to telemetry with proper ExceptionName/FaultType, and re-raise as CLIInternalError instead of letting them become 'UnknownError' * Fix mypy and ruff: add type annotations to _telemetry_catch_all decorator and fix import sorting * Apply ruff format to fix CI format check * Remove accidentally committed files
* fix(connectedk8s): make azdev style pass with targeted formatting and justified suppressions * fix(connectedk8s): narrow broad exception suppressions where low risk * Add rationale comments for style suppressions * Add rationale comments for exception handling in clientproxy helper * fix: ruff format clientproxyhelper/_utils.py * narrow broad-exception-caught to specific types in _precheckutils.py and _utils.py - _precheckutils.py: narrow 3 of 5 catches (KeyError/AttributeError/TypeError for watch loop, ValueError/TypeError for file writes after OSError handler) - _utils.py: remove module-level pylint disable, narrow 8 catches to specific types (ValueError/TypeError for file I/O, ValueError/KeyError for JSON parsing, TypeError/AttributeError/RecursionError for dict flattening, KeyError/TypeError for dict access), keep inline disable on 6 genuinely polymorphic catches (ARM calls, K8s API, retry loops) - _troubleshootutils.py: keep module-level disable (21 catches, deferred to follow-up) * fix: resolve all azdev style (pylint) violations to 10.00/10 - W0707 raise-missing-from: add 'from e/ex/exc' to re-raises across custom.py, _utils.py, _precheckutils.py - C0209 consider-using-f-string: convert .format() calls to f-strings in custom.py, _utils.py, _client_factory.py - R1714 consider-using-in: merge comparisons in custom.py, _precheckutils.py, _troubleshootutils.py - C0207 use-maxsplit-arg: add maxsplit=1 in custom.py - W1514 unspecified-encoding: add encoding='utf-8' to open() calls across all files - C0206 consider-using-dict-items: use .items() iteration in custom.py - C0325 superfluous-parens: remove extra parens on raise in custom.py - E1101 no-member: inline disable for HttpResponseError.response in custom.py - Module-level pylint disables for: too-many-lines, too-many-positional-arguments, too-many-statements, consider-using-with (cannot refactor without breaking API) - R0915/R0917 inline disables in _params.py, clientproxyhelper/_utils.py, clientproxyhelper/_proxylogic.py * fix: resolve flake8 E203/E122/E125/E115 formatting errors - Fix misplaced encoding='utf-8' argument formatting in multi-line open() calls - Remove misplaced pylint disable comments inside except block - Add too-many-lines disable at module level in _utils.py * style: apply ruff format to pass CI formatting check * fix: add linter exclusion for require_wait_command_if_no_wait * fix: use bare raise in ValidationError except block per review * fix: use bare raise in ArgumentUsageError except block per review
…on (#56) * Add diagnosability to helm timeouts * update logic to ensure image pulls get priority, and ensure only one fault is emitted per failure * logging changes * update error messages * review fixes * only look at secret metadata to avoid secret leak * fix unwrapped exception * Update Error Codes --------- Co-authored-by: John McCormick <mccormickjo@microsoft.com>
* Pin ruff<0.16.0 to avoid breaking default rule changes * Fix W1203: use lazy % formatting in logger.debug calls * Fix I001: sort imports alphabetically in test_utils_.py * Apply ruff format to unformatted files
* prediag
* messagefix
* logprediagerrors
* historyupdate
* duplicatestring
* test
* fix: prediagnostic telemetry improvements
- Fix empty-log NotCompleted returning Passed instead of Incomplete
- Fix double telemetry firing (job-execution-error + check-failure)
- Fix NotApplicable for all checks when pod never ran
- Fix Entra/CRD error message parsing (filter non-error lines)
- Trim multi-line error messages to first line
- Add always-save log for completed jobs
- Add console diagnostic output block
- Add State 3 telemetry for LinuxNodeExists and ClusterRoleBindings
- Add Post_Diagnostic_Precheck_Fault_Type constant
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* prompt
* test: add unit tests for prediagnostic telemetry functions
- Add test_precheckutils.py with 14 unit tests covering:
- send_prediagnostic_job_execution_error_telemetry (error type, status, reason)
- send_prediagnostic_check_failure_telemetry (check results, error extraction,
multiline trimming, non-error line filtering)
- send_post_diagnostic_precheck_failure_telemetry (error type, check name/reason)
- Use sys.modules stubs to avoid heavy runtime dependencies
- Fix code corruption in _precheckutils.py (IDE selection leaked into source)
- Remove temporary debug helper (_debug_add_extension_event)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* test: use setdefault for stubs to allow real modules in azdev CI
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* linterrors
* linterrors
* testfixes
* fix unittest
* removingunexpetedfiles
* Fix test_utils_.py: add missing knack submodule stubs
* Replace debug print() with logger.debug() in telemetry functions
* Fix telemetry corruption caused by apostrophes in telemetry payloads
The CLI telemetry client uses json.loads(data.replace(chr(39), chr(34))) which
converts apostrophes to double quotes, breaking JSON parsing and dropping
entire telemetry batches.
Changes:
- _precheckutils.py: Replace Couldn't with Could not in set_exception calls
- custom.py: Replace Couldn't/couldn't with Could not/could not in set_exception calls,
remove single quotes around 'linux' in telemetry strings
- _utils.py: Strip apostrophes from helm_error_detail before add_extension_event calls
* Move telemetry key strings to constants
Address PR review: move Context.Default.AzureCLI.onboardingErrorType and
Context.Default.AzureCLI.onboardingErrorMessage to _constants.py as
Telemetry_Onboarding_Error_Type_Key and Telemetry_Onboarding_Error_Message_Key
* Address PR #54 review comments: refactor telemetry, add comments
- Extract common _send_onboarding_telemetry_event() helper
- Refactor check_results to generic list structure with componentName/checkResult/error
- Move job status and check result strings to _constants.py
- Select newest pod by creation_timestamp to avoid stale logs
- Extract _parse_entra_check_result() and _parse_crd_check_result()
- Revert helm chart version bump (separate PR)
- Replace print() with logger.warning() in custom.py
- Add clarifying comment for DNS error strings in _utils.py
- Add comprehensive comments throughout _precheckutils.py
* Fix prediagnostic telemetry: use set_exception, encode check results in fault_type
- Replace add_extension_event with set_exception for GDPR-whitelisted fields
- Encode individual check results (dns/outbound/entra/crd) in fault_type string
- Add common _send_onboarding_telemetry_event helper
- Convert print() calls to logger.debug()/logger.info()
- Select latest pod by creationTimestamp
- Extract _parse_entra_check_result into separate function
* refactor(telemetry): structured component list for prediagnostic check results
Address bgriddaluru PR review comments #2 and #3:
- Replace string-based error extraction with structured add_extension_event
payloads containing generic component lists [{componentName, checkResult, error}]
- ADX dashboard queries no longer need custom name parsing (dnsCheck, dnsError)
- Error details extracted from diagnoser_output by component keyword matching
- Wire up send_prediagnostic_check_failure_telemetry in fetch_diagnostic_checks_results
- Keep set_exception fault_type encoding for ADX backward compatibility
* Add informational telemetry for non-2xx outbound connectivity responses
During pre-onboarding diagnostics, when an outbound connectivity check
receives a non-2xx HTTP response (4xx/5xx) that is NOT a connection-level
failure (code 000), emit an informational extension event with fault type
'prediagnostics-outbound-non2xx-response'. This preserves the existing
PASS behavior while surfacing the unexpected response codes in ADX for
monitoring and investigation.
Changes:
- _constants.py: Add Outbound_Connectivity_Non2xx_Response_Type constant
- _utils.py: Emit telemetry in 3 code paths (cluster-connect, onboarding,
troubleshoot) when response code starts with '4' or '5'
- _precheckutils.py: Improve per-check telemetry emission with structured
fault descriptions and SERVFAIL detection
- Unit tests added for all new telemetry paths
Verified in ADX: events appear with correct fault type and message
containing endpoint, code, and target information.
* Replace standalone test scripts with Pester-format PrediagnosticTelemetry.Tests.ps1
* fix: ruff lint (PIE810), ruff format, and mypy type-arg errors for prediagnostic telemetry
* fix: ruff format test_precheckutils.py and test_utils_.py
* Remove per-component set_exception loop; send single aggregate fault per onboarding failure
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Address PR review: explain 404 in Entra check docstring, replace for-loop with if-guard for single pod
* Add wheel for E2E testing
* Add pylint disable comments for new code
* Fix global statement syntax for ruff compatibility
* Apply ruff format to PR files
* fix: restore onboarding_error_type usage in helm_error_detail (lint F841)
---------
Co-authored-by: Atchut Kumar Barli <atchut@gmail.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…dpoints (#61) * Add 'Arc' keyword for --proxy-skip-range to expand Azure Arc private-link endpoints * Add unit tests for Arc proxy-skip-range keyword expansion * Add Arc keyword help text * Bump Version * Revert "Bump Version" This reverts commit 6c4f3d0. Drops the 1.10.13 -> 1.10.14 version bump from the PR; the Arc proxy-skip-range feature can be published under a batched release bump instead. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: aa3f5a60-e3b1-49b4-a4e5-5d656000d376 * Text modify * Extract Arc proxy-skip-range endpoints into a constant and simplify help text Move the Arc private-link endpoint suffixes into a shared Arc_Private_Link_Endpoints constant and consume it from get_arc_proxy_skip_range_endpoints (behavior unchanged). Simplify the --proxy-skip-range help text and fold the Arc keyword into the existing examples, dropping the dedicated private-link example blocks. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Add proxy test for the Arc keyword in --proxy-skip-range Assert that 'az connectedk8s update --proxy-skip-range Arc' expands to the Azure Arc private-link endpoints in the agent noProxy value. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Added dedup functionality and tests --------- Co-authored-by: Sai Tareesh Reddy Eppeti <seppeti@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: aa3f5a60-e3b1-49b4-a4e5-5d656000d376
…#67) * Fix pre-onboarding diagnostic checks grading NotCompleted job as Passed when partial container output is present * Update clusterdiagnosticchecks image version to 1.36.1 * Fix mypy no-any-return in get_cloud_based_domain: cast endpoints.active_directory to str before split * ruff format custom.py
# Conflicts: # src/connectedk8s/HISTORY.rst # src/connectedk8s/azext_connectedk8s/_constants.py # src/connectedk8s/azext_connectedk8s/_utils.py # src/connectedk8s/azext_connectedk8s/custom.py # src/connectedk8s/azext_connectedk8s/tests/unittests/test_utils_.py # src/connectedk8s/setup.py # src/documentdb/azext_documentdb/aaz/latest/documentdb/mongocluster/replica/__init__.py # src/k8s-extension/azext_k8s_extension/utils.py
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
microsoft-github-policy-service
Bot
requested review from
Yu Chen (jsntcy),
Julie Zhu (yanzhudd) and
Yong Zhang (yonzhan)
August 6, 2026 17:03
Contributor
|
Thank you for your contribution Ashlee Nanze (@ashnanze)! We will review the pull request and get back to you soon. |
Member
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
|
Automated sensitive-information remediation ran on this pull request.
If a credential was exposed, rotate or revoke it immediately. Detected values are never copied into this comment. ✅ Keep the redaction · ❌ Dispute the redaction GitHub only supports a fixed reaction set, so 👍 represents ✅ and 👎 represents ❌. The bot-created reactions are only poll choices. Posted by agent-assist (autonomous bug-fix pipeline). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 PR Validation — ️✔️ All clear
Description
Release of the
connectedk8sCLI extension, bumping version to1.11.2.Changes
Unknownerrors: wrap string exceptions, add missing instrumentation, and catch-all decorator for unhandled exceptions.az connectedk8s proxy.Arcto--proxy-skip-rangedefault values for Azure Arc private-link endpoints.References
AzureArcForKubernetes/connectedk8s:release-v1.11.2