golang利用helm的sdk写一个chats转换成yaml文件
chats_dir: 就是 helm pull下来的仓库
可以用命令直接生成 helm3 template chats_dir --release-name hank
可以变成yaml文件,然后就可以直接apply了
下面利用helm的sdk把chats生成yaml代码
package main
import (
"fmt"
"log"
"os"
"helm.sh/helm/v3/pkg/action"
"helm.sh/helm/v3/pkg/chart/loader"
"helm.sh/helm/v3/pkg/cli"
"helm.sh/helm/v3/pkg/cli/values"
"helm.sh/helm/v3/pkg/getter"
)
func main() {
// 创建一个 helm 配置对象
settings := cli.New()
client := action.NewInstall(&action.Configuration{})
// 加载 chart 文件,这里应该说是加载chart的目录代码,其中values写好了
chartPath, err := client.ChartPathOptions.LocateChart("./chart", settings)
if err != nil {
log.Fatal(err)
}
chart, err := loader.Load(chartPath)
if err != nil {
log.Fatal(err)
}
// 创建一个 values 对象,用于存储 chart 的值
vals := values.Options{}
valueOpts := &vals
p := getter.All(settings)
val, err := valueOpts.MergeValues(p)
if err != nil {
log.Fatal(err)
}
// 创建一个 action 对象,用于执行 helm 操作
client.DryRun = true // 设置为 dry-run 模式,不实际安装 chart
client.ReleaseName = "my-release" // 设置 release 名称
client.Replace = true // 设置为替换模式,如果 release 已存在则覆盖
client.ClientOnly = true // 设置为客户端模式,不与集群交互
// 执行 helm template 操作,并获取结果
rel, err := client.Run(chart, val)
if err != nil {
log.Fatal(err)
}
// 将结果输出为 yaml 格式
fmt.Fprintln(os.Stdout, rel.Manifest)
}
golang利用helm的sdk写一个chats转换成yaml文件的更多相关文章
- python 练习题:请利用Python内置的hex()函数把一个整数转换成十六进制表示的字符串
# -*- coding: utf-8 -*- # 请利用Python内置的hex()函数把一个整数转换成十六进制表示的字符串 n1 = 255 n2 = 1000 print(hex(n1)) pr ...
- 泛型(二)封装工具类CommonUtils-把一个Map转换成指定类型的javabean对象
1.commons-beanutils的使用 commons-beanutils-1.9.3.jar 依赖 commons-logging-1.2.jar 代码1: String className ...
- 把一个序列转换成严格递增序列的最小花费 CF E - Sonya and Problem Wihtout a Legend
//把一个序列转换成严格递增序列的最小花费 CF E - Sonya and Problem Wihtout a Legend //dp[i][j]:把第i个数转成第j小的数,最小花费 //此题与po ...
- 把一个序列转换成非严格递增序列的最小花费 POJ 3666
//把一个序列转换成非严格递增序列的最小花费 POJ 3666 //dp[i][j]:把第i个数转成第j小的数,最小花费 #include <iostream> #include < ...
- Javascript里,想把一个整数转换成字符串,字符串长度为2
Javascript里,想把一个整数转换成字符串,字符串长度为2. 想把一个整数转换成字符串,字符串长度为2,怎么弄?比如 1 => "01"11 => " ...
- Java Web 开发利用Struts2+Spring+mybatis写一个用户登录界面以及简单的数据交互
框架的东西太复杂也难以讲通,直接上代码: 一.首先得配置环境 和导入必要的jar包 有一些重要的如下: Filter文件夹下的SafetyFilter.java model文件夹下的 Global ...
- 利用SpringBoot+Logback手写一个简单的链路追踪
目录 一.实现原理 二.代码实战 三.测试 最近线上排查问题时候,发现请求太多导致日志错综复杂,没办法把用户在一次或多次请求的日志关联在一起,所以就利用SpringBoot+Logback手写了一个简 ...
- Linux下面将windows写的脚本转换成 Linux 格式的文件
1.接着上一篇blog 发现有一个问题 vim 打开文件 发现最下面有一行信息: 2. 里面有一些 不一样的地方. linux里面没法执行 ,如果想执行的话 可以输入命令 :set fileforma ...
- 310实验室OTL问题----将写好的C++文件转换成Python文件,并将数据可视化
如图:文件夹 第一处:optimizer文件夹下的:optimizer.h文件中添加你所写代码的头文件 #include <OTL/Optimizer/Reference-NSGA-II/Re ...
- 利用C# 窗体设计 写一个抽奖游戏
老师布置了一个任务,要求我们做一个抽奖游戏,以下是我个人制作的一个作品与写项目的过程. 我们用到了8个pictureBox控件和一个button,设置好大小,并且编排成一个九宫个形状 添加窗体的背景图 ...
随机推荐
- hot100之子串
和为K的子数组(560) 先看代码 class Solution { public int subarraySum(int[] nums, int k) { int res = 0; int preS ...
- LiteLLM - 统一接口调用100+ LLM模型
:bullet_train: LiteLLM LiteLLM 是一个统一的接口层,支持调用100+种大语言模型(LLM),包括Bedrock.Huggingface.VertexAI.Together ...
- Windows Server 2025激活教程
Windows Server 如何把评估版升级改为正式版本并激活 微软官方并不提供server系统的正式版本,只提供测试的评估版本,那么我们怎么修改为正式版本呢? 1.确认版本 开始----运行--- ...
- 232转wifi
232转wifi ZLAN7146是一款WIFI串口服务器.该串口服务器可以方便地使得串口设备连接到WIFI无线网络,实现串口设备的无线化网络升级.RS232接口支持全双工.不间断通信:RS485内嵌 ...
- Vue 中可以定义组件模版的几种方式
前置知识回顾 new Vue({...options})一些基本知识 new Vue(options)的选项中,也可以拥有 data.methods.components.生命周期函数等等,和组件实例 ...
- linux操作系统下C语言编程入门小结
Makefile $@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件.# 这是简化后的 Makefilemain:main.o mytool1.o mytool2.ogcc -o ...
- 如何通过命令行wifi上网 linux
步骤 ifconfig wlan0 up wpa_supplicant -Dnl80211 -iwlan0 -c/wpa1.conf & 在/etc/resolv.conf 中写入 DNS的配 ...
- ETL数据集成丨PostgreSQL数据迁移至Hive数据库
PostgreSQL数据迁移至Hive数据库 在现代企业数据架构中,将数据从关系型数据库如PostgreSQL迁移到分布式数据仓库系统如Hive,是一项至关重要的任务,旨在实现数据的高效存储.处理与分 ...
- "Management" by Stephen P. Robbins and Mary Coulter现代管理科学理论
现代管理科学理论: Major Approaches to Management 3000 BC – 1776: Early Management 1911 – 1947 Late: Classica ...
- Rust中的模式匹配
一.let模式匹配 在其它一些语言中,let x = 5 之类的语句,仅仅只是赋值语句.但是在rust中,可以换个角度理解,认为5这个值匹配到了x变量.如果觉得有些牵强,可以再来一个示例: let ( ...