首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >舵机测试最佳实践

舵机测试最佳实践
EN

Stack Overflow用户
提问于 2019-10-08 14:45:58
回答 2查看 16K关注 0票数 14

只是为了澄清。

  1. 我说的不是Helm图表的最佳实践。我可以自己在这里读到:做法/
  2. 我不是在说Terratest。

我对Helm感兴趣,你可以在这里读到更多关于它的测试/#图表-测试

不幸的是,文档并没有为您提供很多信息,这在一定程度上就是这个问题的原因之一。

我们拥有的:

  1. 我们可以通过以下路径在图表中定义测试

我们的应用程序/模板/测试/测试-我们的-app.yaml

  1. 据我所知,根据文档,它不是图表的单元测试,而是更像是烟雾测试或集成测试。文档:“验证您的图表在安装时是否按预期工作”。这正是我所需要的。
  2. 为了运行测试测试/#步骤-运行-一个测试套件-发布。我们需要安装我们的应用程序图表。

$ helm install our-app

然后我们可以测试这个图像

$ helm test release-with-our-app

我想澄清的是:

  1. 我们应该有两个独立的码头图像,还是一个用于应用和测试? a)。如果它是应用程序代码和测试代码的单个映像,那么我们将在该映像上添加测试/测试的代码,这使得它更大,此外,我们还需要将测试所需的依赖项放在该映像上。在我看来,这个解决方案似乎是错误的。 b)。如果我们有一个单独的映像进行测试,就更有意义了,因为我们的应用程序停靠器映像没有任何不必要的依赖项。更重要的是,在第二种解决方案中,我们并不真正关心测试中对接者映像的大小,因为它应该是一个短暂的映像,当测试结束时,它会关闭。 我的假设正确吗?对于这些测试,我们应该有一个单独的图像吗?
  2. 如果有两个单独的图像,一个用于代码,另一个用于测试。我们怎么才能和他们结婚?这是否意味着我们必须将生成/发布号传递给helm test命令,以便它能够为测试拉下正确的映像?
  3. 如果我们有两个独立的图像的话。我是否应该在坞文件中指定测试运行的测试?例如:

CMD ["sh", "-c", "gradle test -Denvironment=$ENVIRONMENT"]

或者应该是内部图表

our-app/templates/tests/test-our-app.yaml

例如,mysql的test.yaml:

https://github.com/helm/charts/blob/master/stable/mysql/templates/tests/test-configmap.yaml

  1. 在文档中似乎根本没有提到环境。我的问题是,向图表传递环境名称的最佳/推荐方法是什么,以便测试知道要命中哪个端点等等?应该是图表args 如何将动态参数传递给运行作业的舵机图表吗?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-20 20:48:53

下面的链接https://github.com/helm/charts/tree/master/stable/mysql/templates可以在mysql图表中找到一个示例

回答我自己的问题:

  1. 由于以下原因,我们为舵机测试制作了单独的码头映像: 1.1当舵机烟雾对接图像是单独的,这使它不受任何限制的主要应用码头形象。因此,您可以安装任何库,避免遵循一些主要应用程序必须遵循的安全准则。 1.2舵机测试的船坞图像大小没有限制,因为它是短暂的活图像,舵机测试的图像是在内部测试的持续时间内的活图像。
  2. 我们通过海图版本与他们结婚。因此,主应用程序的映像始终与helm测试停靠者图像的版本相同。

我们不需要通过任何东西,当您运行"helm test yourapp“时,helm会查找已成功部署的yourapp版本,并使用该版本运行helm测试。

  1. 运行"helm yourapp“命令时。头盔在档案中查找 yourapp/模板/测试/烟雾-测试。 调用由以下路径指定的命令: 规范/容器/命令:"sh“、"-c”、“您的命令”请查看屏幕截图或转到mysql图表https://github.com/helm/charts/tree/master/stable/mysql/templates的git

  1. 传递数据和特定于Env的数据的最佳方法是通过配置映射、env变量和机密作为Hanx未回答。如果它是以这样的方式存储的,那么您可以通过helm值文件填充这些数据,并且很容易更新。我们发现,在映像中包含env特定数据是一个糟糕的解决方案,因为例如,如果某个环境中的URL/主机发生了变化,我们需要创建一个新的构建,而不是仅仅更新一个值文件并执行部署。
票数 14
EN

Stack Overflow用户

发布于 2019-10-09 14:56:01

刚开始这个话题:

在我看来,这取决于你的需要。

对于1,2,3 -正如我所理解的,"helm测试“非常灵活,它可以执行任何其他测试,这取决于您的需要。

您可以使用不同的图像和不同的方法,或一个图像与不同的参数,但有时,这可能是不可能的,因为码头入口点-请参阅命令和参数

根据4个问题--在我看来,您应该考虑使用结构映射秘密来定义env变量并将其公开到您的荚中。

额外资源“舵机测试”:

希望能帮上忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58288784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档