用 kubebuilder 解释 YAML 值的字节序列
来源:stackoverflow
时间:2024-02-14 12:57:25 103浏览 收藏
从现在开始,努力学习吧!本文《用 kubebuilder 解释 YAML 值的字节序列》主要讲解了等等相关知识点,我会在golang学习网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!
我们正在使用 kubebuilder 构建自定义控制器,问题是我们无法解析原始数据,因为当您应用文件时它会变为空。
我创建了一个非常小的示例来描述该问题。
api版本:mygroup.test.com/v1alpha1
kind: Rawtest metadata: name: rawtest-sample spec: system: type: test provider: type: aws infrastructureConfig: kind: InfrastructureConfig apiVersion: v1alpha1 networks: vpc: cidr: aaa zones: - name: abc internal: 123 workers: - name: myworker machine: type: "mt" image: name: name1 version: "2" maximum: 2 minimum: 1 maxUnavailable: 0 volume: type: a1 size: 20Gi zones: - zone1
在运行时,我能够获取 spec.system.type
value=test 和 spec.system.provider.type
value="aws",但是我无法获取 infrastructionconfig:
下的所有数据(第 10 行)知道如何克服这个问题吗?
我创建了这个非常简单的项目来演示这个问题,
查看 api/type 文件夹,获取协调对象后(应用 config/sample/ 文件后,您会看到 infrastructconfig
和所有相关数据
https://github.com/jennymet/
这是尝试读取原始值的代码 https://github.com/jennymet/kuberaw/blob/master/controllers/rawtest_controller.go#l57
&rawtest
应包含所有数据
请查看类型 https://github.com/jennymet/kuberaw/blob/master/api/v1alpha1/rawtest_types.go#l32
原始类型 https://github.com/gardener/gardener/blob/bf32324d9d1a366d8a0a7514956dc39c2f22f7b7/pkg/apis/core/v1beta1/types_shoot.go#l945
https://github.com/gardener/gardener/blob/bf32324d9d1a366d8a0a7514956dc39c2f22f7b7/pkg/apis/core/types_shoot.go#l774
https://github.com/gardener/gardener/blob/bf32324d9d1a366d8a0a7514956dc39c2f22f7b7/vendor/k8s.io/apimachinery/pkg/runtime/types.go#l94:6
我需要一种方法让它在 kubebuilder 中工作,因为当我应用文件时我没有在调试中获得值......
调试图片
如果缺少某些内容,请告诉我。
解决方案
我做了以下事情
访问 https://yaml.to-go.online/ 等网站,将 yaml 转换为 go Struct
创建一个结构体
t := 自动生成{}
我假设 yaml 数据以 []byte 的形式加载到内存中
使用“gopkg.in/yaml.v2”,将 yaml 解组到结构
err := yaml.Unmarshal([]byte(data), &t)
infrastructionconfig 字段可用作 t.Spec.System.Provider.InfrastructureConfig
参见https://play.golang.org/p/syx8v7gAmDH
终于介绍完啦!小伙伴们,这篇关于《用 kubebuilder 解释 YAML 值的字节序列》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!
-
502 收藏
-
502 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
139 收藏
-
204 收藏
-
325 收藏
-
477 收藏
-
486 收藏
-
439 收藏
-
357 收藏
-
352 收藏
-
101 收藏
-
440 收藏
-
212 收藏
-
143 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习