`json:"metadata,omitempty"` Spec CronJobSpec `json:"spec,omitempty"` Status CronJobStatus `json:"status,omitempty"` } type CronJobSpec struct { //+kubebuilder:validation:MinLength=0 Schedule string `json:"schedule"` //+kubebuilder:validation:Minimum=0 // +optional StartingDeadlineSeconds *int64 `json:"startingDeadlineSeconds,omitempty"` // +optional ConcurrencyPolicy ConcurrencyPolicy `json:"concurrencyPolicy,omitempty"` // +optional Suspend *bool `json:"suspend,omitempty"` JobTemplate batchv1beta1.JobTemplateSpec `json:"jobTemplate"` } type CronJobStatus struct { // +optional Active []corev1.ObjectReference `json:"active,omitempty"` // +optional LastScheduleTime *metav1.Time `json:"lastScheduleTime,omitempty"` } TypeMeta, ObjectMeta, Spec, Statusを持つ構 造体を定義 //+kubebuilder:... はcontroller-genに渡される情報を表す マーカコメント (後ろの空行とセット) cronjob_types.go (抜粋) バリデーションもマーカコメントで記述 他のビルトインリソースやカスタムリソースの入 れ子も可能