Open lawrencegripper opened 6 years ago
I can confirm the same behavior.
GET /subscriptions/<sub id>/resourcegroups/<rg>/providers/Microsoft.Network/frontdoors/<frontdoor name>/backendPools?api-version=2018-08-01 HTTP/1.1
Host: management.azure.com
Authorization: Bearer eyJ0eXA..POGwA
Cache-Control: no-cache
{
"error": {
"code": "InvalidResourceType",
"message": "The resource type is invalid."
}
}
Thanks @sabbour glad to know its not just me missing something. @marstr Are they're anymore details you need on this one or is it case of waiting for a response from the frontdoor team now?
Waiting on the frontdoor team. They should get looped in automatically with the labels I just added.
Removing my assignment because this issue is triaged
@sabbour I found a workaround but it doesn't seem to behave quite right for my scenario. However, it may be useful to you, in this PR I move to using the FrontDoorsClient
not FrontDoorClient
this allows you to GET
and PUT
the entire Frontdoor state in one call rather than talking to the subresources. I talk about the issue I see with stale reads in the PR details.
Hi, Any update on this issue?
@marstr has this been seen by the frontdoor team?
I'm not sure of the current status. Looks like the current assignees are Network team members. I've been transitioned onto a different team, so I'm not in the day-to-day loop here.
Ah sorry missed the assignees, @gmainar / @jmelvinwork do you have any update on this Azure Front Door API issue?
I have moved to another team. Please follow up with @johncrane .
Is the Front Door team not using Github? Could we please get some attention to this issue, it's blocking a welcomed implementation of an Ingress controller for Kubernetes.
Hello, this issue has been recently brought to the attention of the Front Door team.
Front Door recently corrected their SDK and documentation to remove CRUD on these sub-resources. Updates to Front Door must be invoked on the entire Front Door object.
Unfortunately, the old SDK generated with these API will continue to have these sub-fields, causing confusion among customers.
How can this API support writing from multiple user? Say you have two machines which are updating the same frontdoor instance, as they have to put the whole object it's likely they'll overwrite each other's changes.
Do you support an etag
or updateif
or patch
?
You are correct. If you have two machines updating the same front door instance, the update operations will happen in series and the last writer will win.
We currently do not support etag or updateif or patch.
I had a bit of a play and this is likely to effect users who make updates in the portal too.
When I do an update in the portal PUT
's the whole frontdoor resource. If I've edited routes
and another admin edits backend rules
we'd trample on each others changes rather than see an error. Feels like that is going to hurt someone.
Are there any plans to bring back CRUD functionality to these subresources? We currently have several microsites each owning their own IAC. In the current scenario they cannot independently add their own backend pools/routes/front ends so instead we are forced to have a central IAC repo for front door that must be kept up to date with knowledge of all products which is quite counter productive.
This is a huge blocker for my team when thinking of using this product. Is there any plan to have machines register independently to frontdoor?
Hi,
I'm using the Go SDK for Azure here https://github.com/lawrencegripper/azurefrontdoor-ingress to talk to Azure Frontdoor.
I see errors when using any of the individual resource clients. An
InvalidResourceType
response is returned when attempting to update/get or list the following:/Microsoft.Network/Frontdoors/lgtestfrontdoor/LoadBalancingSettings
/Microsoft.Network/Frontdoors/lgtestfrontdoor/backendPools
/Microsoft.Network/Frontdoors/lgtestfrontdoor/healthProbeSettings
Here is a quick example, the behavior isn't limited to the Go SDK as attempting to browse these resources using
resources.microsoft.com
also returns the same errors.Response
Sample from GOSDK with HTTP Traces on