8.4. 提升产品的 APIcast 配置
使用 3scale operator,您可以将产品的 APIcast 配置提升到 staging 或 production。ProxyConfigPromote 自定义资源 (CR)将最新的 APIcast 配置提升到 stage 环境。另外,您还可以配置 ProxyConfigPromote CR 以提升到生产环境。
-
ProxyConfigPromote对象仅在创建时生效。创建后,它们上的任何更新都不会协调。 -
ProxyConfigPromote仅在存在实际配置更改时处理配置提升。如果没有检测到更改,proxyConfigPromote 将进入错误状态。在这个状态中,自定义资源(CR)上会显示错误消息,用户必须手动删除 CR,即使它标记为删除。
先决条件
安装的要求与常规先决条件中列出的相同, 包括:
- 已创建了一个 产品 CR。
流程
使用以下内容创建一个 YAML 文件:
apiVersion: capabilities.3scale.net/v1beta1 kind: ProxyConfigPromote metadata: name: proxyconfigpromote-sample spec: productCRName: product1-sample要将 APIcast 配置提升到生产环境,请将可选字段
spec.production设置为true:apiVersion: capabilities.3scale.net/v1beta1 kind: ProxyConfigPromote metadata: name: proxyconfigpromote-sample spec: productCRName: product1-sample production: true要在成功提升后删除
ProxyConfigPromote 对象,将可选字段spec.deleteCR设置为true:apiVersion: capabilities.3scale.net/v1beta1 kind: ProxyConfigPromote metadata: name: proxyconfigpromote-sample spec: productCRName: product1-sample deleteCR: true要检查文件的状态条件,请输入以下命令:
$ oc get proxyconfigpromote proxyconfigpromote-sample -o yaml输出应该显示状态为
Ready或Failed:apiVersion: capabilities.3scale.net/v1beta1 kind: ProxyConfigPromote metadata: name: proxyconfigpromote-sample spec: productCRName: product1-sample status: conditions: - lastTransitionTime: '2023-09-05T07:15:11Z' message: >- 3scale product has been successfully promoted, any further interactions with this CR (apart from deletion) won't be applied status: 'True' type: Ready latestStagingVersion: 1 productId: '7'apiVersion: capabilities.3scale.net/v1beta1 kind: ProxyConfigPromote metadata: name: proxyconfigpromote-sample spec: productCRName: product1-sample status: conditions: - lastTransitionTime: '2023-09-05T07:48:08Z' message: >- cannot promote to production as no product changes detected. Delete this proxyConfigPromote CR, then introduce changes to configuration, and then create a new proxyConfigPromote CR status: 'True' type: Failed latestProductionVersion: 1 latestStagingVersion: 1 productId: '6'注意如果您没有在代理配置中进行更改,您会收到 ProxyConfigPromote CR 的
Failed输出状态,其中包含以下信息:-
当提升到 stage 时,
不能提升到 staging,因为没有检测到产品更改。删除此 proxyConfigPromote CR,然后引入对配置的更改,然后创建一个新的 proxyConfigPromote CR。 -
当提升到生产环境时:
不能提升到生产环境,因为没有检测到产品更改。删除此 proxyConfigPromote CR,然后引入对配置的更改,然后创建一个新的 proxyConfigPromote CR。
按照消息中的指令完成您的过程。
-
当提升到 stage 时,
创建自定义资源:
oc create -f proxyconfigpromote-sample.yaml对于给定示例,输出为:
proxyconfigpromote.capabilities.3scale.net/proxyconfigpromote-sample created