Documentation
¶
Overview ¶
Copyright 2025 Nutanix. All rights reserved. SPDX-License-Identifier: Apache-2.0
Copyright 2025 Nutanix. All rights reserved. SPDX-License-Identifier: Apache-2.0
Index ¶
Constants ¶
const ( // Timeout is the duration, in seconds, that the preflight checks handler has to respond. // IMPORTANT Keep in sync timeoutSeconds in the kubebuilder:webhook marker defined in this package. Timeout = 30 * time.Second )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Cause ¶
type Cause struct { // Message is a human-readable message describing the cause of the failure. Message string // Field is an optional field that the cause relates to. // It is used to indicate which part of the cluster configuration the cause relates to. // It is a JSONPath expression that points to the field in the cluster configuration. // For example, "spec.topology.variables[.name=clusterConfig].value.imageRegistries[0]". Field string }
Cause represents a cause of a check failure. It contains a message and an optional field that the cause relates to. The field is used to indicate which part of the cluster configuration the cause relates to.
type Check ¶
type Check interface { // Name returns the name of the check. // The name should be unique across all checks, and should be used to identify the check // in the CheckResult. // It is also used to skip the check if the cluster has skipped it. Name() string // Run executes the check and returns a CheckResult. Run(ctx context.Context) CheckResult }
Check represents a single preflight check that can be run against a cluster. It has a Name method that returns the name of the check, and a Run method executes the check, and returns a CheckResult. The Name method is used to identify the check if Run fails to return a result, for example if it panics.
type CheckResult ¶
type CheckResult struct { // Allowed indicates whether the check passed. Allowed bool // InternalError indicates whether there was an internal error running the check. // This should be false for most check failures. It can be true in case of an unexpected // error, like a network error, an API rate-limit error, etc. InternalError bool // Causes contains a list of causes for the failure. Each cause has a message and an // optional field that the cause relates to. The field is used to indicate which part of // the cluster configuration the cause relates to. Causes []Cause // Warnings contains a list of warnings returned by the check. // For example, a check should return a warning when the cluster uses configuration // not yet supported by the check. Warnings []string }
CheckResult represents the result of a check. It contains the name of the check, a boolean indicating whether the check passed, an error boolean indicating whether there was an internal error running the check, and a list of causes for the failure. It also contains a list of warnings that were generated during the check.
type Checker ¶
type Checker interface { // Init returns the checks that should run for the cluster. Init(ctx context.Context, client ctrlclient.Client, cluster *clusterv1.Cluster) []Check }
Checker returns a set of checks that have been initialized with common dependencies, such as an infrastructure API client.
type WebhookHandler ¶
type WebhookHandler struct {
// contains filtered or unexported fields
}
func New ¶
func New(client ctrlclient.Client, decoder admission.Decoder, checkers ...Checker) *WebhookHandler