java 是否有办法根据同一个存储库中的代码目录路径,使用不同的Kubernetes配置分别进行构建?

enxuqcxy  于 2023-01-07  发布在  Java
关注(0)|答案(1)|浏览(109)

我不知道该如何表达这个问题,所以我道歉,如果这个问题的标题没有意义给你。
由于各种历史原因,我有多个团队参与同一个代码库,它服务于多个服务端点。目前,所有团队的部署和发布都是一起完成的,这造成了大量的混乱。
我想达到这样的状态:团队A和B仍然可以共享相同的代码库,但他们可以使用不同的Kubernetes命名空间分别部署,例如:

  • A组的代码都在com/mycompany/team_a下,B组的代码都在com/mycompany/team_b
  • 在存储库中的某个地方有一个配置来执行Map:
  • com/mycompany/team_a/* =〉config_team_a.yaml,具有Kubernetes配置,名称空间可能为TeamA/ServiceA
  • com/mycompany/team_b/* =〉名称空间为TeamB/ServiceBconfig_team_b.yaml

这样他们就可以单独构建映像,当然也可以单独部署。

vh0rcniy

vh0rcniy1#

如果我说错了,请纠正我,但从对您的问题的描述来看,您实际上有两个问题:

  • 事实上,您在同一个存储库中有单独的服务代码(团队A和团队B);
  • 您有多个环境(例如,开发/生产)

如果你使用Helm,第二个问题可以很容易地解决,例如,它允许你模板化你的构建并传递不同的配置给它,第一个问题也可以部分地由helm解决,因为你也可以使用模板化来分离你的团队构建。
然而,几年前,我在开发.net monorepo时遇到了另一个问题:每次有PR合并到我们的git repo中,Jenkins就会为我们的每个服务触发一个构建,甚至是那些没有变化的服务。从问题的描述来看,我不清楚你是否配置了Jenkins管道,或者你是否也面临类似的问题,但是如果你是,你可以看看我是怎么解决这个问题的:repo.请随意看一看,希望能有所帮助。

相关问题