applier

package
v0.0.3 Latest Latest
Warning

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

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

Documentation

Index

Constants

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

Variables

This section is empty.

Functions

func PhaseSort

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

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

func (*Boxcutter) Apply

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

type BoxcutterStorageMigrator

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

func (*BoxcutterStorageMigrator) Migrate

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

type ClusterExtensionRevisionGenerator

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 crcontroller.Controller
}

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

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

type HelmReleaseToObjectsConverter struct {
}

func (HelmReleaseToObjectsConverter) GetObjectsFromRelease

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

type HelmReleaseToObjectsConverterInterface

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

type ManifestProvider

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

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

type RegistryV1HelmChartProvider struct {
	ManifestProvider ManifestProvider
}

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

func (*RegistryV1HelmChartProvider) Get

type RegistryV1ManifestProvider

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

type SimpleRevisionGenerator

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

func (*SimpleRevisionGenerator) GenerateRevision

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

func (*SimpleRevisionGenerator) GenerateRevisionFromHelmRelease

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