Documentation ¶
Index ¶
- Constants
- Variables
- func ComputeAppRevisionHash(appRevision *v1beta1.ApplicationRevision) (string, error)
- func ComputeComponentRevisionHash(comp *types.ComponentManifest) (string, error)
- func DeepEqualRevision(old, new *v1beta1.ApplicationRevision) bool
- func GetAppRevisions(ctx context.Context, cli client.Client, appName string, appNs string) ([]v1beta1.ApplicationRevision, error)
- func GetSortedAppRevisions(ctx context.Context, cli client.Client, appName string, appNs string) ([]v1beta1.ApplicationRevision, error)
- func Setup(mgr ctrl.Manager, args core.Args) error
- func SprintComponentManifest(cm *types.ComponentManifest) string
- type AppHandler
- func (h *AppHandler) ApplyPolicies(ctx context.Context, af *appfile.Appfile) error
- func (h *AppHandler) Delete(ctx context.Context, cluster string, owner string, ...) error
- func (h *AppHandler) Dispatch(ctx context.Context, cluster string, owner string, ...) error
- func (h *AppHandler) FinalizeAndApplyAppRevision(ctx context.Context) error
- func (h *AppHandler) GenerateApplicationSteps(ctx monitorContext.Context, app *v1beta1.Application, ...) (*wfTypes.WorkflowInstance, []wfTypes.TaskRunner, error)
- func (h *AppHandler) HandleComponentsRevision(ctx context.Context, compManifests []*types.ComponentManifest) error
- func (h *AppHandler) PrepareCurrentAppRevision(ctx context.Context, af *appfile.Appfile) error
- func (h *AppHandler) ProduceArtifacts(ctx context.Context, comps []*types.ComponentManifest, ...) error
- func (h *AppHandler) UpdateAppLatestRevisionStatus(ctx context.Context) error
- func (h *AppHandler) UpdateApplicationRevisionStatus(ctx context.Context, appRev *v1beta1.ApplicationRevision, succeed bool, ...)
- type Reconciler
Constants ¶
const ( // ConfigMapKeyComponents is the key in ConfigMap Data field for containing data of components ConfigMapKeyComponents = "components" // ConfigMapKeyPolicy is the key in ConfigMap Data field for containing data of policies ConfigMapKeyPolicy = "policies" // ManifestKeyWorkload is the key in Component Manifest for containing workload cr. ManifestKeyWorkload = "StandardWorkload" // ManifestKeyTraits is the key in Component Manifest for containing Trait cr. ManifestKeyTraits = "Traits" // ManifestKeyScopes is the key in Component Manifest for containing scope cr reference. ManifestKeyScopes = "Scopes" // ComponentNamespaceContextKey is the key in context that defines the override namespace of component ComponentNamespaceContextKey = contextKey("component-namespace") // ComponentContextKey is the key in context that records the component ComponentContextKey = contextKey("component") // ReplicaKeyContextKey is the key in context that records the replica key ReplicaKeyContextKey = contextKey("replica-key") )
Variables ¶
var ( // EnableReconcileLoopReduction optimize application reconcile loop by fusing phase transition EnableReconcileLoopReduction = false // EnableResourceTrackerDeleteOnlyTrigger optimize ResourceTracker mutate event trigger by only receiving deleting events EnableResourceTrackerDeleteOnlyTrigger = true )
var ( // DisableAllComponentRevision disable component revision creation DisableAllComponentRevision = false // DisableAllApplicationRevision disable application revision creation DisableAllApplicationRevision = false )
var ( // DisableResourceApplyDoubleCheck optimize applyComponentFunc by disable post resource existing check after dispatch DisableResourceApplyDoubleCheck = false )
Functions ¶
func ComputeAppRevisionHash ¶ added in v1.0.0
func ComputeAppRevisionHash(appRevision *v1beta1.ApplicationRevision) (string, error)
ComputeAppRevisionHash computes a single hash value for an appRevision object Spec of Application/WorkloadDefinitions/ComponentDefinitions/TraitDefinitions/ScopeDefinitions will be taken into compute
func ComputeComponentRevisionHash ¶ added in v1.1.0
func ComputeComponentRevisionHash(comp *types.ComponentManifest) (string, error)
ComputeComponentRevisionHash to compute component hash
func DeepEqualRevision ¶ added in v1.0.0
func DeepEqualRevision(old, new *v1beta1.ApplicationRevision) bool
DeepEqualRevision will compare the spec of Application and Definition to see if the Application is the same revision Spec of AC and Component will not be compared as they are generated by the application and definitions Note the Spec compare can only work when the RawExtension are decoded well in the RawExtension.Object instead of in RawExtension.Raw(bytes)
func GetAppRevisions ¶ added in v1.3.0
func GetAppRevisions(ctx context.Context, cli client.Client, appName string, appNs string) ([]v1beta1.ApplicationRevision, error)
GetAppRevisions get application revisions by label
func GetSortedAppRevisions ¶ added in v1.3.0
func GetSortedAppRevisions(ctx context.Context, cli client.Client, appName string, appNs string) ([]v1beta1.ApplicationRevision, error)
GetSortedAppRevisions get application revisions by revision number
func SprintComponentManifest ¶ added in v1.1.0
func SprintComponentManifest(cm *types.ComponentManifest) string
SprintComponentManifest formats and returns the resulting string.
Types ¶
type AppHandler ¶ added in v1.1.0
type AppHandler struct {
// contains filtered or unexported fields
}
AppHandler handles application reconcile
func NewAppHandler ¶ added in v1.2.0
func NewAppHandler(ctx context.Context, r *Reconciler, app *v1beta1.Application, parser *appfile.Parser) (*AppHandler, error)
NewAppHandler create new app handler
func (*AppHandler) ApplyPolicies ¶ added in v1.3.0
ApplyPolicies will render policies into manifests from appfile and dispatch them
func (*AppHandler) Delete ¶ added in v1.2.0
func (h *AppHandler) Delete(ctx context.Context, cluster string, owner string, manifest *unstructured.Unstructured) error
Delete delete manifests from k8s.
func (*AppHandler) Dispatch ¶ added in v1.1.0
func (h *AppHandler) Dispatch(ctx context.Context, cluster string, owner string, manifests ...*unstructured.Unstructured) error
Dispatch apply manifests into k8s.
func (*AppHandler) FinalizeAndApplyAppRevision ¶ added in v1.1.0
func (h *AppHandler) FinalizeAndApplyAppRevision(ctx context.Context) error
FinalizeAndApplyAppRevision finalise AppRevision object and apply it
func (*AppHandler) GenerateApplicationSteps ¶ added in v1.1.1
func (h *AppHandler) GenerateApplicationSteps(ctx monitorContext.Context, app *v1beta1.Application, appParser *appfile.Parser, af *appfile.Appfile, appRev *v1beta1.ApplicationRevision) (*wfTypes.WorkflowInstance, []wfTypes.TaskRunner, error)
GenerateApplicationSteps generate application steps. nolint:gocyclo
func (*AppHandler) HandleComponentsRevision ¶ added in v1.1.0
func (h *AppHandler) HandleComponentsRevision(ctx context.Context, compManifests []*types.ComponentManifest) error
HandleComponentsRevision manages Component revisions 1. if update component create a new component Revision 2. check all componentTrait rely on componentRevName, if yes fill it
func (*AppHandler) PrepareCurrentAppRevision ¶ added in v1.1.0
PrepareCurrentAppRevision will generate a pure revision without metadata and rendered result the generated revision will be compare with the last revision to see if there's any difference.
func (*AppHandler) ProduceArtifacts ¶ added in v1.1.1
func (h *AppHandler) ProduceArtifacts(ctx context.Context, comps []*types.ComponentManifest, policies []*unstructured.Unstructured) error
ProduceArtifacts will produce Application artifacts that will be saved in configMap.
func (*AppHandler) UpdateAppLatestRevisionStatus ¶ added in v1.1.0
func (h *AppHandler) UpdateAppLatestRevisionStatus(ctx context.Context) error
UpdateAppLatestRevisionStatus only call to update app's latest revision status after applying manifests successfully otherwise it will override previous revision which is used during applying to do GC jobs
func (*AppHandler) UpdateApplicationRevisionStatus ¶ added in v1.3.0
func (h *AppHandler) UpdateApplicationRevisionStatus(ctx context.Context, appRev *v1beta1.ApplicationRevision, succeed bool, wfStatus *common.WorkflowStatus)
UpdateApplicationRevisionStatus update application revision status
type Reconciler ¶
type Reconciler struct { client.Client Scheme *runtime.Scheme Recorder event.Recorder // contains filtered or unexported fields }
Reconciler reconciles an Application object
func (*Reconciler) SetupWithManager ¶
func (r *Reconciler) SetupWithManager(mgr ctrl.Manager) error
SetupWithManager install to manager