Skip to main content

Glossary

This glossary defines key terms used in Koreo grouped by related concept.

Workflows & Functions

Function

Refers to a ValueFunction or ResourceFunction.

ValueFunction

A pure Function which may be used to perform validations, compute values, or restructure data. Learn more about ValueFunctions here.

ResourceFunction

A Function which manages or reads values from a Managed Resource. These Functions are an interface to external state, which they may set and load. When managing a resource, they define a control loop.

Workflow

Defines a collection of Steps to be run and manages their execution. Learn more about Workflows here.

Step

A Workflow step specifies Logic to be run, how inputs from other steps will map into the Logic's inputs, if a Condition should be reported, and if any state should be extracted and returned (either to a calling Workflow or parent resource).

Logic

Refers to a Function or Workflow. Most often the term is used to refer to the Function or Workflow to be run as a Workflow step.

Koreo Expression

A simple expression language that is modeled after CEL, provides capabilities needed for basic logic, arithmetic, string manipulation, and data reshaping used in Workflows and Functions. Learn more about Koreo Expressions here.

ResourceTemplate

Provides a simple means of specifying static values as a base Target Resource Specification. A ResourceTemplate may be dynamically loaded by a ResourceFunction, allowing for configuration based template selection. The static values may be overlaid with values provided to (or computed by) a ResourceFunction.

Outcome

Refers to the return type of a Function or Workflow. Outcome types are:

  • Ok: Successful evaluation.
  • Skip: Skipped without evaluation.
  • DepSkip: Dependency not ready.
  • Retry: Reattempt after delay.
  • PermFail: Permanent failure requiring intervention.

Ok

An Outcome that indicates a successful evaluation. A return value may be present, if expected.

Skip

An Outcome that indicates the Logic was skipped without an attempt to evaluate due to an input or other condition.

DepSkip

An Outcome that indicates a dependency is not yet ready. It means the Logic was skipped without an attempt to evaluate.

Retry

An Outcome that indicates the Logic should be retried after a specified delay. Typically this indicates an active waiting status that is expected to self-resolve over time.

PermFail

An Outcome that indicates a permanent failure condition that will require intervention in order to resolve.

State

Some or all of a Logic's return value which will be set on the parent resource's status.state property.

Kubernetes Concepts

Condition

A convention used in Kubernetes resources to communicate status information. Koreo may optionally set Conditions on a parent resource based on the Outcome from a step.

Managed Resource

A Kubernetes resource that a ResourceFunction is managing to ensures its specification matches a Target Resource Specification or reads values from (for readonly functions).

Target Resource Specification

The specification that a resource is expected to match after all Koreo Expressions have been evaluated and all overlays applied. This is the fully materialized resource view that will be applied to the cluster.

The Target Resource Specification can be assembled in a ResourceFunction with variety of ways: resource provides a way to specify an inline static configuration, resourceTemplateRef allows dynamically loading a static "base" configuration, and overlays provide a mechanism to apply overlays as atomic units onto the Target Resource Specification. These methods can be combined to create a "layered" approach to resource materialization in a deterministic manner.

Parent Resource

A Kubernetes resource which is used to trigger Workflow reconciliations and provide configuration to the Workflow instance.

Reconcile

To run a control loop in order to ensure the Conditions and observed state match the desired state. If they do not match, the differences will be reconciled to bring them into alignment.

Control Loop

A control loop observes Conditions and state. If the observed Conditions or state do not meet the target state, then the control loop will attempt to bring them into alignment with the target state by making adjustments.

Testing & Validation

Contract Testing

Used to ensure that correctly structured API calls are made based on a set of inputs.

FunctionTest

Koreo's built in control-loop-friendly testing framework. Allows for unit-testing style validation in addition to contract testing.

Function Under Test

Refers to a ValueFunction or ResourceFunction that is being tested by a FunctionTest.