Files
devstar/modules/setting/devstar_devcontainer.go
戴明辰 4b6f1b9cb5
All checks were successful
DevStar Studio CI Pipeline - dev branch / build-and-push-x86-64-docker-image (push) Successful in 21m49s
!6 k8s Agent for DevStar DevContainer
* DELETE /api/devcontainer?repoId=${repoId} 删除 DevContainer
* refactor
* GET /api/devcontainer?repoId=${repoId}&wait=true 阻塞式等待打开就绪的 DevContainer
* POST /api/devcontainer 创建 DevContainer
* refactored the code
* Updated context usage with cancel function
* 预留接口,适配单机版 DevStar DevContainer
* bugFix: context canceled while deleting k8s CRD DevcontainerApp
* 用户界面删除 k8s CRD DevContainer
* 用户界面创建 DevContainer 并更新 NodePort
* 完成用户界面创建 DevContainer
* transplant test code into DevStar Studio
* refactored API router to /routers/api
* 更改 DevContainer Doc
* 更改 DevContainer namespace
* 特殊仓库重定向
* [Doc] 更新 Kubernetes 部署 DevStar Studio 文档说明,特别是 namespace 管理
* [Doc] 更新 CI脚本说明
* Revert "optimized CI workflow"
* optimized CI workflow
* fix typo
* [feature test]: 测试 Pod 内使用 Kubernetes Operator 功能
* [Optimization] error msg for archived repo
* [Optimization]: display detailed err msg on creating devContainer for …
2024-09-30 06:48:01 +00:00

59 lines
1.9 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package setting
import (
"code.gitea.io/gitea/modules/log"
)
const (
DEVCONTAINER_AGENT_NAME_K8S string = "k8s"
DEVCONTAINER_AGENT_NAME_DOCKER string = "docker"
)
// package 内部私有变量,是一个 Set 结构,标识目前系统所有支持的 DevContainer Agent 类型
var validDevcontainerAgentSet = map[string]struct{}{
DEVCONTAINER_AGENT_NAME_K8S: {},
DEVCONTAINER_AGENT_NAME_DOCKER: {},
}
var Devstar = struct {
Devcontainer DevcontainerType `ini:"devstar.devcontainer"`
}{
Devcontainer: DevcontainerType{
Enabled: false,
Namespace: "default",
TimeoutSeconds: 900, // 最长等待 DevContainer 就绪时间阻塞式默认15分钟可被 app.ini 指定值覆盖
},
}
type DevcontainerType struct {
Enabled bool `ini:"enabled"`
Host string `ini:"host"`
Agent string `ini:"agent"`
Namespace string `ini:"namespace"`
TimeoutSeconds int64 `ini:"timeout_seconds"`
}
// loadDevstarDevcontainerFrom 从 ini 配置文件中读取 DevStar DevContainer 配置信息,并进行检查,若数据无效,则自动禁用 DevContainer
func loadDevstarDevcontainerFrom(rootCfg ConfigProvider) {
mustMapSetting(rootCfg, "devstar", &Devstar)
// 检查 Host 是否为空,若为空,则自动将 DevContainer 设置为禁用
if len(Devstar.Devcontainer.Host) == 0 {
log.Warn("INVALID config 'host' for DevStar DevContainer")
Devstar.Devcontainer.Enabled = false
}
// 检查用户输入的 DevContainer Agent 是否存在支持列表,若不支持,则将 DevContainer 设置为禁用
if _, exists := validDevcontainerAgentSet[Devstar.Devcontainer.Agent]; !exists {
log.Warn("INVALID config 'agent' for DevStar DevContainer")
Devstar.Devcontainer.Enabled = false
}
if Devstar.Devcontainer.Enabled == false {
log.Warn("DevStar DevContainer Service Disabled")
} else {
log.Info("DevStar DevContainer Service Enabled")
}
}