AgentSkillsCN

ark-controller-development

为Ark Kubernetes Operator的开发提供指导。当您需要修改Go类型、CRD、控制器,或自定义Webhook时,此工具将大有裨益——它不仅能协助生成CRD,还能有效解决Helm Chart同步中的各类难题。

SKILL.md
--- frontmatter
name: ark-controller-development
description: Guidance for developing the Ark Kubernetes operator. Use when modifying Go types, CRDs, controllers, or webhooks. Helps with CRD generation and Helm chart sync issues.

Ark Controller Development

Guidance for developing the Ark Kubernetes operator in ark/.

When to use this skill

  • Modifying Go type definitions (api/v1alpha1/*_types.go)
  • Fixing CRD/Helm chart sync errors
  • Adding new CRD fields or resources

CRD Generation Flow

code
api/v1alpha1/*_types.go     # Go types with markers
        ↓
    make manifests          # Generates CRDs and syncs to Helm chart
        ↓
config/crd/bases/*.yaml     # Source CRDs (auto-generated)
dist/chart/templates/crd/   # Helm chart CRDs (auto-synced)

make manifests automatically syncs source CRDs to the Helm chart while preserving templated headers.

Fixing "CRDs out of sync" Errors

When make build fails with CRD validation errors:

bash
cd ark
make manifests
make build

Key Directories

DirectoryPurpose
api/v1alpha1/Go type definitions
config/crd/bases/Auto-generated source CRDs
dist/chart/templates/crd/Helm chart CRDs (auto-synced)
internal/controller/Reconciliation logic
internal/webhook/Admission webhooks
internal/genai/AI/ML execution logic

Common Tasks

After Modifying Types or Comments

Go type comments become CRD field descriptions:

bash
cd ark
make manifests
make build

After Any Go Code Change

bash
make lint-fix    # Format and fix linting
make build       # Build and validate