企业级云原生应用交付及管理系列 - Helm 调试及维护 (二)

本文介绍了Helm的高级特性和调试方法,包括如何使用Helm进行chart的debug,以及如何利用helm-unittest进行单元测试。在调试部分,强调了`helm lint`和`helm template`在检查和排除错误中的作用。在单元测试部分,推荐了helm-unittest、conftest和terratest三个工具,并展示了使用helm-unittest的安装和测试过程。文章旨在帮助Helm使用者提升chart的质量和稳定性。
摘要由CSDN通过智能技术生成

大家好,我是张晋涛。

在上一篇 《企业级云原生应用交付及管理系列 - Helm 基础 (一)》 中,我主要介绍了 Helm 的诞生及其发展,包括 Helm 各个版本的情况及社区的发展。

此外,还介绍了 Helm 的架构,概念,插件以及其基本用法。

本节我将默认读者已经有一定的 Helm 和 Kubernetes 基础, 介绍 Helm 的一些高阶特性和用法, 如果有不清楚的概念可以看我的历史文章。

准备

这里我们使用 helm create 命令来创建一个 Helm chart。执行完成后,会在当前目录创建一个新的目录,其中包含了 Helm 预先创建的一个模板。本文中的后续内容均会基于该 Helm chart 完成。

tao@moelove:~$ helm create moelove
Creating moelove                
tao@moelove:~$ ls                    
moelove
tao@moelove:~$ tree
.
└── moelove
    ├── Chart.yaml
    ├── charts
    ├── templates
    │   ├── NOTES.txt
    │   ├── _helpers.tpl
    │   ├── deployment.yaml
    │   ├── hpa.yaml
    │   ├── ingress.yaml
    │   ├── service.yaml
    │   ├── serviceaccount.yaml
    │   └── tests
    │       └── test-connection.yaml
    └── values.yaml

4 directories, 10 files

Debug

在我们去创建/维护,或者使用 Helm chart 进行应用部署的时候,有时候可能会遇到一些错误。那么如何对 Helm chart 进行 debug 呢?这是很多人都会遇到的一个问题。

Helm chart 是通过 YAML 进行维护的,而 YAML 是缩进/语法敏感的。假如你的缩进或者语法有问题,都将会导致报错。最简单的检查办法是使用 helm lint 进行检查。

比如我们进行如下修改:

diff --git a/values.yaml b/values.yaml
index 4a8b237..696a77d 100644
--- a/values.yaml
+++ b/values.yaml
@@ -5,7 +5,7 @@
 replicaCount: 1
 
 image:
-  repository: nginx
+ repository: nginx
   pullPolicy: IfNotPresent
   # Overrides the image tag whose default is the chart appVersion.
   tag: ""

可以看到,我们将 image.repository 的缩进搞错了。这时进行安装将看到如下报错:

tao@moelove:~$ helm install foo .
Error: INSTALLATION FAILE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张晋涛-MoeLove

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值