Skaffold 和多个子图表

问题描述

最近我正在用我们的 Helm Charts 试验 Skaffold,我有点进退两难,我们的 Helm Chart \ Sub Charts 是否与 Skaffold 兼容。

我们的掌舵图表如下所示

my-helm-charts
+-charts
  +-project1
  +-project2
  +-project3
  +-project4
  +-infrastructure_kafka
    +-charts
      +-kafka
      +-zookeeper
  +-infrastructure_cassandra
  +-infrastructure_elasticsearch
  +-Charts.yaml
  +-Values.yaml

我们选择以这种方式构建 Helm Charts 的原因是,如果有必要为我们的项目启动额外的阶段。

现在,当我想使用 Google Cloud Code / Skaffold 开发 project2(我配置正确并且可以在 IntelliJ 中毫无问题地启动)时,我必须启动整个 my-helm-charts。

这其实没问题,但问题是,如果我在 Kubernetes 中使用 Debug,我有一种感觉,Google Cloud Code/Skaffold 确实可以定位到 project2,并且不会发生任何调试。

我的感觉是 Google Cloud/Skaffold 更倾向于使用以下结构...

project2-helm
+-templates
+-Charts.yaml
+-Values.yaml

我的 Subcharts 在 Google Cloud Code/Skaffold 中开始构建,没有任何异常,但我无法调试,是否可以通过我的结构实现我想要的,如果是,如何实现?

或者根本不可能...

感谢回答...

解决方法

我们最近添加了一个称为配置依赖项的功能,这可能会有所帮助。它允许您创建更具体的 skaffold.yamls,然后将它们与“requires”字段映射在一起: https://skaffold.dev/docs/design/config/#configuration-dependencies

一旦您创建了 skaffold.yamls 和正确的依赖关系映射,您就可以运行带有 -m 标志的 skaffold 来选择您的服务的一个切片:

skaffold dev -m project3

即将推出对模块的 Cloud Code 支持。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...