阅读:3242回复:2
golang手撸K8s Operator开发框架之前开了一系列k8s Operator开发课程,这里是专栏。 由于之前一直有同学觉得kubebuilder如何好、如何棒,于是这个课程带领大家自己来做个开发框架。部分内容会借鉴kubebuilder,部分内容结合chatgpt。可以作为自己开发项目使用,也可以作为面试作品、以证明你同时具备k8s能力和开发能力。 本课程适合本身已经了解k8s operator开发的同学。 由于众所周知的原因,本课程关键细节会故意留坑。VIP会员一对一口述破解 本课程大约20课时左右。 第1讲:开张课、课程内容 试听 老套弄的开张课,讲一下课程内容。直接开始干 第2讲:ast解析注解的基本原理、生成CRD对象初步 由于之前课程讲过ast,因此本课时快速完成个雏形,主要为了演示基本原理。后面会借助第三方成熟开源库 第3讲:解析struct为CRD对象、保存为yaml文件 我们通过原始的AST手段把struct解析为CRD对象。下节课开始我们融入官方的底层库,后面还需要修改源码 第4讲:kubebuilder同款生成: crd 生成的实现 我们直接使用kubebuilder的底层库,我们来学习下裸掉用怎么玩法,为后面修改源码打基础 第5讲:kubebuilder同款生成: deepcopy的生成 上节课我们演示的是crd的生成,今天我们来完成同款的deepcopy生成。至此最核心的两个文件生成我们已经搞明白了 第6讲:自动找到和识别需要生成crd的包目录 我们在代码中写了CRD对应的struct,那如何通过代码扫描出哪些包是CRD目录呢? 第7讲:第一阶段演示:完整的生成crd和deepcopy 试听 今天我们完成第一阶段演示。下周我们要开始处理注解和控制器生成 第8讲:修改官方库源码的姿势、注入资源Scheme代码原理 今天这课时我们演示如何修改Operator生成器官方库源码的基本手法和姿势 第9讲:自动生成scheme初始化代码(初步) 今天我们来演示下如何自动生成资源的scheme初始化代码。 第10讲:小技巧:如何读取自定义注解的值 今天我们来讲一下如何获取自定义注解的值,这个功能很有用 第11讲:利用自定义注解生成Scheme文件 有了上节课基础,我们就可以利用注解的方式来生成一些文件,如scheme 第12讲:控制器生成(1) 基本实现思路讲解 试听 今天讲一下Operator控制器生成的基本思路,后面几课时来实现 第13讲:控制器生成(2) 扫描和定位需要生成控制器的包 上节课讲到控制器的生成,这节课我们讲一个手法:如何扫描和定位 哪个包是控制器专用包 第14讲:控制器生成(3) 生成控制器代码文件 到这课时我们已经能够完整的生成控制器代码了,大家可以根据课程套路扩展 第15讲:控制器生成(4) 关联k8s自定义资源对象生成(上) 最后做两课时补充课,在我们生成控制器时关联k8s资源 第16讲:控制器生成(4) 关联CR对象生成(下) 控制器生成已经讲完,本课程告一段落。 年后有进阶版课程的规划 |
|
|