猿问

构建自定义 Go 插件

我正在为 kustomize 创建自定义转换器。但是,我在创建最基本的 Go 插件时遇到了问题。我正在尝试在此处执行这些步骤https://github.com/kubernetes-sigs/kustomize/blob/master/docs/plugins/goPluginGuidedExample.md


我正在使用主线 kustomize 中的插件之一,即。secretsfromdatabase[1]


根据文档,我遵循的说明是:


tmpGoPath=$(mktemp -d)

GOPATH=$tmpGoPath go install sigs.k8s.io/kustomize/kustomize

GOPATH=$tmpGoPath go build -buildmode plugin -o SecretsFromDatabase.so SecretsFromDatabase.go

cp SecretsFromDatabase.so ~/.config/kustomize/plugin/mygenerators/sopsencodedsecrets/SopsEncodedSecrets

现在,当我运行 kustomize 时,出现以下错误:


Error: accumulating resources: recursed accumulation [...] fails to load: plugin.Open("$HOME/.config/kustomize/plugin/mygenerators/sopsencodedsecrets/SopsEncodedSecrets"): plugin was built with a different version of package internal/cpu

奇怪的是我在 git 中使用了与我系统上安装的版本相同的标签。


kustomize version                                                                                                                                                     tags/kustomize/v3.5.4^0

{Version:3.5.4 GitCommit:3af514fa9f85430f0c1557c4a0291e62112ab026 BuildDate:2020-01-17T14:23:25+00:00 GoOs:darwin GoArch:amd64}

[1] https://github.com/kubernetes-sigs/kustomize/tree/master/plugin/someteam.example.com/v1/secretsfromdatabase


定制化


哈士奇WWW
浏览 161回答 1
1回答

回首忆惘然

至于现在插件很难编写和支持,因为环境应该是相同的,实际上只有原始构建系统才能可靠地构建插件。结果,很多像你一样的人发现他们的构建环境几乎没有什么不同。我认为这是设计的坏主意,强烈建议在这里熟悉 Reddit 讨论
随时随地看视频慕课网APP

相关分类

Go
我要回答