Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

containerservice: adding support for Custom Headers #18232

Closed

Conversation

tombuildsstuff
Copy link
Contributor

Fixes Azure/AKS#2757
Unblocks hashicorp/terraform-provider-azurerm#6793

MSFT employees can try out our new experience at OpenAPI Hub - one location for using our validation tools and finding your workflow.

Changelog

Add a changelog entry for this PR by answering the following questions:

  1. What's the purpose of the update?
    • new service onboarding
    • new API version
    • update existing version for new feature
    • update existing version to fix swagger quality issue in s360
    • Other, please clarify
  2. When are you targeting to deploy the new service/feature to public regions? Please provide the date or, if the date is not yet available, the month.
  3. When do you expect to publish the swagger? Please provide date or, the the date is not yet available, the month.
  4. If updating an existing version, please select the specific language SDKs and CLIs that must be refreshed after the swagger is published.
    • SDK of .NET (need service team to ensure code readiness)
    • SDK of Python
    • SDK of Java
    • SDK of Js
    • SDK of Go
    • PowerShell
    • CLI
    • Terraform
    • No refresh required for updates in this PR

Contribution checklist:

If any further question about AME onboarding or validation tools, please view the FAQ.

ARM API Review Checklist

Applicability: ⚠️

If your changes encompass only the following scenarios, you should SKIP this section, as these scenarios do not require ARM review.

  • Change to data plane APIs
  • Adding new properties
  • All removals

Otherwise your PR may be subject to ARM review requirements. Complete the following:

  • Check this box if any of the following apply to the PR so that label "WaitForARMFeedback" will be added automatically to begin ARM API Review. Failure to comply may result in delays to the manifest.

    • Adding a new service
    • Adding new API(s)
    • Adding a new API version
      -[ ] To review changes efficiently, ensure you are using OpenAPIHub to initialize the PR for adding a new version. More details, refer to the wiki.
  • Ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

  • If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist

If any of the following scenarios apply to the PR, request approval from the Breaking Change Review Board as defined in the Breaking Change Policy.

  • Removing API(s) in a stable version
  • Removing properties in a stable version
  • Removing API version(s) in a stable version
  • Updating API in a stable or public preview version with Breaking Change Validation errors
  • Updating API(s) in public preview over 1 year (refer to Retirement of Previews)

Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.

Please follow the link to find more details on PR review process.

@openapi-workflow-bot
Copy link

Hi, @tombuildsstuff Thanks for your PR. I am workflow bot for review process. Here are some small tips.

  • Please ensure to do self-check against checklists in first PR comment.
  • PR assignee is the person auto-assigned and responsible for your current PR reviewing and merging.
  • For specs comparison cross API versions, Use API Specs Comparison Report Generator
  • If there is CI failure(s), to fix CI error(s) is mandatory for PR merging; or you need to provide justification in PR comment for explanation. How to fix?

  • Any feedback about review process or workflow bot, pls contact swagger and tools team. vscswagger@microsoft.com

    @openapi-workflow-bot
    Copy link

    [Call for Action] To better understand Azure service dev/test scenario, and support Azure service developer better on Swagger and REST API related tests in early phase, please help to fill in with this survey https://aka.ms/SurveyForEarlyPhase. It will take 5 to 10 minutes. If you already complete survey, please neglect this comment. Thanks.

    @openapi-pipeline-app
    Copy link

    openapi-pipeline-app bot commented Mar 14, 2022

    Swagger Validation Report

    ️❌BreakingChange: 2 Errors, 0 Warnings failed [Detail]
    Rule Message
    1042 - ChangedParameterOrder The order of parameter 'parameters' was changed.
    New: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L474:9
    Old: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L474:9
    1043 - AddingOptionalParameter The optional parameter 'AKSHTTPCustomFeatures' was added in the new version.
    New: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L474:9
    ️⚠️LintDiff: 0 Warnings warning [Detail]
    The following errors/warnings exist before current PR submission:

    Only 30 items are listed, please refer to log for more details.

    Rule Message
    R2026 - AvoidAnonymousTypes Inline/anonymous models must not be used, instead define a schema with a model name in the 'definitions' section and refer to it. This allows operations to share the models.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L2820
    R2026 - AvoidAnonymousTypes Inline/anonymous models must not be used, instead define a schema with a model name in the 'definitions' section and refer to it. This allows operations to share the models.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L2913
    R2026 - AvoidAnonymousTypes Inline/anonymous models must not be used, instead define a schema with a model name in the 'definitions' section and refer to it. This allows operations to share the models.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L4087
    R4009 - RequiredReadOnlySystemData The response of operation:'ManagedClusters_Get' is defined without 'systemData'. Consider adding the systemData to the response.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L428
    R4009 - RequiredReadOnlySystemData The response of operation:'ManagedClusters_CreateOrUpdate' is defined without 'systemData'. Consider adding the systemData to the response.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L468
    R4009 - RequiredReadOnlySystemData The response of operation:'ManagedClusters_UpdateTags' is defined without 'systemData'. Consider adding the systemData to the response.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L587
    R4009 - RequiredReadOnlySystemData The response of operation:'AgentPools_Get' is defined without 'systemData'. Consider adding the systemData to the response.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L924
    R4009 - RequiredReadOnlySystemData The response of operation:'AgentPools_CreateOrUpdate' is defined without 'systemData'. Consider adding the systemData to the response.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L971
    R4009 - RequiredReadOnlySystemData The response of operation:'PrivateEndpointConnections_Get' is defined without 'systemData'. Consider adding the systemData to the response.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L1492
    R4009 - RequiredReadOnlySystemData The response of operation:'PrivateEndpointConnections_Update' is defined without 'systemData'. Consider adding the systemData to the response.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L1540
    R4010 - RequiredDefaultResponse The response is defined but without a default error response implementation.Consider adding it.'
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L1196
    R4011 - DeleteOperationResponses The delete operation is defined without a 200 or 204 error response implementation,please add it.'
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L657
    R4011 - DeleteOperationResponses The delete operation is defined without a 200 or 204 error response implementation,please add it.'
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L1103
    R4018 - OperationsApiResponseSchema The response schema of operations API '/providers/Microsoft.ContainerService/operations' does not match the ARM specification. Please standardize the schema.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L37
    R4035 - PrivateEndpointResourceSchemaValidation The private endpoint model 'PrivateLinkResourcesListResult' schema does not conform to the common type definition.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L4889
    R4037 - MissingTypeObject The schema 'OperationListResult' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L2225
    R4037 - MissingTypeObject The schema 'OperationValue' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L2238
    R4037 - MissingTypeObject The schema 'OperationValueDisplay' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L2258
    R4037 - MissingTypeObject The schema 'Resource' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L2283
    R4037 - MissingTypeObject The schema 'SubResource' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L2322
    R4037 - MissingTypeObject The schema 'TagsObject' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L2343
    R4037 - MissingTypeObject The schema 'ManagedClusterServicePrincipalProfile' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L2562
    R4037 - MissingTypeObject The schema 'ContainerServiceMasterProfile' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L2578
    R4037 - MissingTypeObject The schema 'ManagedClusterAgentPoolProfileProperties' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L2632
    R4037 - MissingTypeObject The schema '1' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L2820
    R4037 - MissingTypeObject The schema 'AgentPoolListResult' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L2881
    R4037 - MissingTypeObject The schema 'AgentPoolUpgradeSettings' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L2898
    R4037 - MissingTypeObject The schema '1' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L2913
    R4037 - MissingTypeObject The schema 'ManagedClusterWindowsProfile' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L2925
    R4037 - MissingTypeObject The schema 'ContainerServiceLinuxProfile' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L2991
    ️❌Avocado: 1 Errors, 0 Warnings failed [Detail]
    Rule Message
    UNREFERENCED_JSON_FILE The example JSON file is not referenced from the swagger file.
    readme: specification/containerservice/resource-manager/readme.md
    json: stable/2022-01-01/examples/ManagedClustersCreate_CustomHeader.json
    ️️✔️~[Staging] ApiReadinessCheck succeeded [Detail] [Expand]
    ️️✔️ModelValidation succeeded [Detail] [Expand]
    Validation passes for ModelValidation.
    ️️✔️SemanticValidation succeeded [Detail] [Expand]
    Validation passes for SemanticValidation.
    ️️✔️Cross-Version Breaking Changes succeeded [Detail] [Expand]
    There are no breaking changes.
    ️️✔️CredScan succeeded [Detail] [Expand]
    There is no credential detected.
    ️️✔️SDK Track2 Validation succeeded [Detail] [Expand]
    Validation passes for SDKTrack2Validation

    ️️✔️PrettierCheck succeeded [Detail] [Expand]
    Validation passes for PrettierCheck.
    ️❌SpellCheck: 1 Errors, 0 Warnings failed [Detail]
    Rule Message
    HowToFix Unknown word (AKSHTTP), please fix the error or add words to ./custom-words.txt
    path: Microsoft.ContainerService/stable/2022-01-01/managedClusters.json#L5665:16
    ️️✔️Lint(RPaaS) succeeded [Detail] [Expand]
    Validation passes for Lint(RPaaS).
    Posted by Swagger Pipeline | How to fix these errors?

    @ghost ghost added the customer-reported Issues that are reported by GitHub users external to the Azure organization. label Mar 14, 2022
    @ghost
    Copy link

    ghost commented Mar 14, 2022

    Thank you for your contribution tombuildsstuff! We will review the pull request and get back to you soon.

    @openapi-pipeline-app
    Copy link

    openapi-pipeline-app bot commented Mar 14, 2022

    Swagger Generation Artifacts

    ️️✔️ApiDocPreview succeeded [Detail] [Expand]
     Please click here to preview with your @microsoft account. 
    ️❌SDK Breaking Change Tracking failed [Detail]

    Breaking Changes Tracking

    azure-sdk-for-go-track2 - armcontainerservice - 0.4.0
    +	Field `CapacityReservationGroupID` of struct `ManagedClusterAgentPoolProfileProperties` has been removed
    +	Field `CapacityReservationGroupID` of struct `ManagedClusterAgentPoolProfile` has been removed
    +	Field `CurrentKubernetesVersion` of struct `ManagedClusterProperties` has been removed
    +	Field `EnableNamespaceResources` of struct `ManagedClusterProperties` has been removed
    +	Field `MessageOfTheDay` of struct `ManagedClusterAgentPoolProfileProperties` has been removed
    +	Field `MessageOfTheDay` of struct `ManagedClusterAgentPoolProfile` has been removed
    +	Field `OidcIssuerProfile` of struct `ManagedClusterProperties` has been removed
    +	Function `CloudErrorBody.MarshalJSON` has been removed
    +	Struct `CloudErrorBody` has been removed
    +	Struct `CloudError` has been removed
    +	Struct `DiagnosticsProfile` has been removed
    +	Struct `ManagedClusterOIDCIssuerProfile` has been removed
    +	Struct `MasterProfile` has been removed
    +	Struct `VMDiagnostics` has been removed
    ️✔️azure-sdk-for-python-track2 - track2_azure-mgmt-containerservice - 17.0.0
    azure-sdk-for-go - containerservice/mgmt/2022-01-01/containerservice - v62.2.0
    +	Function `ManagedClustersClient.CreateOrUpdatePreparer` parameter(s) have been changed from `(context.Context, string, string, ManagedCluster)` to `(context.Context, string, string, ManagedCluster, []string)`
    +	Function `ManagedClustersClient.CreateOrUpdate` parameter(s) have been changed from `(context.Context, string, string, ManagedCluster)` to `(context.Context, string, string, ManagedCluster, []string)`
    ️✔️azure-sdk-for-go - containerservice/mgmt/2021-10-01/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - containerservice/mgmt/2021-09-01/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - containerservice/mgmt/2021-08-01/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - containerservice/mgmt/2021-07-01/containerservice - v62.2.0
    azure-sdk-for-go - containerservice/mgmt/2021-05-01/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - containerservice/mgmt/2021-03-01/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - containerservice/mgmt/2021-02-01/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - containerservice/mgmt/2020-12-01/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - containerservice/mgmt/2020-11-01/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - containerservice/mgmt/2020-09-01/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - containerservice/mgmt/2020-07-01/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - containerservice/mgmt/2020-06-01/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - containerservice/mgmt/2020-04-01/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - containerservice/mgmt/2020-03-01/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - containerservice/mgmt/2020-02-01/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - containerservice/mgmt/2020-01-01/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - containerservice/mgmt/2019-11-01/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - containerservice/mgmt/2019-10-01/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - containerservice/mgmt/2019-08-01/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - containerservice/mgmt/2019-06-01/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - containerservice/mgmt/2019-04-30/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - containerservice/mgmt/2018-03-31/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - containerservice/mgmt/2017-09-30/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - containerservice/mgmt/2017-08-31/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - containerservice/mgmt/2017-07-01/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - preview/containerservice/mgmt/2022-01-02-preview/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - preview/containerservice/mgmt/2019-10-27-preview/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - preview/containerservice/mgmt/2019-09-30-preview/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - preview/containerservice/mgmt/2019-02-01-preview/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - preview/containerservice/mgmt/2018-09-30-preview/containerservice - v62.2.0
    ️✔️azure-sdk-for-go - preview/containerservice/mgmt/2018-08-01-preview/containerservice - v62.2.0
    ️⚠️ azure-sdk-for-python-track2 warning [Detail]
    • ⚠️Warning [Logs] Generate from 9ee9046a4f91b09633b64d603c9baa4bafa8bb70. SDK Automation 14.0.0
      command	sh scripts/automation_init.sh ../azure-sdk-for-python_tmp/initInput.json ../azure-sdk-for-python_tmp/initOutput.json
      cmderr	[automation_init.sh] WARNING: Skipping azure-nspkg as it is not installed.
      command	sh scripts/automation_generate.sh ../azure-sdk-for-python_tmp/generateInput.json ../azure-sdk-for-python_tmp/generateOutput.json
      cmderr	[automation_generate.sh]  notice
      cmderr	[automation_generate.sh] npm notice New minor version of npm available! 8.3.1 -> 8.5.4
      cmderr	[automation_generate.sh] npm notice Changelog: <https://github.com/npm/cli/releases/tag/v8.5.4>
      cmderr	[automation_generate.sh] npm notice Run `npm install -g npm@8.5.4` to update!
      cmderr	[automation_generate.sh] npm notice
    • ️✔️track2_azure-mgmt-containerservice [View full logs]  [Preview SDK Changes]
      info	[Changelog]
    ️️✔️ azure-sdk-for-java succeeded [Detail] [Expand]
    ️️✔️ azure-sdk-for-go succeeded [Detail] [Expand]
    • ️✔️Succeeded [Logs] Generate from 9ee9046a4f91b09633b64d603c9baa4bafa8bb70. SDK Automation 14.0.0
      command	sh ./eng/initScript.sh ../../../../../azure-sdk-for-go_tmp/initInput.json ../../../../../azure-sdk-for-go_tmp/initOutput.json
      command	generator automation ../../../../../azure-sdk-for-go_tmp/generateInput.json ../../../../../azure-sdk-for-go_tmp/generateOutput.json
    • ️✔️containerservice/mgmt/2022-01-01/containerservice [View full logs]  [Preview SDK Changes]
      Only show 4 items here, please refer to log for details.
      info	[Changelog] - Function `ManagedClustersClient.CreateOrUpdatePreparer` parameter(s) have been changed from `(context.Context, string, string, ManagedCluster)` to `(context.Context, string, string, ManagedCluster, []string)`
      info	[Changelog] - Function `ManagedClustersClient.CreateOrUpdate` parameter(s) have been changed from `(context.Context, string, string, ManagedCluster)` to `(context.Context, string, string, ManagedCluster, []string)`
      info	[Changelog]
      info	[Changelog] Total 2 breaking change(s), 0 additive change(s).
    • ️✔️containerservice/mgmt/2021-10-01/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️containerservice/mgmt/2021-09-01/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️containerservice/mgmt/2021-08-01/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️containerservice/mgmt/2021-07-01/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️containerservice/mgmt/2021-05-01/containerservice [View full logs
      Only show 4 items here, please refer to log for details.
      info	[Changelog] - New struct `ManagedClusterPodIdentityProvisioningError`
      info	[Changelog] - New struct `ManagedClusterPodIdentityProvisioningErrorBody`
      info	[Changelog]
      info	[Changelog] Total 1 breaking change(s), 4 additive change(s).
    • ️✔️containerservice/mgmt/2021-03-01/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️containerservice/mgmt/2021-02-01/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️containerservice/mgmt/2020-12-01/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️containerservice/mgmt/2020-11-01/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️containerservice/mgmt/2020-09-01/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️containerservice/mgmt/2020-07-01/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️containerservice/mgmt/2020-06-01/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️containerservice/mgmt/2020-04-01/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️containerservice/mgmt/2020-03-01/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️containerservice/mgmt/2020-02-01/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️containerservice/mgmt/2020-01-01/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️containerservice/mgmt/2019-11-01/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️containerservice/mgmt/2019-10-01/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️containerservice/mgmt/2019-08-01/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️containerservice/mgmt/2019-06-01/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️containerservice/mgmt/2019-04-30/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️containerservice/mgmt/2018-03-31/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️containerservice/mgmt/2017-09-30/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️containerservice/mgmt/2017-08-31/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️containerservice/mgmt/2017-07-01/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️preview/containerservice/mgmt/2022-01-02-preview/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️preview/containerservice/mgmt/2019-10-27-preview/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️preview/containerservice/mgmt/2019-09-30-preview/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️preview/containerservice/mgmt/2019-02-01-preview/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️preview/containerservice/mgmt/2018-09-30-preview/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    • ️✔️preview/containerservice/mgmt/2018-08-01-preview/containerservice [View full logs
      info	[Changelog] ### Other Changes
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 0 additive change(s).
    ️️✔️ azure-sdk-for-go-track2 succeeded [Detail] [Expand]
    • ️✔️Succeeded [Logs] Generate from 9ee9046a4f91b09633b64d603c9baa4bafa8bb70. SDK Automation 14.0.0
      command	sh ./eng/scripts/automation_init.sh ../../../../../azure-sdk-for-go_tmp/initInput.json ../../../../../azure-sdk-for-go_tmp/initOutput.json
      command	generator automation-v2 ../../../../../azure-sdk-for-go_tmp/generateInput.json ../../../../../azure-sdk-for-go_tmp/generateOutput.json
    • ️✔️armcontainerservice [View full logs]  [Preview SDK Changes] Breaking Change Detected
      info	[Changelog] ### Breaking Changes
      info	[Changelog]
      info	[Changelog] - Function `CloudErrorBody.MarshalJSON` has been removed
      info	[Changelog] - Struct `CloudError` has been removed
      info	[Changelog] - Struct `CloudErrorBody` has been removed
      info	[Changelog] - Struct `DiagnosticsProfile` has been removed
      info	[Changelog] - Struct `ManagedClusterOIDCIssuerProfile` has been removed
      info	[Changelog] - Struct `MasterProfile` has been removed
      info	[Changelog] - Struct `VMDiagnostics` has been removed
      info	[Changelog] - Field `OidcIssuerProfile` of struct `ManagedClusterProperties` has been removed
      info	[Changelog] - Field `EnableNamespaceResources` of struct `ManagedClusterProperties` has been removed
      info	[Changelog] - Field `CurrentKubernetesVersion` of struct `ManagedClusterProperties` has been removed
      info	[Changelog] - Field `MessageOfTheDay` of struct `ManagedClusterAgentPoolProfile` has been removed
      info	[Changelog] - Field `CapacityReservationGroupID` of struct `ManagedClusterAgentPoolProfile` has been removed
      info	[Changelog] - Field `MessageOfTheDay` of struct `ManagedClusterAgentPoolProfileProperties` has been removed
      info	[Changelog] - Field `CapacityReservationGroupID` of struct `ManagedClusterAgentPoolProfileProperties` has been removed
      info	[Changelog]
      info	[Changelog] ### Features Added
      info	[Changelog]
      info	[Changelog] - New const `FormatAzure`
      info	[Changelog] - New const `FormatExec`
      info	[Changelog] - New function `Format.ToPtr() *Format`
      info	[Changelog] - New function `PossibleFormatValues() []Format`
      info	[Changelog] - New field `Format` in struct `ManagedClustersClientListClusterUserCredentialsOptions`
      info	[Changelog] - New field `AKSHTTPCustomFeatures` in struct `ManagedClustersClientBeginCreateOrUpdateOptions`
      info	[Changelog]
      info	[Changelog] Total 16 breaking change(s), 6 additive change(s).
    ️⚠️ azure-sdk-for-js warning [Detail]
    • ⚠️Warning [Logs] Generate from 9ee9046a4f91b09633b64d603c9baa4bafa8bb70. SDK Automation 14.0.0
      command	sh .scripts/automation_init.sh ../azure-sdk-for-js_tmp/initInput.json ../azure-sdk-for-js_tmp/initOutput.json
      cmderr	[automation_init.sh] npm WARN deprecated read-package-tree@5.1.6: The functionality that this package provided is now in @npmcli/arborist
      cmderr	[automation_init.sh] npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
      cmderr	[automation_init.sh]  @opentelemetry/types@0.2.0: Package renamed to @opentelemetry/api, see https://github.com/open-telemetry/opentelemetry-js
      cmderr	[automation_init.sh]  created a lockfile as package-lock.json. You should commit this file.
      cmderr	[automation_init.sh] npm WARN @octokit/plugin-request-log@1.0.4 requires a peer of @octokit/core@>=3 but none is installed. You must install peer dependencies yourself.
      warn	File azure-sdk-for-js_tmp/initOutput.json not found to read
      command	sh .scripts/automation_generate.sh ../azure-sdk-for-js_tmp/generateInput.json ../azure-sdk-for-js_tmp/generateOutput.json
    • ️✔️@azure/arm-containerservice [View full logs]  [Preview SDK Changes]
      info	[Changelog] **Features**
      info	[Changelog]
      info	[Changelog]   - Interface ManagedClustersCreateOrUpdateOptionalParams has a new optional parameter akshttpCustomFeatures
      error	breakingChangeTracking is enabled, but version or changelogItem is not found in output.
    ️️✔️ azure-sdk-for-net succeeded [Detail] [Expand]
    • ️✔️Succeeded [Logs] Generate from 9ee9046a4f91b09633b64d603c9baa4bafa8bb70. SDK Automation 14.0.0
      warn	Skip initScript due to not configured
      command	sudo apt-get install -y dotnet-sdk-6.0
      command	autorest --version=2.0.4421 --csharp --reflect-api-versions --license-header=MICROSOFT_MIT_NO_VERSION --use=@microsoft.azure/autorest.csharp@2.3.82 --csharp-sdks-folder=/home/vsts/work/1/s/azure-sdk-for-net/sdk ../azure-rest-api-specs/specification/containerservice/resource-manager/readme.md
      cmderr	[Autorest] realpath(): Permission denied
      cmderr	[Autorest] realpath(): Permission denied
      cmderr	[Autorest] realpath(): Permission denied
      cmderr	[Autorest] realpath(): Permission denied
      cmderr	[Autorest] realpath(): Permission denied
      cmderr	[Autorest] realpath(): Permission denied
    • ️✔️Microsoft.Azure.Management.ContainerService [View full logs]  [Preview SDK Changes]
    ️⚠️ azure-resource-manager-schemas warning [Detail]
    • ⚠️Warning [Logs] Generate from 9ee9046a4f91b09633b64d603c9baa4bafa8bb70. Schema Automation 14.0.0
      command	.sdkauto/initScript.sh ../azure-resource-manager-schemas_tmp/initInput.json ../azure-resource-manager-schemas_tmp/initOutput.json
      cmderr	[initScript.sh]  WARN old lockfile
      cmderr	[initScript.sh] npm WARN old lockfile The package-lock.json file was created with an old version of npm,
      cmderr	[initScript.sh] npm WARN old lockfile so supplemental metadata must be fetched from the registry.
      cmderr	[initScript.sh] npm WARN old lockfile
      cmderr	[initScript.sh] npm WARN old lockfile This is a one-time fix-up, please be patient...
      cmderr	[initScript.sh] npm WARN old lockfile
      warn	File azure-resource-manager-schemas_tmp/initOutput.json not found to read
      command	.sdkauto/generateScript.sh ../azure-resource-manager-schemas_tmp/generateInput.json ../azure-resource-manager-schemas_tmp/generateOutput.json
      warn	No file changes detected after generation
    • ️✔️containerservice [View full logs
    Posted by Swagger Pipeline | How to fix these errors?

    @openapi-workflow-bot
    Copy link

    Hi @tombuildsstuff, Your PR has some issues. Please fix the CI sequentially by following the order of Avocado, semantic validation, model validation, breaking change, lintDiff. If you have any questions, please post your questions in this channel https://aka.ms/swaggersupport.

    TaskHow to fixPriority
    AvocadoFix-AvocadoHigh
    Semantic validationFix-SemanticValidation-ErrorHigh
    Model validationFix-ModelValidation-ErrorHigh
    LintDiffFix-LintDiffhigh
    If you need further help, please feedback via swagger feedback.

    @openapi-workflow-bot
    Copy link

    NewApiVersionRequired reason:

    A service’s API is a contract with customers and is represented by using the api-version query parameter. Changes such as adding an optional property to a request/response or introducing a new operation is a change to the service’s contract and therefore requires a new api-version value. This is critically important for documentation, client libraries, and customer support.

    EXAMPLE: if a customer calls a service in the public cloud using api-version=2020-07-27, the new property or operation may exist but if they call the service in a government cloud, air-gapped cloud, or Azure Stack Hub cloud using the same api-version, the property or operation may not exist. Because there is no clear relationship between the service api-version and the new property/operation, customers can’t trust the documentation and Azure customer have difficulty helping customers diagnose issues. In addition, each client library version documents the service version it supports. When an optional property or new operation is added to a service and its Swagger, new client libraries must be produced to expose this functionality to customers. Without updating the api-version, it is unclear to customers which version of a client library supports these new features.

    @openapi-workflow-bot
    Copy link

    Hi @tombuildsstuff, one or multiple breaking change(s) is detected in your PR. Please check out the breaking change(s), and provide business justification in the PR comment and @ PR assignee why you must have these change(s), and how external customer impact can be mitigated. Please ensure to follow breaking change policy to request breaking change review and approval before proceeding swagger PR review.
    Action: To initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
    If you want to know the production traffic statistic, please see ARM Traffic statistic.
    If you think it is false positive breaking change, please provide the reasons in the PR comment, report to Swagger Tooling Team via https://aka.ms/swaggerfeedback.

    @matthchr
    Copy link
    Member

    @tombuildsstuff - thanks for the energy on this topic (and for the PR).

    I'll be honest: We don't love the way we're using headers to configure feature enablement right now. It has a lot of flaws, not the least of which as you've pointed out is that it's not "officially documented" in the REST API. It also doesn't work with ARM templates, you can't always easily see what feature's you turned on after the fact, and so on (there are a lot of flaws).

    I'm not sure if you've noticed but we've recently starting publishing -preview APIs alongside the standard ones. One of the reasons for that is we're trying to tackle this problem more holistically by letting preview features get placed into the -preview API in a way that solves a lot of the above problems:

    1. It allows users to set and get feature enablement via all interfaces equally well (ARM templates, SDKs, CLI, etc)
    2. It gives us a more clear out if that feature never makes it to GA, as opposed to the ambiguous world of headers today.

    Unfortunately that means we really would like to be moving in the opposite direction here: Less headers, less support (and use) of headers, until we can eventually stop supporting them altogether (that's probably a ways off but it's the goal). Adding the headers explicitly to the API doesn't solve any of their other problems and also commits us to supporting the pattern for longer than we'd like.

    @jianyexi jianyexi assigned raych1 and unassigned jianyexi Mar 15, 2022
    @tombuildsstuff
    Copy link
    Contributor Author

    @matthchr I understand the desire to move away from this - but as these are supported today they should be documented in the Swagger? Future API versions can opt to remove this field once it's no longer used, but as this API Version supports this field it should be documented, as it's optional and isn't returned from the API - removing this isn't a breaking change.

    cc @JeffreyRichter since I've seen this a few times and I'm wondering if there's some guidance missing from the ARM docs here?

    @JeffreyRichter
    Copy link
    Member

    I don't have enough context to comment on this specific PR but I can talk to Azure's policies.
    Once we ship a stable swagger, our intent is to maintain that in perpetuity and for new api-versions to be backward compatible. More specifically, a customer should be able to adopt a new api-version and without changing ANY of their existing code their app should work as it used to. They can then modify code to leverage new features in the new api-version.
    So, if this header is in a stable swagger but expected to be removed in the future - this would be a violation of our policies.

    If a feature is being "previewed" then it should be in a preview swagger. The whole purpose of a preview swagger is to try out API design and then to respond to feedback which MAY cause breaking changes. Of course, each new preview swagger must be backward compatible with the last stable swagger.

    If a service really, really needs to make a breaking change, we have a formal policy of notifying customers of the breaking change and keeping them running as-is on the stable swaggers for at least 3 years. During this time, we hope that customers will modify their code to the api-version that is breaking. If they do not, then their app may stop working entirely (after the 3 years have expired).

    @matthchr
    Copy link
    Member

    matthchr commented Mar 15, 2022

    but as these are supported today they should be documented in the Swagger?

    As you have pointed out, them being in the Swagger implies more support than they really have. They definitely work (and are used) today. We are not planning to break them. On the other hand if the header mechanism is pulled into the Swagger then the whole mechanism is subject to the 3 year deprecation policy @JeffreyRichter alluded to. This is true even if there are no headers that actually do anything since we've committed to supporting the mechanism.

    AFAIK today headers are used to enable the following features:

    1. Using GPU VHD images
    2. Using containerd on Windows k8s <1.23
    3. Using CSI drivers on k8s 1.20 (this version of k8s is going to be deprecated in <1 month)
    4. Using the out of tree provisioner on 1.20/1.21 (k8s versions to be deprecated in ~6 months-ish)

    With the exception of item 1 in that list, every one of these already has a timeboxed lifecycle of significantly less than 3 years because the Kubernetes versions it applies to are going out of support. We aren't planning on adding any more headers to this list going forward. We are discussing what to do about the remaining item (GPU VHDs) internally and I don't have an answer for if/how that will be exposed in the future. @alexeldeib may have more details.

    My 2c is that pulling the header mechanism into the Swagger and making it an obviously official part of the API with all of the support/lifecycle implications that comes with is less desirable than just letting these headers naturally age out and moving new features through the -preview API channel.

    @JeffreyRichter
    Copy link
    Member

    Here is an MS internal link to the official Azure Retirements Document. See the section on "Addition to the policy for Non Microsoft Components".

    I believe this scenario falls into this category of retirement.

    @ghost
    Copy link

    ghost commented Apr 3, 2022

    Hi, @tombuildsstuff. Your PR has no update for 14 days and it is marked as stale PR. If no further update for over 14 days, the bot will close the PR. If you want to refresh the PR, please remove no-recent-activity label.

    @ghost
    Copy link

    ghost commented Apr 24, 2022

    Hi, @tombuildsstuff. Your PR has no update for 14 days and it is marked as stale PR. If no further update for over 14 days, the bot will close the PR. If you want to refresh the PR, please remove no-recent-activity label.

    @ghost
    Copy link

    ghost commented May 15, 2022

    Hi, @tombuildsstuff. Your PR has no update for 14 days and it is marked as stale PR. If no further update for over 14 days, the bot will close the PR. If you want to refresh the PR, please remove no-recent-activity label.

    @raych1
    Copy link
    Member

    raych1 commented Jun 10, 2022

    @tombuildsstuff , this PR is pending for your action to move on. Either get breaking change approval or revert those changes that caused breaking. Another action is to fix CI check failures.

    @tombuildsstuff
    Copy link
    Contributor Author

    @raych1 this PR is waiting on the SDK/ARM Team to decide how to proceed: #18232 (comment)

    If the API no longer supports these fields as of today then that's fine and we can close this PR, since this PR is no longer up to date - but if the API still accepts these values then the Swagger should be updated to account for this, even if the intention is to deprecate/remove support for this in a future API Version (which can be done when there's no remaining features using this method).

    @matthchr
    Copy link
    Member

    matthchr commented Jul 21, 2022

    If the API no longer supports these fields as of today then that's fine and we can close this PR, since this PR is no longer up to date - but if the API still accepts these values then the Swagger should be updated to account for this, even if the intention is to deprecate/remove support for this in a future API Version (which can be done when there's no remaining features using this method).

    As of today all 4 possible usages for these headers are deprecated. No new usages are being added. It is true that existing APIs will continue accepting the headers for the k8s versions listed above until they go out of support, but given their deprecated status we believe it doesn't make sense to add them to the stable Swagger at this time.

    @tombuildsstuff, thanks for this PR. I'm going to close it given the above status. We really appreciate the conversation that it drove here as well as internally. Please feel free to respond if you strongly disagree and we can continue the discussion. Note that hashicorp/terraform-provider-azurerm#6793 lists a bunch of headers for various features (Gen2 Vms, Ephemeral OS, containerd, Ubuntu 18.04). None of the headers for those features are supported anymore anyway (they all don't do anything)

    @matthchr matthchr closed this Jul 21, 2022
    @Vegoo89
    Copy link

    Vegoo89 commented Jul 23, 2022

    If the API no longer supports these fields as of today then that's fine and we can close this PR, since this PR is no longer up to date - but if the API still accepts these values then the Swagger should be updated to account for this, even if the intention is to deprecate/remove support for this in a future API Version (which can be done when there's no remaining features using this method).

    As of today all 4 possible usages for these headers are deprecated. No new usages are being added. It is true that existing APIs will continue accepting the headers for the k8s versions listed above until they go out of support, but given their deprecated status we believe it doesn't make sense to add them to the stable Swagger at this time. Headers for all of the

    @tombuildsstuff, thanks for this PR. I'm going to close it given the above status. We really appreciate the conversation that it drove here as well as internally. Please feel free to respond if you strongly disagree and we can continue the discussion. Note that hashicorp/terraform-provider-azurerm#6793 lists a bunch of headers for various features (Gen2 Vms, Ephemeral OS, containerd, Ubuntu 18.04). None of the headers for those features are supported anymore anyway (they all don't do anything)

    @matthchr
    Maybe it is not the right place, but I would love to know what happend to first point:

    Using GPU VHD images

    Will these images be discontinued?

    @katbyte
    Copy link

    katbyte commented Aug 11, 2022

    @matthchr - existing APIs still support these, even if deprecated, so they are valid, people are using them, and should be represented in swagger

    @alexeldeib
    Copy link
    Contributor

    Using GPU VHD images

    we're focusing on optimizing the vanilla images for latency. the behavior is very nearly identical today. the main other difference is the nvidia device plugin. that is relatively easy to deploy as an end-user, or if there's demand we can expose that via normal APIs separately.

    for bonus points: with an expanding range of skus, we need to pivot driver version based on GPU model, which defeats the purpose of the preinstalled drivers, and actually added latency in some cases :/

    @stephybun
    Copy link

    stephybun commented Feb 6, 2023

    @alexeldeib
    When will the GPU VHD image functionality be supplanted by the so called vanilla images? And by that point will all the GPU VHD images be phased out completely i.e. users will not be able to use or set them in the headers anymore?

    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    CI-BreakingChange-Go-V2 CI-FixRequiredOnFailure customer-reported Issues that are reported by GitHub users external to the Azure organization.
    Projects
    None yet
    Development

    Successfully merging this pull request may close these issues.

    Add AKSHTTPCustomFeatures header support to Swagger
    9 participants