applicationconfiguration

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Jun 27, 2020 License: Apache-2.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ConstructRevisionName added in v0.0.2

func ConstructRevisionName(componentName string) string

ConstructRevisionName will generate revisionName from componentName hash suffix char set added to componentName is (0-9, a-v)

func ExtractComponentName added in v0.0.2

func ExtractComponentName(revisionName string) string

ExtractComponentName will extract componentName from revisionName

func IsRevisionEnabled added in v0.0.2

func IsRevisionEnabled(traitDefs []v1alpha2.TraitDefinition) bool

IsRevisionEnabled will check if any trait has createRevision flag, the appconfig should create a new workload instance

func IsRevisionWorkload added in v0.0.2

func IsRevisionWorkload(status v1alpha2.WorkloadStatus) bool

IsRevisionWorkload check is a workload is an old revision Workload which shouldn't be garbage collected. TODO(wonderflow): Do we have a better way to recognise it's a revisionWorkload which can't be garbage collected by AppConfig?

func SetWorkloadInstanceName added in v0.0.2

func SetWorkloadInstanceName(traitDefs []v1alpha2.TraitDefinition, w *unstructured.Unstructured, c *v1alpha2.Component) error

SetWorkloadInstanceName will set metadata.name for workload CR according to createRevision flag in traitDefinition

func Setup

func Setup(mgr ctrl.Manager, l logging.Logger) error

Setup adds a controller that reconciles ApplicationConfigurations.

func UnpackRevisionData added in v0.0.2

func UnpackRevisionData(rev *appsv1.ControllerRevision) (*v1alpha2.Component, error)

UnpackRevisionData will unpack revision.Data to Component

Types

type ComponentHandler added in v0.0.2

type ComponentHandler struct {
	// contains filtered or unexported fields
}

ComponentHandler will watch component change and generate Revision automatically.

func (*ComponentHandler) Create added in v0.0.2

Create implements EventHandler

func (*ComponentHandler) Delete added in v0.0.2

Delete implements EventHandler

func (*ComponentHandler) Generic added in v0.0.2

Generic implements EventHandler

func (*ComponentHandler) IsRevisionDiff added in v0.0.2

func (c *ComponentHandler) IsRevisionDiff(mt metav1.Object, curComp *v1alpha2.Component) (bool, int64)

IsRevisionDiff check whether there's any different between two component revision

func (*ComponentHandler) Update added in v0.0.2

Update implements EventHandler

type ComponentRenderFn

type ComponentRenderFn func(ctx context.Context, ac *v1alpha2.ApplicationConfiguration) ([]Workload, error)

A ComponentRenderFn renders an ApplicationConfiguration's Components into workloads and traits.

func (ComponentRenderFn) Render

Render an ApplicationConfiguration's Components into workloads and traits.

type ComponentRenderer

type ComponentRenderer interface {
	Render(ctx context.Context, ac *v1alpha2.ApplicationConfiguration) ([]Workload, error)
}

A ComponentRenderer renders an ApplicationConfiguration's Components into workloads and traits.

type GarbageCollector

type GarbageCollector interface {
	Eligible(namespace string, ws []v1alpha2.WorkloadStatus, w []Workload) []unstructured.Unstructured
}

A GarbageCollector returns resource eligible for garbage collection. A resource is considered eligible if a reference exists in the supplied slice of workload statuses, but not in the supplied slice of workloads.

type GarbageCollectorFn

type GarbageCollectorFn func(namespace string, ws []v1alpha2.WorkloadStatus, w []Workload) []unstructured.Unstructured

A GarbageCollectorFn returns resource eligible for garbage collection.

func (GarbageCollectorFn) Eligible

Eligible resources.

type Parameter

type Parameter struct {
	// Name of this parameter.
	Name string

	// Value of this parameter.
	Value intstr.IntOrString

	// FieldPaths that should be set to this parameter's value.
	FieldPaths []string
}

A Parameter may be used to set the supplied paths to the supplied value.

type ParameterResolveFn

A ParameterResolveFn resolves the parameters accepted by a component and the parameter values supplied to a component into configured parameters.

func (ParameterResolveFn) Resolve

Resolve the supplied parameters.

type ParameterResolver

type ParameterResolver interface {
	Resolve([]v1alpha2.ComponentParameter, []v1alpha2.ComponentParameterValue) ([]Parameter, error)
}

A ParameterResolver resolves the parameters accepted by a component and the parameter values supplied to a component into configured parameters.

type Reconciler

type Reconciler struct {
	// contains filtered or unexported fields
}

A Reconciler reconciles OAM ApplicationConfigurations by rendering and instantiating their Components and Traits.

func NewReconciler

func NewReconciler(m ctrl.Manager, o ...ReconcilerOption) *Reconciler

NewReconciler returns a Reconciler that reconciles ApplicationConfigurations by rendering and instantiating their Components and Traits.

func (*Reconciler) Reconcile

func (r *Reconciler) Reconcile(req reconcile.Request) (reconcile.Result, error)

Reconcile an OAM ApplicationConfigurations by rendering and instantiating its Components and Traits.

type ReconcilerOption

type ReconcilerOption func(*Reconciler)

A ReconcilerOption configures a Reconciler.

func WithApplicator

func WithApplicator(a WorkloadApplicator) ReconcilerOption

WithApplicator specifies how the Reconciler should apply workloads and traits.

func WithGarbageCollector

func WithGarbageCollector(gc GarbageCollector) ReconcilerOption

WithGarbageCollector specifies how the Reconciler should garbage collect workloads and traits when an ApplicationConfiguration is edited to remove them.

func WithLogger

func WithLogger(l logging.Logger) ReconcilerOption

WithLogger specifies how the Reconciler should log messages.

func WithRecorder

func WithRecorder(er event.Recorder) ReconcilerOption

WithRecorder specifies how the Reconciler should record events.

func WithRenderer

func WithRenderer(r ComponentRenderer) ReconcilerOption

WithRenderer specifies how the Reconciler should render workloads and traits.

type ResourceRenderFn

type ResourceRenderFn func(data []byte, p ...Parameter) (*unstructured.Unstructured, error)

A ResourceRenderFn renders a Kubernetes-compliant YAML resource into an Unstructured object, optionally setting the supplied parameters.

func (ResourceRenderFn) Render

func (fn ResourceRenderFn) Render(data []byte, p ...Parameter) (*unstructured.Unstructured, error)

Render the supplied Kubernetes YAML resource.

type ResourceRenderer

type ResourceRenderer interface {
	Render(data []byte, p ...Parameter) (*unstructured.Unstructured, error)
}

A ResourceRenderer renders a Kubernetes-compliant YAML resource into an Unstructured object, optionally setting the supplied parameters.

type Workload

type Workload struct {
	// ComponentName that produced this workload.
	ComponentName string

	//ComponentRevisionName of current component
	ComponentRevisionName string

	// A Workload object.
	Workload *unstructured.Unstructured

	// Traits associated with this workload.
	Traits []unstructured.Unstructured

	// Scopes associated with this workload.
	Scopes []unstructured.Unstructured
}

A Workload produced by an OAM ApplicationConfiguration.

func (Workload) Status

func (w Workload) Status() v1alpha2.WorkloadStatus

Status produces the status of this workload and its traits, suitable for use in the status of an ApplicationConfiguration.

type WorkloadApplicator

type WorkloadApplicator interface {
	// Apply a workload and its traits.
	Apply(ctx context.Context, namespace string, status []v1alpha2.WorkloadStatus, w []Workload, ao ...resource.ApplyOption) error
}

A WorkloadApplicator creates or updates workloads and their traits.

type WorkloadApplyFn

type WorkloadApplyFn func(ctx context.Context, namespace string, status []v1alpha2.WorkloadStatus, w []Workload, ao ...resource.ApplyOption) error

A WorkloadApplyFn creates or updates workloads and their traits.

func (WorkloadApplyFn) Apply

func (fn WorkloadApplyFn) Apply(ctx context.Context, namespace string, status []v1alpha2.WorkloadStatus, w []Workload, ao ...resource.ApplyOption) error

Apply a workload and its traits.

Jump to

Keyboard shortcuts

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