OpenShift REST API 触发集群升级,以实现集群升级过程的自动化

OpenShift REST API 触发集群升级,以实现集群升级过程的自动化

想知道是否有人有 OpenShift 集群升级自动化的经验?

我正在研究通过 REST API 管理 OpenShift 集群升级的自动化可行性。

我的 OpenShift 集群在断开连接的环境中运行。

目前,一旦我完成了集群升级所需的准备任务,我就会通过 CLI 执行以下示例命令来触发升级:

$ oc adm upgrade --allow-explicit-upgrade=true --to-image=<registry_hostname>:<port>/ocp4.12.26/openshift@sha256:xxx --allow-upgrade-with-warnings=true --force=true

此 oc 命令或任何其他替代方案是否有相应的 REST API?

我浏览了 OpenShift REST API 文档,但没有找到太多信息。

答案1

oc命令使用 API 与 OpenShift 交互。如果您可以使用oc或完成某项操作kubectl,那么当然有一个 API 可用。


要触发升级,您需要更新ClusterVersion资源。如果您的集群有类似以下内容:

$ kubectl get clusterversion version -o yaml
apiVersion: config.openshift.io/v1
kind: ClusterVersion
metadata:
  name: version
spec:
  channel: stable-4.13
  clusterID: ...
  desiredUpdate:
    version: 4.13.13

然后要升级到,比如说,4.13.39您需要修补资源以设置spec.desiredUpdate.version4.13.39。如果您想升级到,4.14.<whatever>您还需要更新spec.channel到适当的频道名称。

您可以使用发出PATCH请求到适当的 API 端点做出这一改变。


ClusterVersion 资源的元素status将包含可用升级的列表。

请注意,您可以运行kubectloc使用来--v=8显示该工具在执行命令时发出的所有 API 请求。

相关内容