想知道是否有人有 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.version
为4.13.39
。如果您想升级到,4.14.<whatever>
您还需要更新spec.channel
到适当的频道名称。
您可以使用发出PATCH
请求到适当的 API 端点做出这一改变。
ClusterVersion 资源的元素status
将包含可用升级的列表。
请注意,您可以运行kubectl
或oc
使用来--v=8
显示该工具在执行命令时发出的所有 API 请求。