【问题标题】:Building custom Go Plugin构建自定义 Go 插件
【发布时间】:2020-05-21 20:36:04
【问题描述】:

我正在为 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

【问题讨论】:

    标签: go kustomize


    【解决方案1】:

    就目前而言,插件很难编写和支持,因为环境应该相同,实际上只有原始构建系统才能可靠地构建插件。结果,很多像你一样的人发现他们的构建环境几乎没有什么不同。我认为这是设计的坏主意,强烈建议熟悉 Reddit 讨论 here

    【讨论】:

    • 感谢您链接此 reddit。我想知道为什么我会遇到困难,但我知道我理解它的复杂性以及这不是一个好方法的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 2021-09-20
    • 2020-09-09
    • 1970-01-01
    • 2018-12-07
    • 2019-05-15
    • 1970-01-01
    相关资源
    最近更新 更多