applier

package
v1.7.0 Latest Latest
Warning

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

Go to latest
Published: Nov 24, 2025 License: Apache-2.0 Imports: 47 Imported by: 0

Documentation

Index

Constants

View Source
const (
	StateNeedsInstall string = "NeedsInstall"
	StateNeedsUpgrade string = "NeedsUpgrade"
	StateUnchanged    string = "Unchanged"
	StateError        string = "Error"
)
View Source
const (
	ClusterExtensionRevisionRetentionLimit = 5
)

Variables

This section is empty.

Functions

func PhaseSort added in v1.6.0

PhaseSort takes an unsorted list of objects and organizes them into sorted phases. Each phase will be applied in order according to DefaultPhaseOrder. Objects within a single phase are applied simultaneously.

Types

type Boxcutter added in v1.6.0

type Boxcutter struct {
	Client            client.Client
	Scheme            *runtime.Scheme
	RevisionGenerator ClusterExtensionRevisionGenerator
	Preflights        []Preflight
	FieldOwner        string
}

func (*Boxcutter) Apply added in v1.6.0

func (bc *Boxcutter) Apply(ctx context.Context, contentFS fs.FS, ext *ocv1.ClusterExtension, objectLabels, revisionAnnotations map[string]string) (bool, string, error)

type BoxcutterStorageMigrator added in v1.6.0

type BoxcutterStorageMigrator struct {
	ActionClientGetter helmclient.ActionClientGetter
	RevisionGenerator  ClusterExtensionRevisionGenerator
	Client             boxcutterStorageMigratorClient
	Scheme             *runtime.Scheme
}

BoxcutterStorageMigrator migrates ClusterExtensions from Helm-based storage to ClusterExtensionRevision storage, enabling upgrades from older operator-controller versions.

func (*BoxcutterStorageMigrator) Migrate added in v1.6.0

func (m *BoxcutterStorageMigrator) Migrate(ctx context.Context, ext *ocv1.ClusterExtension, objectLabels map[string]string) error

Migrate creates a ClusterExtensionRevision from an existing Helm release if no revisions exist yet. The migration is idempotent and skipped if revisions already exist or no Helm release is found.

type ClusterExtensionRevisionGenerator added in v1.6.0

type ClusterExtensionRevisionGenerator interface {
	GenerateRevision(ctx context.Context, bundleFS fs.FS, ext *ocv1.ClusterExtension, objectLabels, revisionAnnotations map[string]string) (*ocv1.ClusterExtensionRevision, error)
	GenerateRevisionFromHelmRelease(
		ctx context.Context,
		helmRelease *release.Release, ext *ocv1.ClusterExtension,
		objectLabels map[string]string,
	) (*ocv1.ClusterExtensionRevision, error)
}

type Helm

type Helm struct {
	ActionClientGetter            helmclient.ActionClientGetter
	Preflights                    []Preflight
	PreAuthorizer                 authorization.PreAuthorizer
	HelmChartProvider             HelmChartProvider
	HelmReleaseToObjectsConverter HelmReleaseToObjectsConverterInterface

	Manager contentmanager.Manager
	Watcher cache.Watcher
}

func (*Helm) Apply

func (h *Helm) Apply(ctx context.Context, contentFS fs.FS, ext *ocv1.ClusterExtension, objectLabels map[string]string, storageLabels map[string]string) (bool, string, error)

type HelmChartProvider added in v1.6.0

type HelmChartProvider interface {
	Get(bundle fs.FS, clusterExtension *ocv1.ClusterExtension) (*chart.Chart, error)
}

HelmChartProvider provides helm charts from bundle sources and cluster extensions

type HelmReleaseToObjectsConverter added in v1.6.0

type HelmReleaseToObjectsConverter struct {
}

func (HelmReleaseToObjectsConverter) GetObjectsFromRelease added in v1.6.0

func (h HelmReleaseToObjectsConverter) GetObjectsFromRelease(rel *release.Release) ([]client.Object, error)

type HelmReleaseToObjectsConverterInterface added in v1.6.0

type HelmReleaseToObjectsConverterInterface interface {
	GetObjectsFromRelease(rel *release.Release) ([]client.Object, error)
}

type ManifestProvider added in v1.6.0

type ManifestProvider interface {
	// Get returns a set of resource manifests in bundle that take into account the configuration in ext
	Get(bundle fs.FS, ext *ocv1.ClusterExtension) ([]client.Object, error)
}

ManifestProvider returns the manifests that should be applied by OLM given a bundle and its associated ClusterExtension

type Phase added in v1.6.0

type Phase string

Phase represents a well-known phase.

const (
	PhaseNamespaces Phase = "namespaces"
	PhasePolicies   Phase = "policies"
	PhaseRBAC       Phase = "rbac"
	PhaseCRDs       Phase = "crds"
	PhaseStorage    Phase = "storage"
	PhaseDeploy     Phase = "deploy"
	PhasePublish    Phase = "publish"
)

type Preflight

type Preflight interface {
	// Install runs checks that should be successful prior
	// to installing the Helm release. It is provided
	// a Helm release and returns an error if the
	// check is unsuccessful
	Install(context.Context, []client.Object) error

	// Upgrade runs checks that should be successful prior
	// to upgrading the Helm release. It is provided
	// a Helm release and returns an error if the
	// check is unsuccessful
	Upgrade(context.Context, []client.Object) error
}

Preflight is a check that should be run before making any changes to the cluster

type RegistryV1HelmChartProvider added in v1.6.0

type RegistryV1HelmChartProvider struct {
	ManifestProvider ManifestProvider
}

RegistryV1HelmChartProvider creates a Helm-Chart from a registry+v1 bundle and its associated ClusterExtension

func (*RegistryV1HelmChartProvider) Get added in v1.6.0

type RegistryV1ManifestProvider added in v1.6.0

type RegistryV1ManifestProvider struct {
	BundleRenderer              render.BundleRenderer
	CertificateProvider         render.CertificateProvider
	IsWebhookSupportEnabled     bool
	IsSingleOwnNamespaceEnabled bool
}

RegistryV1ManifestProvider generates the manifests that should be installed for a registry+v1 bundle given the user specified configuration given by the ClusterExtension API surface

func (*RegistryV1ManifestProvider) Get added in v1.6.0

type SimpleRevisionGenerator added in v1.6.0

type SimpleRevisionGenerator struct {
	Scheme           *runtime.Scheme
	ManifestProvider ManifestProvider
}

func (*SimpleRevisionGenerator) GenerateRevision added in v1.6.0

func (r *SimpleRevisionGenerator) GenerateRevision(
	ctx context.Context,
	bundleFS fs.FS, ext *ocv1.ClusterExtension,
	objectLabels, revisionAnnotations map[string]string,
) (*ocv1.ClusterExtensionRevision, error)

func (*SimpleRevisionGenerator) GenerateRevisionFromHelmRelease added in v1.6.0

func (r *SimpleRevisionGenerator) GenerateRevisionFromHelmRelease(
	ctx context.Context,
	helmRelease *release.Release, ext *ocv1.ClusterExtension,
	objectLabels map[string]string,
) (*ocv1.ClusterExtensionRevision, error)

Jump to

Keyboard shortcuts

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