-
Notifications
You must be signed in to change notification settings - Fork 5.1k
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
Restructure KubernetesConfiguration directories to a suite of services #31523
base: main
Are you sure you want to change the base?
Conversation
Next Steps to MergeNext steps that must be taken to merge this PR:
|
c558dd7
to
0a823db
Compare
…up consisting of 5 services - - Flux Configuration Service (stable 2024-11-01 version) - Extensions Service (stable 2024-11-02 and preview 2024-11-02-preview version) - Private Link Scopes Service (preview 2024-11-01-preview) - Operations Service (stable 2024-11-01) - Source Control Configuration (stable version of retired service) FluxConfiguration Service includes addition of a new provider field. Signed-off-by: Dipti Pai <diptipai@microsoft.com>
0a823db
to
38a10af
Compare
Signed-off-by: Dipti Pai <diptipai@microsoft.com>
@dipti-pai what is the base version i can use for comparing the files? why there are different versions for each service? |
see also the errors from the required modelvalidation, semanticvalidation, lintdiff checks |
Signed-off-by: Dipti Pai <diptipai@microsoft.com>
I agree, let's go shorter: armextensiontypes |
@dipti-pai But currently this namespace review item seems having issue with Java
PS: after the namespace get approved, Java dev will help with a one-time config in SDK repo to get your automation green |
|
Signed-off-by: Dipti Pai <diptipai@microsoft.com>
Signed-off-by: Dipti Pai <diptipai@microsoft.com>
Signed-off-by: Dipti Pai <diptipai@microsoft.com>
I have a few questions regarding this change: Operation Method: The operation method is universally applicable to all ARM RPs. Following the principle that "services can and will version independently from each other," each service should maintain its own operation method for retrieving or listing operations. Therefore, this change incorrectly separates it into an independent service that returns operations for all services collectively. Source Control Configuration: If the Source Control Configuration is retired, it should not be included in the new spec. Can we remove it? Extension Service*: Why is the Extension Service split into two namespaces? Would it be possible to combine Extensions and ExtensionTypes into a single Extensions namespace? |
@JeffreyRichter @jhendrixMSFT then this service will have several separated module packages. each package contain part of the service's resources, which i doubt if it follows our guideline? (especially for armoperations, which is weird). |
What guidelines are you referring to? This will require the 1-time break of obsoleting monolithic sdk packages in all languages and introducing new sdk packages (one per service, not RP). For years now the sdk team has obsoleted sdk packages when a new version ships our when a service retires; we'd follow the same process to retire the old monolithic sdk package here. Lori Farleigh is the sdk pm owning this process and she aware of this specific rp and what is happening here. Arthur raises some good points. Maybe we do not need an sdk (or swaggers) for the retiring service and customers can just continue to use the old monolithic sdk as new features should not be introduced. @dipti-pai, please comment. @dipti-pai: doors it make sense to merge the extension operations together into a single service? The "operations service" is a problem. I think I need more education about it. I'm inferring from this conversation that each RP has 1 operations Operation and this returns a collection of the RPs operations? Who invokes this Operation Operation and why do they income it? Do we need it at all? Maybe we can just get rid of it in swagger/sdk? If we can't get rid of it, then how does this Operation version: whenever there is any change to the rp? And, if it returns all of the RPs operations, doors it include the api-version for each Operation? Can I get a link to the rest docs for the Operation Operation? |
@JeffreyRichter @jhendrixMSFT @ArthurMa1978 @tadelesh Thank you for all the discussions.
Please let me know if a call would help to close on these considerations. Thanks. |
I agree that we should not separate and ship SourceControlConfigurations at all
I agree that extensions should not be merged and remain as 2 separate services.
I'd still like answers to my questions about operations before we decide how best to handle this for all RP services.
…-- Jeffrey
________________________________
From: dipti-pai ***@***.***>
Sent: Thursday, November 21, 2024 11:16:22 AM
To: Azure/azure-rest-api-specs ***@***.***>
Cc: Jeffrey Richter ***@***.***>; Mention ***@***.***>
Subject: Re: [Azure/azure-rest-api-specs] Restructure KubernetesConfiguration directories to a suite of services (PR #31523)
@JeffreyRichter<https://github.com/JeffreyRichter> @jhendrixMSFT<https://github.com/jhendrixMSFT> @ArthurMa1978<https://github.com/ArthurMa1978> @tadelesh<https://github.com/tadelesh> Thank you for all the discussions.
SourceControlConfigurations is in a deprecation path from RP perspective and we do not expect any new features. If there is no requirement from the Azure Service Versioning guidelines to make this part of the new directory structure, our team is ok skipping this.
Extension and ExtensionTypes serve different personas. ExtensionTypes is a discovery API that helps the customer understand which extensions are available in which regions. We do not expect extensionTypes to be used in any automations/devops workflows. Extensions is the main API that most customers will be interacting with/including in their development workflows to manage the lifecycle of extensions. Our team discussed the modelling of these two APIs and decided they should be separate.
Operations - The reason to keep operations separate was because it is an ARM construct that returns all operations supported by an RP. We are open to suggestions here regarding best practices followed by other teams.
Please let me know if a call would help to close on these considerations. Thanks.
—
Reply to this email directly, view it on GitHub<#31523 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AARLJP7MZ7XYTGMPFVF3OZ32BYWQNAVCNFSM6AAAAABRV2K7LCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOJSGA3DGMZVG4>.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
the guideline i mentioned is one service should only have one sdk package (for go is one module). then my concerns are:
|
Chenji, I just emailed you a link to my azure service versioning document. It will clear up a lot.
I asked questions about operations operation which no one is answering.
Who calls this operation and why?
How does the rp decide what api-version it has and how does this version over time?
When it returns other operations supported by the rp, what api-version values are returned for those operations?
Can I get a link to the rest docs for this operations operation?
…-- Jeffrey
________________________________
From: Chenjie Shi ***@***.***>
Sent: Thursday, November 21, 2024 9:49:58 PM
To: Azure/azure-rest-api-specs ***@***.***>
Cc: Jeffrey Richter ***@***.***>; Mention ***@***.***>
Subject: Re: [Azure/azure-rest-api-specs] Restructure KubernetesConfiguration directories to a suite of services (PR #31523)
the guideline i mentioned is one service should only have one sdk package (for go is one module). then my concerns are:
1. i believe customer think in terms of service, so the service here means an azure service. to me, an azure service is something like compute, network, etc. but here the private link scopes, extensions, etc., is hard to recognize them as service without rp name.
2. just as we all mentioned, operations list is an operation exist in all rps. since it is for rp, it should not exist in any service sdk i believe.
3. for go module path, if we want to keep it as sdk/resourcemanager/kubernetesconfiguration/armextensiontypes, then what should customer consider of the kubernetesconfiguration part, rp or service group?
—
Reply to this email directly, view it on GitHub<#31523 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AARLJP77X3POBB6SW5INKOD2B2LVNAVCNFSM6AAAAABRV2K7LCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOJSG43TENZSGE>.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Sharing the information I found -
This doc explains the details. |
I read the doc and I also found this: https://learn.microsoft.com/en-us/rest/api/kubernetesconfiguration/operations/list?view=rest-kubernetesconfiguration-2023-05-01&tabs=HTTP The doc is interesting because it says this: This API is unique in that it is not scoped to a subscription – it is considered to be tenant-wide and should not vary based on particular subscriptions. I take away a few things from this: Since the Operations Operation is unique in that it doesn't take a subscription and I also guess that authentication is not required, this method should be on its on sdk client object anyway and not a method of a client that does require a subscription/authentication. This client could be its own separate sdk package and I suspect that practically no one would ever take a dependency on it due to this operation's uselessness. Therefore, I say that all RPs should have their own operations service with it's own docs and sdk package that will almost never be used. I guess the api-version values it accepts matches all values supported by any of the rp's services. This is just another example of how the end to end versioning for customers was never thought through, not documented well enough, and how different service teams probably implement it differently making the behavior not reliable for customers. |
This PR splits the Kubernetes Configuration Services into a service group with 5 services. The swaggers for each service group has no new changes except FluxConfiguration Service which includes addition of a new provider field. ARM changes were reviewed by ARM team and signed off in PR #30956 . The service group restructuring has been discussed with the Azure Breaking Changes Board.
These are the 5 services -
Flux Configuration Service
-- new API version: stable 2024-11-01 version
-- base version specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2024-04-01-preview/fluxconfiguration.json
Extensions Service
-- new API version: stable 2024-11-02 and preview 2024-11-02-preview version
-- base API version:
-- extensions: specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/stable/2023-05-01
-- extensionTypes: specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2023-05-01-preview/extensionTypes.json
Private Link Scopes Service
-- new API version: preview 2024-11-01-preview
-- base API version: specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2022-04-02-preview/privateLinkScopes.json
Operations Service
-- new API version: stable 2024-11-01
-- base API version: specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/stable/2023-05-01/operations.json
Source Control Configuration (stable version of retired service)
-- new API version: stable 2024-11-01
-- base API version: specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/stable/2023-05-01/kubernetesconfiguration.json
ARM (Control Plane) API Specification Update Pull Request
Tip
Overwhelmed by all this guidance? See the
Getting help
section at the bottom of this PR description.PR review workflow diagram
Please understand this diagram before proceeding. It explains how to get your PR approved & merged.
Purpose of this PR
What's the purpose of this PR? Check the specific option that applies. This is mandatory!
Due diligence checklist
To merge this PR, you must go through the following checklist and confirm you understood
and followed the instructions by checking all the boxes:
ARM resource provider contract and
REST guidelines (estimated time: 4 hours).
I understand this is required before I can proceed to the diagram Step 2, "ARM API changes review", for this PR.
Additional information
Viewing API changes
For convenient view of the API changes made by this PR, refer to the URLs provided in the table
in the
Generated ApiView
comment added to this PR. You can use ApiView to show API versions diff.Suppressing failures
If one or multiple validation error/warning suppression(s) is detected in your PR, please follow the
suppressions guide to get approval.
Getting help
Purpose of this PR
andDue diligence checklist
.write access
per aka.ms/azsdk/access#request-access-to-rest-api-or-sdk-repositoriesNext Steps to Merge
comment. It will appear within few minutes of submitting this PR and will continue to be up-to-date with current PR state.and https://aka.ms/ci-fix.
queued
state, please add a comment with contents/azp run
.This should result in a new comment denoting a
PR validation pipeline
has started and the checks should be updated after few minutes.