首页 > 解决方案 > 以编程方式添加代理存储库并在 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 配置时自动执行此操作。我在这里阅读了一些关于使用Script API的内容。我可能会深入研究并让它发挥作用,但这似乎是一个简单问题的复杂解决方案。有没有其他可能的方法?

标签: nexus

解决方案


使用脚本执行此操作可能比我最初预期的更容易,尚未测试,但我猜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'

测试并为我工作!


推荐阅读