- Config loader with env var expansion and validation - SQLite database with tasks and toolchain_versions tables - Gitea REST API client for repository and branch operations - K8s client for Job lifecycle management (with noop fallback for local dev) - REST API: tasks CRUD, retry, plugins, version management - Worker/scheduler with polling, concurrency control, and job tracking - Static frontend: generate, tasks, settings pages - Toolchain images: Go and Node.js Dockerfiles with entrypoint scripts - Helm chart with deployment, service, configmap, ingress, PVC - Multi-stage Dockerfile for service - Unit tests for config, database, gitclient, k8s, api, worker - E2E tests for idempotency, version switch, failure recovery
28 lines
500 B
Go
28 lines
500 B
Go
package k8s
|
|
|
|
type noopClient struct{}
|
|
|
|
func NewNoopClient() K8sClient {
|
|
return &noopClient{}
|
|
}
|
|
|
|
func (c *noopClient) CreateJob(spec *JobSpec) (*Job, error) {
|
|
return &Job{
|
|
Name: spec.Name,
|
|
Namespace: spec.Namespace,
|
|
Status: JobPending,
|
|
}, nil
|
|
}
|
|
|
|
func (c *noopClient) GetJob(name, namespace string) (*Job, error) {
|
|
return &Job{
|
|
Name: name,
|
|
Namespace: namespace,
|
|
Status: JobPending,
|
|
}, nil
|
|
}
|
|
|
|
func (c *noopClient) DeleteJob(name, namespace string) error {
|
|
return nil
|
|
}
|