以编程方式添加代理存储库并在 Nexus 中编辑存储库组(Helm Chart)

Programmatically add Proxy Repositories and edit a Repository group in Nexus (Helm Chart)

我正在 Kubernetes 集群上自动构建我们的开发环境(prow、tekton、kaniko、nexus、vault 等)。这样我就可以在需要时在不同的 Kuberentes 集群上快速重建开发环境。我正在使用 Jenkins X 真的很棒!

我使用的 Nexus 存储库服务器是从 helm chart 构建的。为了让我的应用程序能够开箱即用,只需与我们的 Nexus 服务器通信,我需要添加另外两个不在 maven-central 中的 Nexus (mvn) 存储库,并将它们添加到 maven-group。

这在 Nexus 中很容易做到 UI。但是,我想在提供 helm chart 时自动执行此操作。我读过一些东西 here about using the Script API。我可能会深入研究并让它发挥作用,但这似乎是一个简单问题的复杂解决方案。有没有可能的替代方法?

使用脚本执行此操作可能比我原先预想的更容易,尚未测试,但我想 create-repos.json 可能看起来像这样:

{
    "name": "create-repos",
    "type": "groovy",
    "content": "repository.createMavenProxy('proxy-foo','https://foo.example.com/maven-group'); repository.createMavenProxy('proxy-bar', 'https://bar.example.com/maven-group'); repository.createMavenGroup('foobar-group', ['maven-public', 'proxy-foo', 'proxy-bar'], 'default');"
}

创建后,使用一些 shell 命令上传、运行 和删除脚本:

curl -v -X POST -u admin:admin123 --header "Content-Type: application/json" \
    'http://nexus.jx.cluster/service/rest/v1/script' -d @create-repos.json
curl -v -X POST -u admin:admin123 --header "Content-Type: text/plain" \
    'http://nexus.jx.cluster/service/rest/v1/script/create-repos/run'
curl -v -X DELETE -u admin:admin123 \
    'http://nexus.jx.cluster/service/rest/v1/script/create-repos'

经过测试并为我工作!