1.3. director Operator のカスタムリソース定義

director Operator には、オーバークラウドのリソース管理に使用できるカスタムリソース定義 (CRD) のセットが含まれます。CRD には、ハードウェアプロビジョニングとソフトウェア設定という 2 つのタイプがあります。

ハードウェアプロビジョニング CRD

openstacknetattachment (internal)
ネットワークを仮想マシンに接続するために使用される NodeNetworkConfigurationPolicy および NodeSriovConfigurationPolicy を管理します
openstacknetconfig
openstacknetattachments と openstacknets を指定して完全なネットワーク設定を記述する高レベル CRD。ノードごとに予約済みの IP/MAC アドレスのセットがステータスに反映されます。
openstackbaremetalset
特定の TripleO ロール (Compute、Storageなど) 用のベアメタルホストのセットを作成します。
openstackcontrolplane
OpenStack コントロールプレーンを作成し、関連する openstackvmsets を管理するために使用される CRD
openstacknet (internal)
以下の vmset および baremetalset リソースに IP を割り当てるために使用されるネットワークを作成します。
openstackipset (internal)
特定のネットワークとロールの一連の IP が含まれています。内部で IP アドレスを管理するために使用されます。
openstackprovisionservers
Metal3 でベアメタルプロビジョニング用のカスタムイメージを提供するために使用されます
openstackvmset
特定の TripleO ロール (Controller、Database、NetworkController など) 用に OpenShift Virtualization を使用して一連の VM を作成します。

ソフトウェア設定 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 名に相関します。

  • 複数のリソースを操作する場合は plural を使用します。

    $ oc get openstackbaremetalsets
  • 単一リソースを操作する場合は、singular を使用します。

    $ oc describe openstackbaremetalset/compute
  • CLI での操作には shortName を使用します。

    $ oc get osbmset