包含 Dockerfile、Jekinsfile、Kubernetes 部署 yaml、pip requests.txt 和测试脚本的项目的目录结构?

gun*_*nit 2 pip jenkins docker kubernetes jenkins-pipeline

下面的目录结构可以吗?

目标是让 Jenkins 触发 GitHub 提交并运行构建和测试容器的多分支管道。(我的一切都在 Kubernetes 上运行,包括 Jenkins)

/project
  .git
  README.md
  Jenkinsfile
  /docker_image_1
    Dockerfile
    app1.py
    requirements.txt
    /unit_tests
      unit_test1.py
      unit_test2.py
  /docker_image_2
    Dockerfile
    app2.py
    requirements.txt
    /unit_tests
      unit_test1.py
      unit_test2.py
  /k8s
    /dev
      deployment.yaml
    /production
      deployment.yaml
  /component_tests
    component_tests.py
Run Code Online (Sandbox Code Playgroud)
  1. 包含deployment.yamls 的k8s 文件夹是否位于正确的位置?
  2. 测试文件夹是否位于正确的位置?“component_tests”中的测试理想情况下将进行更多涉及多个容器的端到端集成测试
  3. 我看到很多仓库在同一目录级别都有 Jenkins 文件和 Dockerfile。这样做有什么优点和缺点?

Mar*_*nor 5

目前这个问题还没有好的答案。

Kubernetes 提供了用于部署的标准 API,但作为一项技术,它依赖于额外的第 3 方工具来管理 ALM 工作流程的构建部分。有很多选项可用于将源代码转换为在 Kubernetes 上运行的容器。对于如何组织源代码以及如何从 Jenkins 等 CI/CD 服务器调用部署,每种方法都有自己的影响。

我提供以下选项供您考虑,大致分类。代表我当前的评估列表。

“平台即服务”工具

工具可以管理代码的整个 ALM 生命周期。强大但更复杂且固执己见。

构建和部署工具

对于开发过程中常见的代码/测试/代码/重新测试工作流程有用的工具。还可以从 Jenkins 调用来抽象您的构建过程。

YAML 模板工具

kubernetes YAML 从来就不是为人类使用而设计的。多项举措使这一过程更加简单和标准化。

部署监控工具

这些工具具有约定,希望在源代码存储库中找到 Kubernetes 清单文件(或 helm 图表)。

支持 k8s 的 CI/CD 工具