Files
devstar/modules/k8s/client/client.go
panshuxiao 33a4a54e85 !68 添加了devcontainer在k8s下的重启、暂停、webTerminal功能
* 修复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 …
2025-05-13 10:50:26 +00:00

52 lines
1.6 KiB
Go

package client
import (
"context"
"k8s.io/apimachinery/pkg/types"
"sigs.k8s.io/controller-runtime/pkg/client"
appsv1 "code.gitea.io/gitea/modules/k8s/api/v1"
)
// DevStarClient 提供操作 DevContainerApp 资源的方法
type DevStarClient struct {
client client.Client
}
// NewDevStarClient 创建一个新的客户端
func NewDevStarClient(c client.Client) *DevStarClient {
return &DevStarClient{
client: c,
}
}
// GetDevContainerApp 获取 DevContainerApp 资源
func (c *DevStarClient) GetDevContainerApp(ctx context.Context, name, namespace string) (*appsv1.DevcontainerApp, error) {
app := &appsv1.DevcontainerApp{}
err := c.client.Get(ctx, types.NamespacedName{Name: name, Namespace: namespace}, app)
return app, err
}
// CreateDevContainerApp 创建 DevContainerApp 资源
func (c *DevStarClient) CreateDevContainerApp(ctx context.Context, app *appsv1.DevcontainerApp) error {
return c.client.Create(ctx, app)
}
// UpdateDevContainerApp 更新 DevContainerApp 资源
func (c *DevStarClient) UpdateDevContainerApp(ctx context.Context, app *appsv1.DevcontainerApp) error {
return c.client.Update(ctx, app)
}
// DeleteDevContainerApp 删除 DevContainerApp 资源
func (c *DevStarClient) DeleteDevContainerApp(ctx context.Context, app *appsv1.DevcontainerApp) error {
return c.client.Delete(ctx, app)
}
// ListDevContainerApps 列出 DevContainerApp 资源
func (c *DevStarClient) ListDevContainerApps(ctx context.Context, namespace string) (*appsv1.DevcontainerAppList, error) {
list := &appsv1.DevcontainerAppList{}
err := c.client.List(ctx, list, client.InNamespace(namespace))
return list, err
}