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 ¶
func (s *SailLibrarySource[T]) Start(ctx context.Context, queue workqueue.TypedRateLimitingInterface[reconcile.Request]) error
Click to show internal directories.
Click to hide internal directories.