- 7 CRDs (Agent, AgentConfig, AgentGroup, Channel, Provider, WorkflowTemplate, CompliancePolicy) - 3 controllers (Agent, WorkflowTemplate, CompliancePolicy) - Generated deepcopy methods (controller-gen v0.16.5) - Dockerfile (multi-stage Go build) - Nix build-image.nix (dockerTools.streamLayeredImage) - Helm chart with RBAC, deployment, service account - Deploy manifests (RBAC + controller deployment) - Sample manifests for all 7 CRDs - Quickstart script - Successfully deployed to k3s on n97-mini: - Controller running and reconciling - All 7 CRDs registered - Agent CR creates Pod (ErrImagePull expected — no agent image yet) - Controller logs show reconciliation working
106 lines
3.1 KiB
YAML
106 lines
3.1 KiB
YAML
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
name: workflowtemplates.kubeclaw.scoble.me
|
|
labels:
|
|
app.kubernetes.io/name: kubeclaw
|
|
app.kubernetes.io/part-of: scobleclaw
|
|
spec:
|
|
group: kubeclaw.scoble.me
|
|
names:
|
|
kind: WorkflowTemplate
|
|
listKind: WorkflowTemplateList
|
|
plural: workflowtemplates
|
|
singular: workflowtemplate
|
|
shortNames:
|
|
- wt
|
|
- wft
|
|
scope: Cluster
|
|
versions:
|
|
- name: v1alpha1
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|
|
additionalPrinterColumns:
|
|
- name: Audit
|
|
type: string
|
|
jsonPath: .spec.auditLevel
|
|
- name: Steps
|
|
type: integer
|
|
jsonPath: .spec.steps
|
|
- name: Ready
|
|
type: boolean
|
|
jsonPath: .status.ready
|
|
- name: Age
|
|
type: date
|
|
jsonPath: .metadata.creationTimestamp
|
|
schema:
|
|
openAPIV3Schema:
|
|
type: object
|
|
properties:
|
|
spec:
|
|
type: object
|
|
required: [displayName, description, steps, parametersSchema, outputSchema, auditLevel]
|
|
properties:
|
|
displayName:
|
|
type: string
|
|
description:
|
|
type: string
|
|
steps:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required: [name, action, target]
|
|
properties:
|
|
name:
|
|
type: string
|
|
action:
|
|
type: string
|
|
target:
|
|
type: string
|
|
condition:
|
|
type: string
|
|
onFailure:
|
|
type: string
|
|
enum: [stop, skip, continue]
|
|
parametersSchema:
|
|
type: object
|
|
x-kubernetes-preserve-unknown-fields: true
|
|
outputSchema:
|
|
type: object
|
|
x-kubernetes-preserve-unknown-fields: true
|
|
complianceRequirements:
|
|
type: array
|
|
items:
|
|
type: string
|
|
requiresApproval:
|
|
type: array
|
|
items:
|
|
type: string
|
|
allowedDataSources:
|
|
type: array
|
|
items:
|
|
type: string
|
|
allowedDestinations:
|
|
type: array
|
|
items:
|
|
type: string
|
|
auditLevel:
|
|
type: string
|
|
enum: [minimal, standard, full]
|
|
status:
|
|
type: object
|
|
properties:
|
|
ready:
|
|
type: boolean
|
|
validated:
|
|
type: boolean
|
|
usedByAgents:
|
|
type: array
|
|
items:
|
|
type: string
|
|
lastInstantiated:
|
|
type: string
|
|
format: date-time
|