* 修复k8s/devcontainer/suite_test * 改进了DevStar Controller Manager镜像相关代码 * 修改了Dockerfile.rootless以解决go版本问题 * 移动Dockerfile.cotroller-manager位置 * Merge remote-tracking branch 'origin/dev' into devcontainer-on-k8s * Merge remote-tracking branch 'origin/add_k8s' into AppOnK8s * Merge remote-tracking branch 'origin/add-dockerfile-method-and-start-s… * 添加了k8s下的停止、重启devcontainer和webterminal * Merge branch 'add-dockerfile-method-and-start-stop-container' of https… * 更新了容器镜像方式的构建、安装和使用方法,但是devcontainer功能还有问题 * fix run postCreateCommand bug * sh文件方式管理启动脚本 * Merge branch 'add-dockerfile-method-and-start-stop-container' of https… * add restart command and fix bug * chore: 补充添加k8s controller的go.mod和go.sum文件 * Merge branch 'add-dockerfile-method-and-start-stop-container' of https… * 为devstar添加k8s上的controller-manager * add dockerfile method to create container and save container .restart …
43 lines
1.0 KiB
Go
43 lines
1.0 KiB
Go
package devcontainer
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"k8s.io/klog/v2"
|
|
"sigs.k8s.io/controller-runtime/pkg/manager"
|
|
|
|
devcontainerv1 "code.gitea.io/gitea/modules/k8s/api/v1"
|
|
)
|
|
|
|
// Controller 实现 controller.Controller 接口
|
|
type Controller struct{}
|
|
|
|
// Name 返回控制器名称
|
|
func (c *Controller) Name() string {
|
|
return "devcontainer"
|
|
}
|
|
|
|
// Init 初始化控制器
|
|
func (c *Controller) Init(mgr manager.Manager) error {
|
|
// 添加 API 到 scheme
|
|
klog.InfoS("Adding DevContainer API to scheme")
|
|
if err := devcontainerv1.AddToScheme(mgr.GetScheme()); err != nil {
|
|
return fmt.Errorf("unable to add DevContainer API to scheme: %w", err)
|
|
}
|
|
|
|
// 创建 DevContainer reconciler
|
|
klog.InfoS("Creating DevContainer reconciler")
|
|
reconciler := &DevcontainerAppReconciler{
|
|
Client: mgr.GetClient(),
|
|
Scheme: mgr.GetScheme(),
|
|
}
|
|
|
|
// 设置 reconciler 与 manager
|
|
klog.InfoS("Setting up DevContainer with manager")
|
|
if err := reconciler.SetupWithManager(mgr); err != nil {
|
|
return fmt.Errorf("failed to setup DevContainer controller: %w", err)
|
|
}
|
|
|
|
return nil
|
|
}
|