hidahua
在启用多集群后,更新应用所调用的接口路径为:
POST /workspaces/{workspace}/clusters/{cluster}/namespaces/{namespace}/applications/{application}
其中的cluster
路径参数就是你截图中第一行显示为必填的cluster
参数。
而在未启用多集群时,更新应用所调用的接口路径为:
POST /workspaces/{workspace}/namespaces/{namespace}/applications/{application}
并不需要填写cluster
参数。
这是由于两个接口的描述同为UpgradeApplication
,导致必填参数被合并展示了,让人误解。
指出这一点,也是为了说明,目前自动生成的接口文档还有一些局限性。
比如同样显示为必填的,请求结构体中的 cluster_id
参数,在请求结构体的类型声明中,它确实为必填项,但该字段其实是由API处理函数负责填入的,而填入该字段的值又是从URL中的application
路径参数获得的。
因此你在请求结构体中不需要填写cluster_id
字段,或者更准确地说,你在URL中填写的应用部署名(application release name)就是该cluster_id
,注意:kubectl get helmreleases
输出的name
为该部署真正的对象名称,而非release name
至于为何这个参数会被叫做cluster_id
,可能只有作者自己知道了,我注意到在应用商店这个功能的范畴中,存在两个概念,一个是应用(或应用模板),一个是应用的发布/部署实例,而应用实例是包含了对应应用模板的信息的,或许是因为这两者在代码中的命名没有很好地区分,部分地导致了现在这个较难理解的接口文档。