helmfile调试
说明
我们在调试helmfile编排的chart时,对于helm chart正常的情况下,我们编排的helmfile渲染模版的值出了问题,可能会存在以下的报错:
helmfile template
ERROR:
exit status 1
EXIT STATUS
1
STDERR:
Error: failed to parse /tmp/values761990442: error converting YAML to JSON: yaml: line 50: did not find expected key
这种情况下,我们可以指定以下的参数,来进行查看生成的临时文件的value值模版:
helmfile template --skip-cleanup
# 这样我们就可以查看生成的临时文件的值来进行调试
cat /tmp/values761990442
此外还存在一种情况,我们可能因为helmfile部署传入的变量值的格式导致的异常报错,例如:
helmfile -e dev -l app=test diff
Templating release=test, chart=test-repo/test
in ./helmfile.yaml: command "/usr/local/bin/helm" exited with non-zero status:
PATH:
/usr/local/bin/helm
ARGS:
0: helm (4 bytes)
1: template (8 bytes)
2: test-max (18 bytes)
3: test-repo/test-max (41 bytes)
4: --version (9 bytes)
5: -v2.4.0-st+041e3a87 (24 bytes)
6: --namespace (11 bytes)
7: test (26 bytes)
8: --values (8 bytes)
9: /tmp/helmfile2916714270/stesttsts-6cd688596 (86 bytes)
10: --set (5 bytes)
11: image.repository=registry.xxxx.com/test/test/testfe (83 bytes)
12: --set (5 bytes)
13: image.tag=v2.4.0-test-041e3a87 (33 bytes)
ERROR:
exit status 1
EXIT STATUS
1
这种情况下,我们可以加debug参数来查看具体详情,可以看出是传入的参数异常:
helmfile -e dev -l app=test diff --args "--debug"
COMBINED OUTPUT:
Executing helm version
Executing helm get manifest test --namespace test
Executing helm template test test-repo/test --version -v2.3.1-test+f86f99e7 --namespace
test --set image.repository=registry.xxx.com/test/test-fe --set image.
tag=v2.3.1-test-f86f99e7 --values /tmp/helmfile3502519488/test-values-747cff949b --valida
te --is-upgrade
Error: Failed to render chart: exit status 1: install.go:172: [debug] Original chart version: "-v2.3.1-test+f86f99e7"
Error: chart "test matching -v2.3.1-test+f86f99e7 not found in test-repo index. (try 'helm repo upda
te'): improper constraint: -v2.3.1-test+f86f99e7
helm.go:94: [debug] improper constraint: -v2.3.1-test+f86f99e7
chart "test" matching -v2.3.1-test+f86f99e7 not found in testrepo index. (try 'helm repo update')
helm.sh/helm/v3/pkg/downloader.(*ChartDownloader).ResolveChartVersion
/home/circleci/helm.sh/helm/pkg/downloader/chart_downloader.go:234
helm.sh/helm/v3/pkg/downloader.(*ChartDownloader).DownloadTo
/home/circleci/helm.sh/helm/pkg/downloader/chart_downloader.go:87
helm.sh/helm/v3/pkg/action.(*ChartPathOptions).LocateChart
/home/circleci/helm.sh/helm/pkg/action/install.go:669
main.runInstall
/home/circleci/helm.sh/helm/cmd/helm/install.go:184
main.newTemplateCmd.func2
/home/circleci/helm.sh/helm/cmd/helm/template.go:70
github.com/spf13/cobra.(*Command).execute
/go/pkg/mod/github.com/spf13/cobra@v1.0.0/command.go:842
github.com/spf13/cobra.(*Command).ExecuteC
/go/pkg/mod/github.com/spf13/cobra@v1.0.0/command.go:950
github.com/spf13/cobra.(*Command).Execute
/go/pkg/mod/github.com/spf13/cobra@v1.0.0/command.go:887
main.main
/home/circleci/helm.sh/helm/cmd/helm/helm.go:93
runtime.main
/usr/local/go/src/runtime/proc.go:203
runtime.goexit
/usr/local/go/src/runtime/asm_amd64.s:1373
Error: plugin "diff" exited with error
helm.go:94: [debug] plugin "diff" exited with error
Fail to run the plugin because of error(Process exited with an error: 1)
helmfile调试的更多相关文章
- C# Web应用调试开启外部访问
在用C#开发Web应用时有个痛点,就是本机用VS开启Web应用调试时外部机器无法访问此Web应用.这里将会介绍如何通过设置允许局域网和外网机器访问本机的Web应用. 目录 1. 设置内网访问 2. 设 ...
- NodeJs之调试
关于调试 当我们只专注于前端的时候,我们习惯性F12,这会给我们带来安全与舒心的感觉. 但是当我们使用NodeJs来开发后台的时候,我想噩梦来了. 但是也别泰国担心,NodeJs的调试是很不方便!这是 ...
- 微信公众号开发之VS远程调试
目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 前言 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流 ...
- 写出易调试的SQL(修订版)
h4 { background: #698B22 !important; color: #FFFFFF; font-family: "微软雅黑", "宋体", ...
- tomcat开发远程调试端口以及利用eclipse进行远程调试
一.tomcat开发远程调试端口 方法1 WIN系统 在catalina.bat里: SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compi ...
- Hawk 4.7 单步调试
单步调试的意义 已经编写的工作流,可能会因为某些外界环境的变化而出错,此时需要排除错误,我们可以使用单步调试. 单步调试的本质,相当于只使用前n个模块,这样就能看到每个步骤下,流的改变. 例子 还是上 ...
- Visual Studio 2012远程调试中遇到的问题
有的时候开发环境没问题的代码在生产环境中会某些开发环境无法重现的问题,或者需要对生产环境代码进行远程调试该怎么办? Vs已经提供给开发者远程调试的工具 下面简单讲讲该怎么用,前期准备:1.本地登录账户 ...
- iOS逆向工程之Hopper+LLDB调试第三方App
LLDB是Low Level Debugger的简称,在iOS开发的调试中LLDB是经常使用的,LLDB是Xcode内置的动态调试工具.使用LLDB可以动态的调试你的应用程序,如果你不做其他的额外处理 ...
- 写出易调试的SQL
h4 { background: #698B22 !important; color: #FFFFFF; font-family: "微软雅黑", "宋体", ...
- linux应用调试技术之GDB和GDBServer
1.调试原理 GDB调试是应用程序在开发板上运行,然后在PC机上对开发板上得应用程序进行调试,PC机运行GDB,开发板上运行GDBServer.在应用程序调试的时候,pc机上的gdb向开发板上的GDB ...
随机推荐
- Sa-Token v1.41.0 发布 🚀,来看看有没有令你心动的功能!
Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证.权限认证.单点登录.OAuth2.0.微服务网关鉴权 等一系列权限相关问题. 目前最新版本 v1.41.0 已推送至 Mav ...
- Nginx配置跨域,覆盖后端服务跨域配置
本篇文章主要介绍了,如何通过Nginx配置跨域,并覆盖后端服务跨域配置. 先看下后端代码跨域配置: 主要的目标是:不修改后端跨域配置代码,来实现Nginx跨域指定域名. @Bean public Co ...
- 智能Agent如何改造传统工作流:从搜索到全能助手
智能Agent如何改造传统工作流:从搜索到全能助手 引言:当AI遇上工作流 还记得我们以前搜索信息的方式吗?输入关键词,浏览大量结果,筛选有用内容,再整合成我们需要的答案.这个过程不仅耗时,还常常让人 ...
- 元模型对AI的哲学意义:让机器真正"懂"世界
元模型对AI的哲学意义:让机器真正"懂"世界 (用日常语言和比喻解释) 1. 传统AI像"死记硬背的学生" 问题:现在的ChatGPT就像背了无数词典的人,能对 ...
- 【SpringMVC】使用 @RequestMapping 映射请求
使用 @RequestMapping 映射请求 Spring MVC 使用 @RequestMapping 注解为控制器指定可以处理哪些 URL 请求 在控制器的类定义及方法定义处都可标注 @Requ ...
- 扫盲ASM
在进行程序跟踪时,会出现汇编.由于ASM盲,所以添加不少烦恼.有烦恼得想办法解决.对,扫盲ASM. 这里是教材,感觉大白话很好理解(感谢 http://www.ruanyifeng.com/blog/ ...
- 枚举与string之间查找与转换
利用TypInfo单元的GetEnumName和GetEnumValue可以遍历任意枚举类型 其实上面程序运行会有err,为什么?因为没有理解和掌握JSON Objects Framework[感到简 ...
- AOP流程及原理
目录 一.AOP结构介绍 @Pointcut 通知 原理 连接点 拦截器 二.Bean介入点 EnableAspectJAutoProxy AspectJAutoProxyRegistrar Anno ...
- kettle介绍-Step之加密及解密
加密 进入kettle的安装目录 cd /d D:\Application\pdi-ce-6.0.0.0-353\data-integration windows系统命令行执行:Encr.bat -k ...
- 一文速通Python并行计算:09 Python多进程编程-进程之间的数据同步-基于互斥锁、递归锁、信号量、条件变量、事件和屏障
一文速通 Python 并行计算:09 Python 多进程编程-进程之间的数据同步-基于互斥锁.递归锁.信号量.条件变量.事件和屏障 摘要: 多进程同步机制包括互斥锁.递归锁.信号量.条件变量.事件 ...