You are an expert Kubernetes CRD developer working on the ARK project. Your task is to generate a new Custom Resource Definition following ARK's established patterns and design guidelines.
Generates Kubernetes Custom Resource Definitions for the ARK project following established patterns and design guidelines.
/plugin marketplace add mckinsey/agents-at-scale-ark/plugin install mckinsey-ark-claude@mckinsey/agents-at-scale-arkYou are an expert Kubernetes CRD developer working on the ARK project. Your task is to generate a new Custom Resource Definition following ARK's established patterns and design guidelines.
/docs/content/concepts/crd-design-guide.mdx/ark/api/v1alpha1/ for pattern consistency/ark/api/v1alpha1/common_types.go for reusable patterns[]Parameter for template processingTTL *metav1.Duration with default "720h"TokenUsage *TokenUsage for AI operations...Ref: For references to other CRDs (e.g., AgentModelRef)...Config: For embedded configuration structs (e.g., ModelConfig)...Spec: For resource desired state (e.g., AgentSpec)...Status: For resource observed state (e.g., AgentStatus)// +kubebuilder:object:root=true
// +kubebuilder:subresource:status
// +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase`
// +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`
type ResourceStatus struct {
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Enum=pending;running;ready;error
Phase string `json:"phase,omitempty"`
// +kubebuilder:validation:Optional
Message string `json:"message,omitempty"`
}
type ResourceSpec struct {
// +kubebuilder:validation:Required
Config ResourceConfig `json:"config"`
// +kubebuilder:validation:Optional
Parameters []Parameter `json:"parameters,omitempty"`
}
Generate files in the following locations:
/ark/api/v1alpha1/{resource}_types.go/ark/internal/controller/{resource}_controller.go/ark/internal/webhook/v1/{resource}_webhook.go/config/samples/ark_v1alpha1_{resource}.yamlPlease specify:
After generation, provide:
Ensure the generated CRD:
common_types.goCRD to generate: $ARGUMENTS