第 12 章 使用 director Operator 为公共端点部署 TLS

使用 TLS 部署 overcloud,为 RHOSP Director Operator 创建公共端点 IP 或 DNS 名称。

前提条件

  • OpenShift Container Platform 集群可以正常工作。
  • 您已正确安装了 director Operator。
  • 您已在工作站上安装了 oc 命令行工具。

12.1. 用于公共端点 IP 地址的 TLS

要引用公共端点 IP 地址,请在 openstackclient pod 中添加证书。

前提条件

流程

  1. 创建 ConfigMap 以存储 CA 证书。ConfigMap 是用于使用 OpenStackControlPlane 对象将 CA 证书添加到 openstackclient pod 的接口:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: cacerts
      namespace: openstack
    data:
     local_CA: |
        -----BEGIN CERTIFICATE-----
        …
       -----END CERTIFICATE-----
      another_CA: |
        -----BEGIN CERTIFICATE-----
        …
       -----END CERTIFICATE-----
  2. 创建 OpenStackControlPlane 并引用 ConfigMap

    apiVersion: osp-director.openstack.org/v1beta2
    kind: OpenStackControlPlane
    metadata:
      name: <overcloud>
      namespace: openstack
    spec:
      caConfigMap: cacerts
    • <overcloud > 替换为您的堆栈的名称。
  3. ~/custom_environment_files 目录中,创建一个名为 tls-certs.yaml 的文件,其中包含使用 SSLCertificateSSLIntermediateCertificateSSLKeyCAMap 参数为部署生成的证书。

    注意

    有关创建证书文件的更多信息,请参阅启用 SSL/TLS

  4. 更新 heatEnvConfigMap 以添加 tls-certs.yaml 文件:

    $ oc create configmap -n openstack heat-env-config --from-file=~/custom_environment_files/ --dry-run=client -o yaml | oc apply -f -
  5. 创建 OpenStackConfigGenerator 并添加所需的 heatEnvs 配置文件,以便为公共端点 IP 配置 TLS:

    apiVersion: osp-director.openstack.org/v1beta1
    kind: OpenStackConfigGenerator
    …
    spec:
      …
      heatEnvs:
        - ssl/tls-endpoints-public-ip.yaml
        - ssl/enable-tls.yaml
      …
      heatEnvConfigMap: heat-env-config
      tarballConfigMap: tripleo-tarball-config
  6. OpenStackConfigGenerator 和一个新的 OpenStackConfigVersion 被创建,使用 OpenStackDeploy 资源针对 overcloud 运行 Ansible playbook: