shenyi
资深校友
资深校友
  • UID1
  • 粉丝45
  • 关注0
  • 发帖数901
阅读:3242回复:2

golang手撸K8s Operator开发框架

楼主#
更多 发布于:2023-06-23 01:47


  之前开了一系列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对象生成(下)
控制器生成已经讲完,本课程告一段落。
年后有进阶版课程的规划
会讲故事的程序员
shenyi
资深校友
资深校友
  • UID1
  • 粉丝45
  • 关注0
  • 发帖数901
沙发#
发布于:2023-07-03 01:54
开始更新
会讲故事的程序员
shenyi
资深校友
资深校友
  • UID1
  • 粉丝45
  • 关注0
  • 发帖数901
板凳#
发布于:2024-01-19 01:59
更至第16讲
会讲故事的程序员
游客

返回顶部