WardenPolicy.java
package io.github.baokhang83.mnemo.warden.crd;
import io.fabric8.kubernetes.api.model.Namespaced;
import io.fabric8.kubernetes.client.CustomResource;
import io.fabric8.kubernetes.model.annotation.Group;
import io.fabric8.kubernetes.model.annotation.Version;
/**
* The {@code WardenPolicy} custom resource: a declarative schedule of {@link ResourceProfile}
* transitions for one target workload (constitution: M3's whole reason for existing). {@code
* Namespaced}, not cluster-scoped — a policy governs one workload in one namespace, the
* same scope {@link TargetRef} names.
*
* <p>No {@code @Kind} annotation: the generated Kind already matches this class's own name
* ({@code WardenPolicy}), so declaring it again would be redundant (ยง1).
*/
@Group("warden.mnemo.io")
@Version("v1alpha1")
public class WardenPolicy extends CustomResource<WardenPolicySpec, WardenPolicyStatus> implements Namespaced {}