Menu Close

4.5.2.2. 创建一个项目

使用 Operator SDK CLI 创建名为 nginx-operator 的项目。

流程

  1. 为项目创建一个目录:

    $ mkdir -p $HOME/projects/nginx-operator
  2. 进入该目录:

    $ cd $HOME/projects/nginx-operator
  3. 使用 helm 插件运行 operator-sdk init 命令以初始化项目:

    $ operator-sdk init \
        --plugins=helm \
        --domain=example.com \
        --group=demo \
        --version=v1 \
        --kind=Nginx
    注意

    默认情况下,helm 插件使用样板 Helm Chart 初始化项目。您可以使用其他标记(如 --helm-chart 标志)使用现有 Helm chart 初始化项目。

    init 命令创建 nginx-operator 项目,专门用于监视 API 版本为 example.com/v1 和 kind Nginx 的资源。

  4. 对于基于 Helm 的项目,init 命令根据 chart 的默认清单部署的资源,在 config/rbac/role.yaml 文件中生成 RBAC 规则。验证此文件生成的规则是否满足 Operator 的权限要求。
4.5.2.2.1. 现有 Helm chart

您可以使用以下标记,而不是使用样板 Helm Chart 创建项目,而是使用现有 chart(可以从本地文件系统或远程 Chart 仓库中)使用现有 chart:

  • --helm-chart
  • --helm-chart-repo
  • --helm-chart-version

如果指定了 --helm-chart 标志,--group--version--kind 标志将变为可选。如果保留未设置,则使用以下默认值:

标记

--domain

my.domain

--group

charts

--version

v1

--kind

从指定的 chart 中分离

如果 --helm-chart 标志指定本地 chart 归档,如 example-chart-1.2.0.tgz 或目录,则 chart 被验证并解包或复制到项目中。否则,Operator SDK 会尝试从远程存储库中获取 chart。

如果没有通过 --helm-chart-repo 标志指定自定义存储库 URL,则支持以下 chart 引用格式:

格式描述

<repo_name>/<chart_name>

从名为 <repo_name> 的 helm chart 中获取名为 <chart_name> 的 Helm chart,如 $HELM_HOME/repositories/repositories.yaml 文件指定。使用 helm repo add 命令来配置此文件。

<url>

通过指定的 URL 获取 Helm Chart 归档。

如果自定义仓库 URL 由 --helm-chart-repo 指定,则支持以下 chart 引用格式:

格式描述

<chart_name>

在由 --helm-chart-repo URL 值指定的 Helm Chart 仓库中获取名为 <chart_name> 的 Helm Chart。

如果 --helm-chart-version 标志未设置,Operator SDK 会获取最新可用的 Helm Chart 版本。否则,它会获取指定的版本。当使用 --helm-chart 标记指定一个特定版本(例如一个本地路径或 URL)的 chart 时,--helm-chart-version 标志不会被使用。

如需更多详细信息和示例,请运行:

$ operator-sdk init --plugins helm --help