Kubernetes客户端代码生成器:该代码可以仅在本地存在,而不能在用于核心生成器工作的存储库中吗?

问题描述 投票:0回答:1

我正在尝试使用k8s.io/code-generator生成客户端代码。这些是我要遵循的说明:https://itnext.io/how-to-generate-client-codes-for-kubernetes-custom-resource-definitions-crd-b4b9907769ba

我的问题是,我的go模块是否需要存在于存储库中,还是可以仅在本地系统上而不是任何存储库中的go模块上运行generate-groups.sh脚本?

我已经尝试过运行它,据我了解,需要有一个存储库,其中包含我本地go模块的所有内容。我的理解正确吗?

go kubernetes code-generation client-go
1个回答
0
投票

您可以在仅存在于本地系统上的go模块上运行kubernetes/code-generator的generate-groups.sh。代码生成器和模块都不需要位于GOPATH中。

验证

kubernetes/code-generator克隆到新目录。

$HOME/somedir
├── code-generator

创建了一个名为myrepo的项目,并对其内容进行了模拟,使其类似于sample-controller。在同一目录中这样做是为了保持简单。

somedir
├── code-generator
└── myorg.com
    └── myrepo        # mock of sample-controller
        ├── go.mod
        ├── go.sum
        └── pkg
            └── apis
                └── myorg
                    ├── register.go
                    └── v1alpha1
                        ├── doc.go
                        ├── register.go
                        └── types.go

我的go.mod看起来像

module myorg.com/myrepo

go 1.14

require k8s.io/apimachinery v0.17.4

Ran generate-group.sh-h标志指定要使用的头文件。 -o标志指定此处需要的输出基数,因为我们不在GOPATH中。

$HOME/somedir/code-generator/generate-groups.sh all myorg.com/myrepo/pkg/client myorg.com/myrepo/pkg/apis "myorg:v1alpha1" \
-h $HOME/somedir/code-generator/hack/boilerplate.go.txt \
-o $HOME/somedir

在正确位置生成的确认代码

myrepo
├── go.mod
├── go.sum
└── pkg
    ├── apis
    │   └── myorg
    │       ├── register.go
    │       └── v1alpha1
    │           ├── doc.go
    │           ├── register.go
    │           ├── types.go
    │           └── zz_generated.deepcopy.go
    └── client
        ├── clientset
        │   └── versioned
        │       ├── clientset.go
        │       ├── doc.go
        │       ├── fake
        │       ├── scheme
        │       └── typed
        ├── informers
        │   └── externalversions
        │       ├── factory.go
        │       ├── generic.go
        │       ├── internalinterfaces
        │       └── myorg
        └── listers
            └── myorg
                └── v1alpha1

来源

© www.soinside.com 2019 - 2024. All rights reserved.