Documentation
¶
Index ¶
- type PackageRevisionValidator
- func (v *PackageRevisionValidator) Handle(ctx context.Context, req admission.Request) admission.Response
- func (v *PackageRevisionValidator) ValidateCreate(ctx context.Context, obj *v1alpha2.PackageRevision) (admission.Warnings, error)
- func (v *PackageRevisionValidator) ValidateDelete(ctx context.Context, obj *v1alpha2.PackageRevision) (admission.Warnings, error)
- func (v *PackageRevisionValidator) ValidateUpdate(ctx context.Context, oldObj, newObj *v1alpha2.PackageRevision) (admission.Warnings, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type PackageRevisionValidator ¶
type PackageRevisionValidator struct {
// contains filtered or unexported fields
}
PackageRevisionValidator validates v1alpha2 PackageRevision CRDs. It enforces all CREATE, UPDATE, and DELETE validation rules per the spec.
func NewPackageRevisionValidator ¶
func NewPackageRevisionValidator(client client.Reader) *PackageRevisionValidator
NewPackageRevisionValidator creates a new PackageRevisionValidator.
func (*PackageRevisionValidator) Handle ¶
func (v *PackageRevisionValidator) Handle(ctx context.Context, req admission.Request) admission.Response
Handle implements the admission.Handler interface for webhook registration. It dispatches to the validator's methods based on the operation type.
func (*PackageRevisionValidator) ValidateCreate ¶
func (v *PackageRevisionValidator) ValidateCreate(ctx context.Context, obj *v1alpha2.PackageRevision) (admission.Warnings, error)
ValidateCreate validates creation of a PackageRevision. Repo-discovered packages (Source == nil) can have any lifecycle (determined from git refs). User-created packages (Source != nil) must have Draft or Proposed lifecycle on CREATE.
func (*PackageRevisionValidator) ValidateDelete ¶
func (v *PackageRevisionValidator) ValidateDelete(ctx context.Context, obj *v1alpha2.PackageRevision) (admission.Warnings, error)
ValidateDelete validates deletion of a PackageRevision. Check ordering:
- DeletionTimestamp (K8s GC already accepted a prior DELETE) - allow
- Upstream references (data integrity) - block if dependents exist
- Published lifecycle - block unless owner repo is gone (cascade deletion)
func (*PackageRevisionValidator) ValidateUpdate ¶
func (v *PackageRevisionValidator) ValidateUpdate(ctx context.Context, oldObj, newObj *v1alpha2.PackageRevision) (admission.Warnings, error)
ValidateUpdate validates updates to a PackageRevision.