webhooks

package
v0.0.0-...-a3c95e9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 4, 2024 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Webhooks = RegisteredWebhooks{}

Webhooks are all registered webhooks mapping name to hook

Functions

func Register

func Register(name string, input WebhookFactory)

Register webhooks

Types

type RegisteredWebhooks

type RegisteredWebhooks map[string]WebhookFactory

type Webhook

type Webhook interface {
	// Authorized will determine if the request is allowed
	Authorized(request admissionctl.Request) admissionctl.Response
	// GetURI returns the URI for the webhook
	GetURI() string
	// Validate will validate the incoming request
	Validate(admissionctl.Request) bool
	// Name is the name of the webhook
	Name() string
	// FailurePolicy is how the hook config should react if k8s can't access it
	// https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy
	FailurePolicy() admissionregv1.FailurePolicyType
	// MatchPolicy mirrors validatingwebhookconfiguration.webhooks[].matchPolicy.
	// If it is important to the webhook, be sure to check subResource vs
	// requestSubResource.
	// https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy
	MatchPolicy() admissionregv1.MatchPolicyType
	// Rules is a slice of rules on which this hook should trigger
	Rules() []admissionregv1.RuleWithOperations
	// ObjectSelector uses a *metav1.LabelSelector to augment the webhook's
	// Rules() to match only on incoming requests which match the specific
	// LabelSelector.
	ObjectSelector() *metav1.LabelSelector
	// SideEffects are what side effects, if any, this hook has. Refer to
	// https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#side-effects
	SideEffects() admissionregv1.SideEffectClass
	// TimeoutSeconds returns an int32 representing how long to wait for this hook to complete
	// The timeout value must be between 1 and 30 seconds.
	// https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#timeouts
	TimeoutSeconds() int32
	// Doc returns a string for end-customer documentation purposes.
	Doc() string
	// SyncSetLabelSelector returns the label selector to use in the SyncSet.
	// Return utils.DefaultLabelSelector() to stick with the default
	SyncSetLabelSelector() metav1.LabelSelector
	// ClassicEnabled will return true if the webhook should be deployed to OSD/ROSA Classic clusters
	ClassicEnabled() bool
	// HypershiftEnabled will return true if the webhook should be deployed to ROSA HCP clusters
	HypershiftEnabled() bool
}

Webhook interface

type WebhookFactory

type WebhookFactory func() Webhook

WebhookFactory return a kind of Webhook

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL