在 Go 中导入 cert-manager
cert-manager 使用 Go 编写,并使用 Go 模块。您可以将其作为 Go 模块导入,在某些情况下,这样做很好甚至鼓励这样做,但作为一项规则,我们通常建议不要导入 cert-manager。
一般来说,除了在 何时可能导入 cert-manager 下列出的情况外,cert-manager 存储库中的代码不受任何 Go 模块兼容性保证的约束。我们可以在 cert-manager 的次要或补丁版本中进行更改,甚至在公共导出的 Go 代码中进行更改。我们过去曾进行过类似的重大更改。
请注意,这不会影响运行 cert-manager。我们对兼容性的承诺是不会破坏 cert-manager 的运行时功能,我们对此非常重视。
如果你确定确实需要将 cert-manager 导入为模块,请参阅下面的模块导入路径,了解如何操作。
何时可能需要导入 cert-manager
你可能需要导入 cert-manager,如果你正在编写 Go 代码,它
- 使用 cert-manager 自定义资源,因此你想要导入
pkg/apis
下的某些内容 - 实现一个外部 DNS 解析器 Webhook,如 webhook-example 中所示
- 实现一个外部颁发者,如 sample-external-issuer 中所示
如果你认为你确实需要导入代码的其他部分,请与我们联系并与我们交谈,以便我们了解到这种需求!我们会尽力避免出现错误。
模块导入路径
对于所有支持的 cert-manager 版本,模块导入路径为 github.com/cert-manager/cert-manager
。
历史上,cert-manager 仓库是在 GitHub 上创建的,名为 https://github.com/jetstack/cert-manager
,后来迁移到了 https://github.com/cert-manager/cert-manager
。
这意味着如果你尝试使用旧版本的 cert-manager,你需要的 Go 模块导入路径可能会有所不同。
对于 cert-manager 1.8 及更高版本,请使用上面列出的新路径。
对于 1.8 之前的 cert-manager 版本,请使用旧路径:github.com/jetstack/cert-manager