项目demo

含基础控制器Snapshots 变异控制器,自动注入env,关联annotations创建资源等 SSL双向认证

配置代理

由于很多资源和镜像均在google云或则其他外网资源上,为了方面开发,建议直接配置Docker代理,和build代理

创建一个目录,执行kubebuilder初始化目录
kubebuilder init --domain itgod.org --repo itgod.org/dtk

由kubebuilder生成一个GVK的框架
kubebuilder create api --group dtkapps --version v1 --kind SnapshotRollback

开始开发

参考 https://book.kubebuilder.io/,方便快速创建项目

开发一个监听deployment Image变化的控制器示例

1、修改controllers/t1_controller.go中的econcile函数,在// TODO(user): your logic here下添加内容

func (r *T1Reconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
    _ = log.FromContext(ctx)
    // TODO(user): your logic here
    deployment := &appsv1.Deployment{}
    err := r.Get(ctx, req.NamespacedName, deployment)
    if err != nil {
        if errors.IsNotFound(err) {
            return reconcile.Result{}, nil
        }
        // Error reading the object - requeue the request.
        return reconcile.Result{}, err
    }
    // end 

    return ctrl.Result{}, nil
}

2、controllers/t1_controller.go中的SetupWitchManager函数修改为监听Deployment核心资源

func (r *T1Reconciler) SetupWithManager(mgr ctrl.Manager) error {
    return ctrl.NewControllerManagedBy(mgr).
        For(&appsv1.Deployment{}).
        Complete(r)
}

3、make run运行 (依赖kubeconfig文件)

Copyright © 运维知识库 all right reserved,powered by Gitbook文件修订时间: 2023-09-19 10:45:38

results matching ""

    No results matching ""