9.4. 为 Red Hat OpenShift 配置 cert-manager Operator 的出口代理
				如果在 OpenShift Container Platform 中配置了集群范围的出口代理,Operator Lifecycle Manager (OLM) 会自动配置使用集群范围代理管理的 Operator。OLM 使用 HTTP_PROXY、HTTPS_PROXY、NO_PROXY 环境变量自动更新所有 Operator 的部署。
			
您可以将代理 HTTPS 连接所需的 CA 证书注入 Red Hat OpenShift 的 cert-manager Operator 中。
如果 OpenShift Container Platform 集群启用了集群范围代理,您可以将代理 HTTPS 连接所需的 CA 证书注入 Red Hat OpenShift 的 cert-manager Operator 所需的 CA 证书。
先决条件
- 
							您可以使用具有 cluster-admin角色的用户访问集群。
- 您已为 OpenShift Container Platform 启用集群范围代理。
流程
- 运行以下命令,在 - cert-manager命名空间中创建配置映射:- oc create configmap trusted-ca -n cert-manager - $ oc create configmap trusted-ca -n cert-manager- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 运行以下命令,将 OpenShift Container Platform 信任的 CA 捆绑包注入配置映射中: - oc label cm trusted-ca config.openshift.io/inject-trusted-cabundle=true -n cert-manager - $ oc label cm trusted-ca config.openshift.io/inject-trusted-cabundle=true -n cert-manager- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 运行以下命令,为 Red Hat OpenShift 更新 cert-manager Operator 的部署以使用配置映射: - oc -n cert-manager-operator patch subscription openshift-cert-manager-operator --type='merge' -p '{"spec":{"config":{"env":[{"name":"TRUSTED_CA_CONFIGMAP_NAME","value":"trusted-ca"}]}}}'- $ oc -n cert-manager-operator patch subscription openshift-cert-manager-operator --type='merge' -p '{"spec":{"config":{"env":[{"name":"TRUSTED_CA_CONFIGMAP_NAME","value":"trusted-ca"}]}}}'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 运行以下命令验证部署是否已推出: - oc rollout status deployment/cert-manager-operator-controller-manager -n cert-manager-operator && \ oc rollout status deployment/cert-manager -n cert-manager && \ oc rollout status deployment/cert-manager-webhook -n cert-manager && \ oc rollout status deployment/cert-manager-cainjector -n cert-manager - $ oc rollout status deployment/cert-manager-operator-controller-manager -n cert-manager-operator && \ oc rollout status deployment/cert-manager -n cert-manager && \ oc rollout status deployment/cert-manager-webhook -n cert-manager && \ oc rollout status deployment/cert-manager-cainjector -n cert-manager- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - deployment "cert-manager-operator-controller-manager" successfully rolled out deployment "cert-manager" successfully rolled out deployment "cert-manager-webhook" successfully rolled out deployment "cert-manager-cainjector" successfully rolled out - deployment "cert-manager-operator-controller-manager" successfully rolled out deployment "cert-manager" successfully rolled out deployment "cert-manager-webhook" successfully rolled out deployment "cert-manager-cainjector" successfully rolled out- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 运行以下命令,验证 CA 捆绑包是否已挂载为卷: - oc get deployment cert-manager -n cert-manager -o=jsonpath={.spec.template.spec.'containers[0].volumeMounts'}- $ oc get deployment cert-manager -n cert-manager -o=jsonpath={.spec.template.spec.'containers[0].volumeMounts'}- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - [{"mountPath":"/etc/pki/tls/certs/cert-manager-tls-ca-bundle.crt","name":"trusted-ca","subPath":"ca-bundle.crt"}]- [{"mountPath":"/etc/pki/tls/certs/cert-manager-tls-ca-bundle.crt","name":"trusted-ca","subPath":"ca-bundle.crt"}]- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 运行以下命令,验证 CA 捆绑包的来源是否为 - trusted-ca配置映射:- oc get deployment cert-manager -n cert-manager -o=jsonpath={.spec.template.spec.volumes}- $ oc get deployment cert-manager -n cert-manager -o=jsonpath={.spec.template.spec.volumes}- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - [{"configMap":{"defaultMode":420,"name":"trusted-ca"},"name":"trusted-ca"}]- [{"configMap":{"defaultMode":420,"name":"trusted-ca"},"name":"trusted-ca"}]- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow