11.4. 将虚拟机模板部署到自定义命名空间

红帽提供在 openshift 命名空间中安装的预配置虚拟机模板。默认情况下,ssp-operator 将虚拟机模板部署到 openshift 命名空间。openshift 命名空间中的模板可公开供所有用户使用。这些模板列在不同操作系统的 VirtualizationTemplates 页面中。

11.4.1. 为模板创建自定义命名空间

您可以创建一个自定义命名空间,用于部署虚拟机模板,供具有访问这些模板权限的任何人使用。要将模板添加到自定义命名空间,请编辑 HyperConverged 自定义资源(CR),将 commonTemplatesNamespace 添加到 spec,并为虚拟机模板指定自定义命名空间。修改了 HyperConverged CR 后,ssp-operator 会填充自定义命名空间中的模板。

先决条件

  • 安装 OpenShift Container Platform CLI oc
  • 以具有 cluster-admin 权限的用户身份登录。

步骤

  • 使用以下命令创建自定义命名空间:

    $ oc create namespace <mycustomnamespace>

11.4.2. 将模板添加到自定义命名空间中

默认情况下,ssp-operator 将虚拟机模板部署到 openshift 命名空间。openshift 命名空间中的模板对所有用户都公开。当创建自定义命名空间并添加到该命名空间中时,您可以修改或删除 openshift 命名空间中的虚拟机模板。要将模板添加到自定义命名空间,请编辑包含 ssp-operatorHyperConverged 自定义资源(CR)。

步骤

  1. 查看 openshift 命名空间中可用的虚拟机模板列表。

    $ oc get templates -n openshift
  2. 运行以下命令,在默认编辑器中编辑 HyperConverged CR:

    $ oc edit hco -n openshift-cnv kubevirt-hyperconverged
  3. 查看自定义命名空间中可用的虚拟机模板列表。

    $ oc get templates -n customnamespace
  4. 添加 commonTemplatesNamespace 属性并指定自定义命名空间。Example:

    apiVersion: hco.kubevirt.io/v1beta1
    kind: HyperConverged
    metadata:
      name: kubevirt-hyperconverged
    spec:
      commonTemplatesNamespace: customnamespace 1
    1
    用于部署模板的自定义命名空间。
  5. 保存更改并退出编辑器。ssp-operator 将默认 openshift 命名空间中存在的虚拟机模板添加到自定义命名空间中。

11.4.2.1. 从自定义命名空间中删除模板

要从自定义命名空间中删除虚拟机模板,请从 HyperConverged 自定义资源(CR)中删除 commonTemplateNamespace 属性,并从那个自定义命名空间中删除每个模板。

步骤

  1. 运行以下命令,在默认编辑器中编辑 HyperConverged CR:

    $ oc edit hco -n openshift-cnv kubevirt-hyperconverged
  2. 删除 commonTemplateNamespace 属性。

    apiVersion: hco.kubevirt.io/v1beta1
    kind: HyperConverged
    metadata:
      name: kubevirt-hyperconverged
    spec:
      commonTemplatesNamespace: customnamespace 1
    1
    要删除的 commonTemplatesNamespace 属性。
  3. 从已删除的自定义命名空间中删除特定模板。

    $ oc delete templates -n customnamespace <template_name>

验证

  • 验证模板是否已从自定义命名空间中删除。

    $ oc get templates -n customnamespace

11.4.2.2. 其他资源