$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
配置证书轮换参数以替换现有证书。
您可以在 OpenShift 虚拟化安装期间在 Web 控制台中执行此操作,或者在安装后在 `HyperConverged` 自定义资源 (CR) 中执行此操作。
通过运行以下命令打开 `HyperConverged` CR
$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
编辑 `spec.certConfig` 字段,如下例所示。为避免系统超载,请确保所有值都大于或等于 10 分钟。所有值都应表示为符合 golang `ParseDuration` 格式 的字符串。
apiVersion: hco.kubevirt.io/v1beta1
kind: HyperConverged
metadata:
name: kubevirt-hyperconverged
namespace: openshift-cnv
spec:
certConfig:
ca:
duration: 48h0m0s
renewBefore: 24h0m0s (1)
server:
duration: 24h0m0s (2)
renewBefore: 12h0m0s (3)
1 | `ca.renewBefore` 的值必须小于或等于 `ca.duration` 的值。 |
2 | `server.duration` 的值必须小于或等于 `ca.duration` 的值。 |
3 | `server.renewBefore` 的值必须小于或等于 `server.duration` 的值。 |
将 YAML 文件应用到您的集群。
删除一个或多个 `certConfig` 值会导致它们恢复为默认值,除非默认值与以下条件之一冲突
`ca.renewBefore` 的值必须小于或等于 `ca.duration` 的值。
`server.duration` 的值必须小于或等于 `ca.duration` 的值。
`server.renewBefore` 的值必须小于或等于 `server.duration` 的值。
如果默认值与这些条件冲突,您将收到错误。
如果您删除以下示例中的 `server.duration` 值,则默认值 `24h0m0s` 将大于 `ca.duration` 的值,这与指定的条件冲突。
certConfig:
ca:
duration: 4h0m0s
renewBefore: 1h0m0s
server:
duration: 4h0m0s
renewBefore: 4h0m0s
这将导致以下错误消息
error: hyperconvergeds.hco.kubevirt.io "kubevirt-hyperconverged" could not be patched: admission webhook "validate-hco.kubevirt.io" denied the request: spec.certConfig: ca.duration is smaller than server.duration
错误消息仅提及第一个冲突。在继续之前,请检查所有 certConfig 值。