reconciler

package
v1.18.0 Latest Latest
Warning

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

Go to latest
Published: Apr 13, 2024 License: Apache-2.0 Imports: 28 Imported by: 0

Documentation

Overview

Package reconciler declares the reconciler process which is described in go/config-sync-multi-repo. This process has four main components: git-sync, parser, applier, remediator

git-sync is a third party component that runs in a sidecar container. The other three components are all declared in their respective packages.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Run

func Run(opts Options)

Run configures and starts the various components of a reconciler process.

Types

type Options

type Options struct {
	// ClusterName is the name of the cluster we are parsing configuration for.
	ClusterName string
	// FightDetectionThreshold is the rate of updates per minute to an API
	// Resource at which the reconciler will log warnings about too many updates
	// to the resource.
	FightDetectionThreshold float64
	// NumWorkers is the number of concurrent remediator workers to run at once.
	// Each worker pulls resources off of the work queue and remediates them one
	// at a time.
	NumWorkers int
	// ReconcilerScope is the scope of resources which the reconciler will manage.
	// Currently this can either be a namespace or the root scope which allows a
	// cluster admin to manage the entire cluster.
	//
	// At most one Reconciler may have a given value for Scope on a cluster. More
	// than one results in undefined behavior.
	ReconcilerScope declared.Scope
	// SyncName is the name of the RootSync or RepoSync object.
	SyncName string
	// ReconcilerName is the name of the Reconciler Deployment.
	ReconcilerName string
	// ResyncPeriod is the period of time between forced re-sync from source (even
	// without a new commit).
	ResyncPeriod time.Duration
	// PollingPeriod is the period of time between checking the filesystem for
	// source updates to sync.
	PollingPeriod time.Duration
	// RetryPeriod is the period of time between checking the filesystem for
	// source updates to sync, after an error.
	RetryPeriod time.Duration
	// StatusUpdatePeriod is how long the parser waits between updates of the
	// sync status, to account for management conflict errors from the remediator.
	StatusUpdatePeriod time.Duration
	// SourceRoot is the absolute path to the source repository.
	// Usually contains a symlink that must be resolved every time before parsing.
	SourceRoot cmpath.Absolute
	// HydratedRoot is the absolute path to the hydrated configs.
	// If hydration is not performed, it will be an empty path.
	HydratedRoot string
	// RepoRoot is the absolute path to the parent directory of SourceRoot and HydratedRoot.
	RepoRoot cmpath.Absolute
	// HydratedLink is the relative path to the hydrated root.
	// It is a symlink that links to the hydrated configs under the hydrated root dir.
	HydratedLink string
	// SourceRev is the git revision or a helm chart version being synced.
	SourceRev string
	// SourceBranch is the git branch being synced.
	SourceBranch string
	// SourceRepo is the git or OCI or Helm repo being synced.
	SourceRepo string
	// SourceType is the type of the source repository, must be git or oci or Helm.
	SourceType v1beta1.SourceType
	// SyncDir is the relative path to the configurations in the source.
	SyncDir cmpath.Relative
	// StatusMode controls the kpt applier to inject the actuation status data or not
	StatusMode string
	// ReconcileTimeout controls the reconcile/prune Timeout in kpt applier
	ReconcileTimeout string
	// APIServerTimeout is the client-side timeout used for talking to the API server
	APIServerTimeout string
	// RenderingEnabled indicates whether the reconciler Pod is currently running
	// with the hydration-controller.
	RenderingEnabled bool
	// RootOptions is the set of options to fill in if this is configuring the
	// Root reconciler.
	// Unset for Namespace repositories.
	*RootOptions
	// DynamicNSSelectorEnabled indicates whether there exists at least one
	// NamespaceSelector using the dynamic mode, which requires Namespace
	// controller running to watch Namespace events.
	DynamicNSSelectorEnabled bool
	// WebhookEnabled is indicates whether the Admission Webhook is currently
	// installed and running
	WebhookEnabled bool
}

Options contains the settings for a reconciler process.

type RootOptions

type RootOptions struct {
	// SourceFormat is how the Root repository is structured.
	SourceFormat filesystem.SourceFormat
	// NamespaceStrategy indicates the NamespaceStrategy used by this reconciler.
	NamespaceStrategy configsync.NamespaceStrategy
}

RootOptions are the options specific to parsing Root repositories.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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