Helm release Secret检查
离线解码本地Helm3 release Secret,保留精确release与manifest,对照原始JSON字段字节跨度及解码chart文件的大小和哈希。
- 1添加输入
- 2调整设置
- 3获取结果
工具输入和文件在当前浏览器处理,不会上传。
开始之前
从已导出的Secret排查过大的存储内容,查看实际序列化的数据。无需渲染chart或连接Kubernetes。
如何使用
- 粘贴已导出的Helm3 Secret JSON,或明确选择release编码文本模式。
- 比较原字段跨度与chart解码文件大小,核对编码层和未审阅字段。
- 下载精确release、原manifest、hook声明与完整清单。
支持范围与限制
一个UTF-8文件或粘贴文本,最多5 MiB;release展开最多8 MiB;chart字节条目10,000个,外层与release合计100,000个JSON值、64层。完整下载合计最多20 MiB;超限或非法数据原子拒绝。
Secret JSON模式要求kind=Secret、type=helm.sh/release.v1和data.release;编码文本模式接收内层Helm Base64文本。Base64须规范且不折行;gzip流式核对CRC和完整性,旧无压缩release单独标明。不支持YAML输入。
release.json保留完整解码UTF-8字节及大数原token;manifest.yaml保留原字符串;hooks.json保留hook声明。templates/files/schema按解码原字节统计大小和SHA256,模板不会执行。
字段跨度是release.json内左闭右开的字节偏移,统计原JSON值token;它与chart解码大小、gzip载荷大小分别列出。相加不能推算压缩贡献或Kubernetes是否接受。只检查实际序列化的根chart,不重建子chart依赖树。
release/config/manifest可能含私密值;导出在本地完成。未知根字段保留并标为未审阅。表格预览前200行,长单元格仅前2,000字符;报告超过20,000字符时复制明确为预览,完整数据在下载中。
操作示例
示例输入
{"apiVersion":"v1","kind":"Secret","type":"helm.sh/release.v1","metadata":{"name":"sh.helm.release.v1.demo.v7"},"data":{"release":"SDRzSUFBQUFBQUFDRTFWUlMyN0NNQlM4U3ZUV0NNSlBLSmJZbEtvQ1JDdTFDMEEwWFpqa0JWd2NPNDFmRUJIS1hicnBNYmhOZTQvYWlVckZ3cEk5ZmpQakdaOUI4UlNCUVl5cGhsWjlNaG1QSENSMXhLWEZqcGdib1JXd1VRdUVTalN3TXhqaVZKaWFsMGxkWWd4VkM2STl6OG5kcGtnODVzVGQvbGIvcWdWK3U5djJIWXN3elNRbnRHcXYxL0VyMkxHTDJpVlAzVXNhVGNDKzJTM2tacitkTG1WVURnMWZ2OGdvZlRDemFUZTRmOVpqcU41YWtBaDVLeG5yeUhTVXRucHRPdEcvMm5EUjJ3MzVLcGpzeGczVFJIdE1hNTl5N3VQNlRzN2V0ZGoyNWgrYjFaTS9VLzdZNWVDeWNQSm5rSUl3dHowNUF6U2VOZkR3aEZGQkNKWHJSS3RFN056Z0FVczdsSWdURlRtNjRDbFhJckhwTE1venNXeWFZZDZ4RzZxRFVESHpKalgza1dlaCttdVVoY3J6WENEbXVVWkRkUVVKVDhTODc4dm56OWNsVlBhSmU2MFBOd1VZcENLREc5L0daNjYzbHVHaVc0MjgvclZDa1M1c0R6R3d3UGRIM1NEb0RRZWpnUjhFL2FyNkJmbUx6TTAxQWdBQQ=="}}示例参数
{"secondary":"","params":{"inputMode":"secret-json","spreadsheetSafe":true}}示例输出
{"format":"Helm3-local-release-inventory","summary":{"name":"demo","namespace":"local","version":"7","layers":"base64+gzip","inputMode":"secret-json","encodedPayloadBytes":381,"expandedReleaseBytes":565,"chartFiles":3,"fields":9,"hooks":1,"unreviewedFields":1,"jsonNodes":38},"fields":[{"key":"name","byteStart":8,"byteEnd":14,"jsonUtf8Bytes":6,"reviewStatus":"field-inventory"},{"key":"namespace","byteStart":27,"byteEnd":34,"jsonUtf8Bytes":7,"reviewStatus":"field-inventory"},{"key":"version","byteStart":45,"byteEnd":46,"jsonUtf8Bytes":1,"reviewStatus":"field-inventory"},{"key":"info","byteStart":54,"byteEnd":75,"jsonUtf8Bytes":21,"reviewStatus":"field-inventory"},{"key":"chart","byteStart":84,"byteEnd":351,"jsonUtf8Bytes":267,"reviewStatus":"field-inventory"},{"key":"config","byteStart":361,"byteEnd":378,"jsonUtf8Bytes":17,"reviewStatus":"field-inventory"},{"key":"manifest","byteStart":390,"byteEnd":473,"jsonUtf8Bytes":83,"reviewStatus":"field-inventory"},{"key":"hooks","byteStart":482,"byteEnd":525,"jsonUtf8Bytes":43,"reviewStatus":"field-inventory"},{"key":"extra","byteStart":534,"byteEnd":564,"jsonUtf8Bytes":30,"reviewStatus":"unreviewed-unknown-field"}],"files":[{"group":"templates","name":"templates/test.yaml","decodedBytes":23,"sha256":"17537c9c570014f30fd04fc5b54a9c17f79f0b6a2ef718767ad320f8e5543f81"},{"group":"files","name":"docs/notes.txt","decodedBytes":7,"sha256":"4e0826721642ed8e3a27e7147538ac7b7013a08fe5ae343a8ef09749b7e5790f"},{"group":"schema","name":"values.schema.json","decodedBytes":17,"sha256":"a2c799262a3ce3c19ef5cdd983bf3d12b43ab3c426227091b909dcb7054738c0"}],"scope":"Field spans refer to exact release.json UTF8 bytes and include JSON syntax of each value. Chart file sizes/hashes refer to decoded bytes. These are not additive compressed contributions or predictions of Kubernetes Secret acceptance. Only serialized root chart data is inspected; subchart dependency tree/render/install/upgrade are not reconstructed. Unknown root fields are retained in release.json and unreviewed. Outputs may contain private values."}出现问题时
检查所选模式、规范Base64、完整gzip、UTF-8 JSON与Helm Secret结构;重新导出损坏数据。如果展开或完整下载超限,缩小release后重跑。
常见问题
字段大小为什么加不出gzip大小?
字段度量统计解码JSON中的原值字节,压缩会共享全文件的重复模式;chart文件还经过单独Base64编码。因此不能为字段分摊精确压缩贡献。
能恢复原始所有子chart吗?
不能。Helm存储根chart的序列化字段,内部dependency对象不属于普通导出JSON字段。报告只描述实际保存的数据。
解出的manifest会执行吗?
不会。YAML、hook命令和模板都是数据,不运行Helm命令,不提交Kubernetes,也不访问URL。