gatewayclass

package
v0.0.0-...-961ac21 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2026 License: Apache-2.0 Imports: 41 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ControllerInstalledConditionType indicates whether the Istio control plane (istiod)
	// has been successfully installed by the Sail Library.
	// Status values:
	//   - True (Installed): istiod is installed and running
	//   - False (InstallFailed): installation failed with an error
	//   - Unknown (Pending): waiting for first reconciliation
	ControllerInstalledConditionType = "ControllerInstalled"

	// CRDsReadyConditionType indicates the ownership and readiness state of Istio CRDs.
	// Status values:
	//   - True (ManagedByCIO/ManagedByOLM): CRDs are managed by CIO or OLM respectively
	//   - Unknown (NoneExist): CRDs have not yet been installed
	//   - False (MixedOwnership/UnknownManagement): CRDs have conflicting ownership or unknown management
	CRDsReadyConditionType = "CRDsReady"
)
View Source
const (
	// RequiredSCCRestrictedV2 is name of the "restricted-v2" SCC.
	RequiredSCCRestrictedV2 = "restricted-v2"
	// WorkloadPartitioningManagementAnnotationKey is the annotation key for
	// workload partitioning.
	WorkloadPartitioningManagementAnnotationKey = "target.workload.openshift.io/management"
	// WorkloadPartitioningManagementPreferredScheduling is the annotation
	// value for preferred scheduling of workload.
	WorkloadPartitioningManagementPreferredScheduling = `{"effect": "PreferredDuringScheduling"}`
)

Variables

This section is empty.

Functions

func NewUnmanaged

func NewUnmanaged(mgr manager.Manager, config Config) (controller.Controller, error)

NewUnmanaged creates and returns a controller that watches gatewayclasses and installs and configures Istio. This is an unmanaged controller, which means that the manager does not start it.

Types

type Config

type Config struct {
	// OperatorNamespace is the namespace in which the operator is deployed.
	OperatorNamespace string
	// OperandNamespace is the namespace in which Istio should be deployed.
	OperandNamespace string
	// GatewayAPIOperatorCatalog is the catalog source to use to install the Gateway API implementation.
	GatewayAPIOperatorCatalog string
	// GatewayAPIOperatorChannel is the release channel of the Gateway API implementation to install.
	GatewayAPIOperatorChannel string
	// GatewayAPIOperatorVersion is the name and release of the Gateway API implementation to install.
	GatewayAPIOperatorVersion string
	// GatewayAPIWithoutOLMEnabled indicates whether the GatewayAPIWithoutOLM feature gate is enabled.
	GatewayAPIWithoutOLMEnabled bool
	// IstioVersion is the version of Istio to install.
	IstioVersion string
	// Context is the context for controller lifecycle.
	Context context.Context
}

Config holds all the configuration that must be provided when creating the controller.

type SailLibraryInstaller

type SailLibraryInstaller interface {
	Start(ctx context.Context) <-chan struct{}
	Apply(opts install.Options)
	Uninstall(ctx context.Context, namespace, revision string) error
	Status() install.Status
	Enqueue()
}

SailLibraryInstaller implements the methods of sail library but in a way we can also mock and test

type SailLibrarySource

type SailLibrarySource[T client.Object] struct {
	NotifyCh     <-chan struct{}
	RequestsFunc func(context.Context, client.Object) []reconcile.Request
}

SailLibrarySource bridges a Sail Library channel to a MapFunc logic. The Sail Library contains a source channel where notification for changes (like drifts) can be sent back to our controller, so we trigger a reconciliation of our GatewayClass and its status.

func (*SailLibrarySource[T]) Start

Jump to

Keyboard shortcuts

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