Initial scaffold: API service, K8s operator, and CRDs
Forgebot is a K8s operator + API service for dispatching AI agent jobs from git forge commands. Includes: - CRDs: AgentPool, AgentTask, ProviderQueue, RepositoryBinding - API server with webhook handler, task queue, and comment proxy - Operator controllers for task scheduling and job management - Gitea provider with webhook parsing and signature verification - PostgreSQL database with auto-migration - Woodpecker CI pipelines and multi-stage Dockerfiles
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.17.3
|
||||
name: agenttasks.forgebot.unkin.net
|
||||
spec:
|
||||
group: forgebot.unkin.net
|
||||
names:
|
||||
kind: AgentTask
|
||||
listKind: AgentTaskList
|
||||
plural: agenttasks
|
||||
singular: agenttask
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- additionalPrinterColumns:
|
||||
- jsonPath: .spec.command
|
||||
name: Command
|
||||
type: string
|
||||
- jsonPath: .spec.repository
|
||||
name: Repo
|
||||
type: string
|
||||
- jsonPath: .status.phase
|
||||
name: Phase
|
||||
type: string
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Age
|
||||
type: date
|
||||
name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
properties:
|
||||
apiVersion:
|
||||
description: |-
|
||||
APIVersion defines the versioned schema of this representation of an object.
|
||||
Servers should convert recognized schemas to the latest internal value, and
|
||||
may reject unrecognized values.
|
||||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
|
||||
type: string
|
||||
kind:
|
||||
description: |-
|
||||
Kind is a string value representing the REST resource this object represents.
|
||||
Servers may infer this from the endpoint the client submits requests to.
|
||||
Cannot be updated.
|
||||
In CamelCase.
|
||||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
command:
|
||||
type: string
|
||||
context:
|
||||
properties:
|
||||
author:
|
||||
type: string
|
||||
body:
|
||||
type: string
|
||||
commentID:
|
||||
format: int64
|
||||
type: integer
|
||||
issueNumber:
|
||||
type: integer
|
||||
prNumber:
|
||||
type: integer
|
||||
required:
|
||||
- author
|
||||
type: object
|
||||
extraTools:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
parentTaskRef:
|
||||
type: string
|
||||
poolRef:
|
||||
type: string
|
||||
ref:
|
||||
type: string
|
||||
repository:
|
||||
type: string
|
||||
skill:
|
||||
type: string
|
||||
required:
|
||||
- command
|
||||
- context
|
||||
- poolRef
|
||||
- ref
|
||||
- repository
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
childTasks:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
endTime:
|
||||
format: date-time
|
||||
type: string
|
||||
jobName:
|
||||
type: string
|
||||
message:
|
||||
type: string
|
||||
phase:
|
||||
type: string
|
||||
startTime:
|
||||
format: date-time
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
Reference in New Issue
Block a user