1.3. director Operator 的自定义资源定义

director Operator 包含一组可用于管理 overcloud 资源的自定义资源定义(CRD)。CRD 有两种类型:硬件置备和软件配置。

硬件置备 CRD

openstacknetattachment (内部)
管理 NodeNetworkConfigurationPolicy 和 NodeSriovConfigurationPolicy,用于将网络附加到虚拟机
openstacknetconfig
高级别 CRD 以指定 openstacknetattachments 和 openstacknets 来描述完整的网络配置。每个节点的保留 IP/MAC 地址集合反映在状态中。
openstackbaremetalset
为特定 TripleO 角色创建一组裸机主机(Compute、Storage 等)
openstackcontrolplane
用于创建 OpenStack control plane 和管理关联的 openstackvmsets 的 CRD
openstacknet (内部)
创建用于为 vmset 和 baremetalset 资源分配 IP 的网络
openstackipset (内部)
包含用于给定网络和角色的一组 IP。内部用于管理 IP 地址。
openstackprovisionservers
用于为使用 Metal3 进行裸机置备提供自定义镜像
openstackvmset
使用 OpenShift Virtualization 创建一组特定 TripleO 角色(Controller、数据库、NetworkController 等)

软件配置 CRD

openstackconfiggenerator
当您扩展或对自定义 ConfigMap 进行修改以进行部署时自动为部署生成 Ansible playbook
openstackconfigversion
代表一组可执行 Ansible playbook
openstackdeploy
执行一组 Ansible playbook (openstackconfigversion)
openstackclient
创建用于运行 TripleO 部署命令的 pod

查看 director Operator CRD

  • 使用 oc get crd 命令查看这些 CRD 列表:

    $ oc get crd | grep "^openstack"
  • 使用 oc describe crd 命令查看特定 CRD 的定义:

    $ oc describe crd openstackbaremetalset
    Name:         openstackbaremetalsets.osp-director.openstack.org
    Namespace:
    Labels:       operators.coreos.com/osp-director-operator.openstack=
    Annotations:  cert-manager.io/inject-ca-from: $(CERTIFICATE_NAMESPACE)/$(CERTIFICATE_NAME)
                  controller-gen.kubebuilder.io/version: v0.3.0
    API Version:  apiextensions.k8s.io/v1
    Kind:         CustomResourceDefinition
    ...

CRD 命名惯例

每个 CRD 在 spec.names 部分包含多个名称。根据您的操作上下文使用这些名称:

  • 在创建和与资源清单交互时,请使用 kind

    apiVersion: osp-director.openstack.org/v1beta1
    kind: OpenStackBaremetalSet
    ....

    资源清单中的 kind 名称与对应 CRD 中的 kind 名称相关联。

  • 与多个资源交互时,请使用 复数

    $ oc get openstackbaremetalsets
  • 与单个资源进行交互时使用 singular

    $ oc describe openstackbaremetalset/compute
  • 对于任何 CLI 互动,使用 shortName:

    $ oc get osbmset