我们正在构建Jenkins管道,以将发行版推广到生产环境,并寻求最佳实践来应对开发人员和产品之间的网络访问限制。
dev和prod微服务都在Openshift(OCP)3.9中运行。我们也有一个Oracle数据库,Oracle燕尾服和在Windows等环境下运行的.NET服务台。
我们的非生产管道正在OCP集成的Jenkins in dev中运行。问题是生产管道应位于何处。如果它们应该驻留在dev中,那么我们需要应用所有必要的防火墙规则,以便Jenkins可以访问生产环境以进行部署。我们的安全团队反对这种方法,特别是规则将允许所有开发集群(不仅是Jenkins pod)都可以访问产品。
另一种方法是在生产集群中启用Jenkins,并在其中运行生产管道,而非生产管道驻留在dev Jenkins实例中。但这将使整个CI / CD过程复杂化。
这里是否有任何惯例或已知架构?我看到了Openshift CICD reference architecture,它使用的是在dev中运行的单个jenkins实例,但是该文档并未涉及网络访问主题。
谢谢您的建议。