Documentation
¶
Overview ¶
+kubebuilder:object:generate=true +groupName=eno.azure.io
Index ¶
- Constants
- Variables
- type Binding
- type BlockedByRef
- type Composition
- func (in *Composition) DeepCopy() *Composition
- func (in *Composition) DeepCopyInto(out *Composition)
- func (in *Composition) DeepCopyObject() runtime.Object
- func (c *Composition) EnableIgnoreSideEffects()
- func (c *Composition) ForceResynthesis()
- func (c *Composition) GetAzureOperationID() string
- func (c *Composition) GetAzureOperationOrigin() string
- func (c *Composition) ShouldForceResynthesis() bool
- func (c *Composition) ShouldIgnoreSideEffects() bool
- func (c *Composition) ShouldOrphanResources() bool
- func (c *Composition) Synthesizing() bool
- type CompositionDependency
- type CompositionList
- type CompositionSpec
- type CompositionStatus
- type DependencyStatus
- type EnvVar
- type Input
- type InputResource
- type InputRevisions
- type Manifest
- type PodOverrides
- type Ref
- type ResourceBinding
- type ResourceRef
- type ResourceSlice
- type ResourceSliceList
- type ResourceSliceRef
- type ResourceSliceSpec
- type ResourceSliceStatus
- type ResourceState
- type Result
- type SimplifiedStatus
- type Symphony
- type SymphonyList
- type SymphonySpec
- type SymphonyStatus
- type Synthesis
- type Synthesizer
- type SynthesizerList
- type SynthesizerRef
- type SynthesizerSpec
- type SynthesizerStatus
- type Variation
- type VariationDependency
Constants ¶
const ( OperationIdKey string = "operationID" OperationOrigionKey string = "operationOrigin" CircularDependencyReason string = "CircularDependency" WaitingOnDependentsReason string = "WaitingOnDependents" WaitingOnDependenciesReason string = "WaitingOnDependencies" WaitingOnDependencyNotFoundReason string = "DependencyNotFound" WaitingOnDependencyNotReadyReason string = "DependencyNotReady" WaitingOnDependentsDeletedReason string = "DependentNotDeleted" )
Variables ¶
var ( SchemeGroupVersion = schema.GroupVersion{Group: "eno.azure.io", Version: "v1"} SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} )
Functions ¶
This section is empty.
Types ¶
type Binding ¶ added in v0.0.2
type Binding struct {
// Key determines which ref this binding binds to. Opaque.
Key string `json:"key"`
Resource ResourceBinding `json:"resource"`
}
Bindings map a specific Kubernetes resource to a ref exposed by a synthesizer. Compositions use bindings to populate inputs supported by their synthesizer.
func (*Binding) DeepCopy ¶ added in v0.0.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Binding.
func (*Binding) DeepCopyInto ¶ added in v0.0.2
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BlockedByRef ¶ added in v0.2.7
type BlockedByRef struct {
Name string `json:"name,omitempty"`
Namespace string `json:"namespace,omitempty"`
Reason string `json:"reason,omitempty"` // "NotFound", "NotDeleted", "NotReady"
}
func (*BlockedByRef) DeepCopy ¶ added in v0.2.7
func (in *BlockedByRef) DeepCopy() *BlockedByRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlockedByRef.
func (*BlockedByRef) DeepCopyInto ¶ added in v0.2.7
func (in *BlockedByRef) DeepCopyInto(out *BlockedByRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Composition ¶
type Composition struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec CompositionSpec `json:"spec,omitempty"`
Status CompositionStatus `json:"status,omitempty"`
}
Compositions represent a collection of related, synthesized resources.
For example: when managing Postgres with Eno, one would create a composition per distinct instance of Postgres, all referencing a single synthesizer resource.
Changing the spec of a composition will result in re-synthesis.
+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Synthesizer",type=string,JSONPath=`.spec.synthesizer.name` +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.status.currentSynthesis.synthesized` +kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.simplified.status` +kubebuilder:printcolumn:name="Error",type=string,JSONPath=`.status.simplified.error`
func (*Composition) DeepCopy ¶
func (in *Composition) DeepCopy() *Composition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Composition.
func (*Composition) DeepCopyInto ¶
func (in *Composition) DeepCopyInto(out *Composition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Composition) DeepCopyObject ¶
func (in *Composition) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Composition) EnableIgnoreSideEffects ¶ added in v0.0.47
func (c *Composition) EnableIgnoreSideEffects()
func (*Composition) ForceResynthesis ¶ added in v0.0.47
func (c *Composition) ForceResynthesis()
func (*Composition) GetAzureOperationID ¶ added in v0.2.1
func (c *Composition) GetAzureOperationID() string
func (*Composition) GetAzureOperationOrigin ¶ added in v0.2.1
func (c *Composition) GetAzureOperationOrigin() string
func (*Composition) ShouldForceResynthesis ¶ added in v0.0.47
func (c *Composition) ShouldForceResynthesis() bool
func (*Composition) ShouldIgnoreSideEffects ¶ added in v0.0.31
func (c *Composition) ShouldIgnoreSideEffects() bool
func (*Composition) ShouldOrphanResources ¶ added in v0.0.48
func (c *Composition) ShouldOrphanResources() bool
func (*Composition) Synthesizing ¶ added in v0.0.47
func (c *Composition) Synthesizing() bool
type CompositionDependency ¶ added in v0.2.7
type CompositionDependency struct {
// Name of the dependency composition
Name string `json:"name,omitempty"`
//Namespace of the dependency composition
Namespace string `json:"namespace,omitempty"`
}
func (*CompositionDependency) DeepCopy ¶ added in v0.2.7
func (in *CompositionDependency) DeepCopy() *CompositionDependency
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CompositionDependency.
func (*CompositionDependency) DeepCopyInto ¶ added in v0.2.7
func (in *CompositionDependency) DeepCopyInto(out *CompositionDependency)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CompositionList ¶
type CompositionList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Composition `json:"items"`
}
+kubebuilder:object:root=true
func (*CompositionList) DeepCopy ¶
func (in *CompositionList) DeepCopy() *CompositionList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CompositionList.
func (*CompositionList) DeepCopyInto ¶
func (in *CompositionList) DeepCopyInto(out *CompositionList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*CompositionList) DeepCopyObject ¶
func (in *CompositionList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type CompositionSpec ¶
type CompositionSpec struct {
// Compositions are synthesized by a Synthesizer, referenced by name.
Synthesizer SynthesizerRef `json:"synthesizer,omitempty"`
// Synthesizers can accept Kubernetes resources as inputs.
// Bindings allow compositions to specify which resource to use for a particular input "reference".
// Declaring extra bindings not (yet) supported by the synthesizer is valid.
Bindings []Binding `json:"bindings,omitempty"`
// SynthesisEnv
// A set of environment variables that will be made available inside the synthesis Pod.
// +kubebuilder:validation:MaxItems:=500
SynthesisEnv []EnvVar `json:"synthesisEnv,omitempty"`
// Declare dependencies on other compositions by name and namespace. A composition can have at most 50 dependencies
// Compositions will not be scheduled for synthesis until all required
// dependencies have CurrentSynthesis.Ready != nil
// Deletion is blocked until all non-optional dependents are fully removed.
// +kubebuilder:validation:MaxItems:=50
DependsOn []CompositionDependency `json:"dependsOn,omitempty"`
}
func (*CompositionSpec) DeepCopy ¶
func (in *CompositionSpec) DeepCopy() *CompositionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CompositionSpec.
func (*CompositionSpec) DeepCopyInto ¶
func (in *CompositionSpec) DeepCopyInto(out *CompositionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CompositionStatus ¶
type CompositionStatus struct {
Simplified *SimplifiedStatus `json:"simplified,omitempty"`
InFlightSynthesis *Synthesis `json:"inFlightSynthesis,omitempty"`
CurrentSynthesis *Synthesis `json:"currentSynthesis,omitempty"`
PreviousSynthesis *Synthesis `json:"previousSynthesis,omitempty"`
InputRevisions []InputRevisions `json:"inputRevisions,omitempty"`
// Set when composition is blocked by dependency constraints. Cleared when unblock
DependencyStatus *DependencyStatus `json:"dependencyStatus,omitempty"`
}
func (*CompositionStatus) DeepCopy ¶
func (in *CompositionStatus) DeepCopy() *CompositionStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CompositionStatus.
func (*CompositionStatus) DeepCopyInto ¶
func (in *CompositionStatus) DeepCopyInto(out *CompositionStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*CompositionStatus) GetCurrentSynthesisUUID ¶ added in v0.0.31
func (s *CompositionStatus) GetCurrentSynthesisUUID() string
type DependencyStatus ¶ added in v0.2.7
type DependencyStatus struct {
// Blocked is true when the composition cannot proceed due to dependencies/dependents
Blocked bool `json:"blocked,omitempty"`
// Reason "WaitingOnDependencies", "WaitingOnDependents"(Deletion), "CircularDependencies"
Reason string `json:"reason,omitempty"`
//BlockedBy: References to the compositions causing the block
BlockedBy []BlockedByRef `json:"blockedBy,omitempty"`
}
DependencyStatus holds the information regarding the composition's dependencies.
func (*DependencyStatus) DeepCopy ¶ added in v0.2.7
func (in *DependencyStatus) DeepCopy() *DependencyStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DependencyStatus.
func (*DependencyStatus) DeepCopyInto ¶ added in v0.2.7
func (in *DependencyStatus) DeepCopyInto(out *DependencyStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EnvVar ¶ added in v0.0.31
type EnvVar struct {
// +required
// +kubebuilder:validation:MaxLength:=100
Name string `json:"name"`
Value string `json:"value,omitempty"`
}
func (*EnvVar) DeepCopy ¶ added in v0.0.31
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvVar.
func (*EnvVar) DeepCopyInto ¶ added in v0.0.31
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Input ¶ added in v0.0.2
type Input struct {
metav1.TypeMeta `json:",inline"`
Key string `json:"key"`
Resource InputResource `json:"resource"`
}
Input is passed to Synthesis Pods at runtime and represents a bound ref.
func NewInput ¶ added in v0.0.2
func NewInput(key string, res InputResource) Input
NewInput is used to create an `Input` with TypeMeta populated. This is required because `Input` is not a CRD, but we still want proper encoding/decoding via the Unstructured codec.
func (*Input) DeepCopy ¶ added in v0.0.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Input.
func (*Input) DeepCopyInto ¶ added in v0.0.2
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InputResource ¶ added in v0.0.2
type InputResource struct {
Name string `json:"name"`
Namespace string `json:"namespace,omitempty"`
Kind string `json:"kind"`
Group string `json:"group"`
}
func (*InputResource) DeepCopy ¶ added in v0.0.2
func (in *InputResource) DeepCopy() *InputResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InputResource.
func (*InputResource) DeepCopyInto ¶ added in v0.0.2
func (in *InputResource) DeepCopyInto(out *InputResource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InputRevisions ¶ added in v0.0.10
type InputRevisions struct {
Key string `json:"key,omitempty"`
ResourceVersion string `json:"resourceVersion,omitempty"`
Revision *int `json:"revision,omitempty"`
SynthesizerGeneration *int64 `json:"synthesizerGeneration,omitempty"`
CompositionGeneration *int64 `json:"compositionGeneration,omitempty"`
IgnoreSideEffects *bool `json:"ignoreSideEffects,omitempty"`
}
func NewInputRevisions ¶ added in v0.1.31
func NewInputRevisions(obj client.Object, refKey string) *InputRevisions
func (*InputRevisions) DeepCopy ¶ added in v0.0.10
func (in *InputRevisions) DeepCopy() *InputRevisions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InputRevisions.
func (*InputRevisions) DeepCopyInto ¶ added in v0.0.10
func (in *InputRevisions) DeepCopyInto(out *InputRevisions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*InputRevisions) Less ¶ added in v0.0.49
func (i *InputRevisions) Less(b InputRevisions) bool
Less reports whetehr i should be ordered before b both revisiions must share the same key. We can not compare across differnt keys Below is the ordering rules 1. If both sides have an explicit Revision, compare by Revision 2. If ResourceVersions are equal, check if IgnoreSideEffects annotation is present. If ignore side effects variant is preferred. 3. If ResourceVersions aren't parseable as ints, fall back to treating i as "less" so comparison degrades gracefully.
type Manifest ¶
type Manifest struct {
Manifest string `json:"manifest,omitempty"`
// Deleted is true when this manifest represents a "tombstone" - a resource that should no longer exist.
Deleted bool `json:"deleted,omitempty"`
}
func (*Manifest) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Manifest.
func (*Manifest) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodOverrides ¶ added in v0.0.16
type PodOverrides struct {
Labels map[string]string `json:"labels,omitempty"`
Annotations map[string]string `json:"annotations,omitempty"`
Resources corev1.ResourceRequirements `json:"resources,omitempty"`
Affinity *corev1.Affinity `json:"affinity,omitempty"`
}
func (*PodOverrides) DeepCopy ¶ added in v0.0.16
func (in *PodOverrides) DeepCopy() *PodOverrides
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodOverrides.
func (*PodOverrides) DeepCopyInto ¶ added in v0.0.16
func (in *PodOverrides) DeepCopyInto(out *PodOverrides)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Ref ¶ added in v0.0.2
type Ref struct {
// Key corresponds to bindings to this ref.
Key string `json:"key"`
Resource ResourceRef `json:"resource"`
// Allows control over re-synthesis when inputs changed.
// A non-deferred input will trigger a synthesis immediately, whereas a
// deferred input will respect the cooldown period.
Defer bool `json:"defer,omitempty"`
// Optional indicates that this input is not required for synthesis to proceed.
// When true, synthesis will not be blocked if the input is missing.
// When false (default), synthesis will fail with "MissingInputs" if the input is not available.
//
// +kubebuilder:default=false
Optional bool `json:"optional,omitempty"`
}
Ref defines a synthesizer input. Inputs are typed using the Kubernetes API - they are just normal Kubernetes resources. The consumer (synthesizer) specifies the resource's kind/group, while the producer (composition) specifies a specific resource name/namespace.
Compositions that use the synthesizer will be re-synthesized when the resource bound to this ref changes. Re-synthesis happens automatically while honoring the globally configured cooldown period.
func (*Ref) DeepCopy ¶ added in v0.0.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ref.
func (*Ref) DeepCopyInto ¶ added in v0.0.2
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceBinding ¶ added in v0.0.2
type ResourceBinding struct {
Name string `json:"name"`
Namespace string `json:"namespace,omitempty"`
}
A reference to a specific resource name and optionally namespace.
func (*ResourceBinding) DeepCopy ¶ added in v0.0.2
func (in *ResourceBinding) DeepCopy() *ResourceBinding
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceBinding.
func (*ResourceBinding) DeepCopyInto ¶ added in v0.0.2
func (in *ResourceBinding) DeepCopyInto(out *ResourceBinding)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceRef ¶ added in v0.0.2
type ResourceRef struct {
Group string `json:"group,omitempty"`
Version string `json:"version,omitempty"`
Kind string `json:"kind"`
// If set, name and namespace form an "implicit binding", i.e. a ref that is bound to
// a specific resource without a corresponding binding on the composition resource.
// The implied binding takes precedence over a corresponding binding from the composition.
Name string `json:"name,omitempty"`
Namespace string `json:"namespace,omitempty"`
}
A reference to a resource kind/group.
func (*ResourceRef) DeepCopy ¶ added in v0.0.2
func (in *ResourceRef) DeepCopy() *ResourceRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceRef.
func (*ResourceRef) DeepCopyInto ¶ added in v0.0.2
func (in *ResourceRef) DeepCopyInto(out *ResourceRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceSlice ¶
type ResourceSlice struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ResourceSliceSpec `json:"spec,omitempty"`
Status ResourceSliceStatus `json:"status,omitempty"`
}
+kubebuilder:object:root=true +kubebuilder:subresource:status
func (*ResourceSlice) DeepCopy ¶
func (in *ResourceSlice) DeepCopy() *ResourceSlice
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSlice.
func (*ResourceSlice) DeepCopyInto ¶
func (in *ResourceSlice) DeepCopyInto(out *ResourceSlice)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ResourceSlice) DeepCopyObject ¶
func (in *ResourceSlice) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ResourceSliceList ¶
type ResourceSliceList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ResourceSlice `json:"items"`
}
+kubebuilder:object:root=true
func (*ResourceSliceList) DeepCopy ¶
func (in *ResourceSliceList) DeepCopy() *ResourceSliceList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSliceList.
func (*ResourceSliceList) DeepCopyInto ¶
func (in *ResourceSliceList) DeepCopyInto(out *ResourceSliceList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ResourceSliceList) DeepCopyObject ¶
func (in *ResourceSliceList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ResourceSliceRef ¶
type ResourceSliceRef struct {
Name string `json:"name,omitempty"`
}
func (*ResourceSliceRef) DeepCopy ¶
func (in *ResourceSliceRef) DeepCopy() *ResourceSliceRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSliceRef.
func (*ResourceSliceRef) DeepCopyInto ¶
func (in *ResourceSliceRef) DeepCopyInto(out *ResourceSliceRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceSliceSpec ¶
type ResourceSliceSpec struct {
SynthesisUUID string `json:"synthesisUUID,omitempty"`
Resources []Manifest `json:"resources,omitempty"`
}
func (*ResourceSliceSpec) DeepCopy ¶
func (in *ResourceSliceSpec) DeepCopy() *ResourceSliceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSliceSpec.
func (*ResourceSliceSpec) DeepCopyInto ¶
func (in *ResourceSliceSpec) DeepCopyInto(out *ResourceSliceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceSliceStatus ¶
type ResourceSliceStatus struct {
// Elements of resources correspond in index to those in spec.resources at the observed generation.
Resources []ResourceState `json:"resources,omitempty"`
}
func (*ResourceSliceStatus) DeepCopy ¶
func (in *ResourceSliceStatus) DeepCopy() *ResourceSliceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSliceStatus.
func (*ResourceSliceStatus) DeepCopyInto ¶
func (in *ResourceSliceStatus) DeepCopyInto(out *ResourceSliceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceState ¶
type ResourceState struct {
Reconciled bool `json:"reconciled,omitempty"`
Ready *metav1.Time `json:"ready,omitempty"`
Deleted bool `json:"deleted,omitempty"`
ReconciliationError *string `json:"reconciliationError,omitempty"`
}
func (*ResourceState) DeepCopy ¶
func (in *ResourceState) DeepCopy() *ResourceState
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceState.
func (*ResourceState) DeepCopyInto ¶
func (in *ResourceState) DeepCopyInto(out *ResourceState)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ResourceState) Equal ¶ added in v0.0.47
func (r *ResourceState) Equal(rr *ResourceState) bool
type Result ¶ added in v0.0.10
type Result struct {
Message string `json:"message,omitempty"`
Severity string `json:"severity,omitempty"`
Tags map[string]string `json:"tags,omitempty"`
}
func (*Result) DeepCopy ¶ added in v0.0.10
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Result.
func (*Result) DeepCopyInto ¶ added in v0.0.10
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SimplifiedStatus ¶ added in v0.0.10
type SimplifiedStatus struct {
Status string `json:"status,omitempty"`
Error string `json:"error,omitempty"`
}
func (*SimplifiedStatus) DeepCopy ¶ added in v0.0.10
func (in *SimplifiedStatus) DeepCopy() *SimplifiedStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SimplifiedStatus.
func (*SimplifiedStatus) DeepCopyInto ¶ added in v0.0.10
func (in *SimplifiedStatus) DeepCopyInto(out *SimplifiedStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SimplifiedStatus) String ¶ added in v0.1.4
func (s *SimplifiedStatus) String() string
type Symphony ¶ added in v0.0.4
type Symphony struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec SymphonySpec `json:"spec,omitempty"`
Status SymphonyStatus `json:"status,omitempty"`
}
Symphony is a set of variations on a composition. Useful for creating several compositions that use a common set of bindings but different synthesizers.
This pattern is highly opinionated for use-cases in which a single "unit of management" includes multiple distinct components. For example: deploying many instances of an application that is comprised of several components (Wordpress, etc.).
+kubebuilder:object:root=true +kubebuilder:subresource:status
func (*Symphony) DeepCopy ¶ added in v0.0.4
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Symphony.
func (*Symphony) DeepCopyInto ¶ added in v0.0.4
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Symphony) DeepCopyObject ¶ added in v0.0.4
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Symphony) GetAzureOperationID ¶ added in v0.2.1
func (*Symphony) GetAzureOperationOrigin ¶ added in v0.2.1
type SymphonyList ¶ added in v0.0.4
type SymphonyList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Symphony `json:"items"`
}
+kubebuilder:object:root=true
func (*SymphonyList) DeepCopy ¶ added in v0.0.4
func (in *SymphonyList) DeepCopy() *SymphonyList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SymphonyList.
func (*SymphonyList) DeepCopyInto ¶ added in v0.0.4
func (in *SymphonyList) DeepCopyInto(out *SymphonyList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SymphonyList) DeepCopyObject ¶ added in v0.0.4
func (in *SymphonyList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type SymphonySpec ¶ added in v0.0.4
type SymphonySpec struct {
// Each variation will result in the creation of a composition.
// Synthesizer refs must be unique across variations.
// Removing a variation will cause the composition to be deleted!
Variations []Variation `json:"variations,omitempty"`
// Bindings are inherited by all compositions managed by this symphony.
Bindings []Binding `json:"bindings,omitempty"`
// SynthesisEnv
// Copied opaquely into the compositions managed by this symphony.
// +kubebuilder:validation:MaxItems:=50
SynthesisEnv []EnvVar `json:"synthesisEnv,omitempty"` // deprecated synthesis env should always be variation scoped.
}
func (*SymphonySpec) DeepCopy ¶ added in v0.0.4
func (in *SymphonySpec) DeepCopy() *SymphonySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SymphonySpec.
func (*SymphonySpec) DeepCopyInto ¶ added in v0.0.4
func (in *SymphonySpec) DeepCopyInto(out *SymphonySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SymphonyStatus ¶ added in v0.0.4
type SymphonyStatus struct {
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
Synthesized *metav1.Time `json:"synthesized,omitempty"`
Reconciled *metav1.Time `json:"reconciled,omitempty"`
Ready *metav1.Time `json:"ready,omitempty"`
}
func (*SymphonyStatus) DeepCopy ¶ added in v0.0.4
func (in *SymphonyStatus) DeepCopy() *SymphonyStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SymphonyStatus.
func (*SymphonyStatus) DeepCopyInto ¶ added in v0.0.4
func (in *SymphonyStatus) DeepCopyInto(out *SymphonyStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Synthesis ¶
type Synthesis struct {
// A random UUID scoped to this particular synthesis operation.
// Used internally for strict ordering semantics.
UUID string `json:"uuid,omitempty"`
// The value of the composition's metadata.generation at the time the synthesis began.
// This is a min i.e. a newer composition may have been used.
ObservedCompositionGeneration int64 `json:"observedCompositionGeneration,omitempty"`
// The value of the synthesizer's metadata.generation at the time the synthesis began.
// This is a min i.e. a newer composition may have been used.
ObservedSynthesizerGeneration int64 `json:"observedSynthesizerGeneration,omitempty"`
// Initialized is set when the synthesis process is initiated.
Initialized *metav1.Time `json:"initialized,omitempty"`
// Time at which the synthesis completed i.e. resourceSlices was written
Synthesized *metav1.Time `json:"synthesized,omitempty"`
// Time at which the synthesis's resources were reconciled into real Kubernetes resources.
Reconciled *metav1.Time `json:"reconciled,omitempty"`
// Time at which the synthesis's reconciled resources became ready.
Ready *metav1.Time `json:"ready,omitempty"`
// Canceled signals that any running synthesis pods should be deleted,
// and new synthesis pods should never be created for this synthesis UUID.
Canceled *metav1.Time `json:"canceled,omitempty"`
// Counter used internally to calculate back off when retrying failed syntheses.
Attempts int `json:"attempts,omitempty"`
// References to every resource slice that contains the resources comprising this synthesis.
// Immutable.
ResourceSlices []*ResourceSliceRef `json:"resourceSlices,omitempty"`
// Results are passed through opaquely from the synthesizer's KRM function.
Results []Result `json:"results,omitempty"`
// InputRevisions contains the versions of the input resources that were used for this synthesis.
InputRevisions []InputRevisions `json:"inputRevisions,omitempty"`
// Deferred is true when this synthesis was caused by a change to either the synthesizer
// or an input with a ref that sets `Defer == true`.
Deferred bool `json:"deferred,omitempty"`
}
A synthesis is the result of synthesizing a composition. In other words: it's a collection of resources returned from a synthesizer.
func (*Synthesis) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Synthesis.
func (*Synthesis) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Synthesizer ¶
type Synthesizer struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec SynthesizerSpec `json:"spec,omitempty"`
Status SynthesizerStatus `json:"status,omitempty"`
}
Synthesizers are any process that can run in a Kubernetes container that implements the [KRM Functions Specification](https://github.com/kubernetes-sigs/kustomize/blob/master/cmd/config/docs/api-conventions/functions-spec.md).
Synthesizer processes are given some metadata about the composition they are synthesizing, and are expected to return a set of Kubernetes resources. Essentially they generate the desired state for a set of Kubernetes resources.
+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster +kubebuilder:printcolumn:name="Image",type=string,JSONPath=`.spec.image`
func (*Synthesizer) DeepCopy ¶
func (in *Synthesizer) DeepCopy() *Synthesizer
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Synthesizer.
func (*Synthesizer) DeepCopyInto ¶
func (in *Synthesizer) DeepCopyInto(out *Synthesizer)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Synthesizer) DeepCopyObject ¶
func (in *Synthesizer) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type SynthesizerList ¶
type SynthesizerList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Synthesizer `json:"items"`
}
+kubebuilder:object:root=true
func (*SynthesizerList) DeepCopy ¶
func (in *SynthesizerList) DeepCopy() *SynthesizerList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SynthesizerList.
func (*SynthesizerList) DeepCopyInto ¶
func (in *SynthesizerList) DeepCopyInto(out *SynthesizerList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SynthesizerList) DeepCopyObject ¶
func (in *SynthesizerList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type SynthesizerRef ¶
type SynthesizerRef struct {
Name string `json:"name,omitempty"`
LabelSelector *metav1.LabelSelector `json:"labelSelector,omitempty"`
}
+kubebuilder:validation:XValidation:rule="has(self.name) || has(self.labelSelector)",message="at least one of name or labelSelector must be set"
func (*SynthesizerRef) DeepCopy ¶
func (in *SynthesizerRef) DeepCopy() *SynthesizerRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SynthesizerRef.
func (*SynthesizerRef) DeepCopyInto ¶
func (in *SynthesizerRef) DeepCopyInto(out *SynthesizerRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SynthesizerSpec ¶
type SynthesizerSpec struct {
// Copied opaquely into the container's image property.
Image string `json:"image,omitempty"`
// Copied opaquely into the container's command property.
//
// +kubebuilder:default={"synthesize"}
Command []string `json:"command,omitempty"`
// DEPRECATED
// Timeout for each execution of the synthesizer command.
//
// +kubebuilder:default="10s"
ExecTimeout *metav1.Duration `json:"execTimeout,omitempty"`
// DEPRECATED
// Pods are recreated after they've existed for at least the pod timeout interval.
// This helps close the loop in failure modes where a pod may be considered ready but not actually able to run.
//
// +kubebuilder:default="2m"
PodTimeout *metav1.Duration `json:"podTimeout,omitempty"`
// Refs define the Synthesizer's input schema without binding it to specific
// resources.
Refs []Ref `json:"refs,omitempty"`
// PodOverrides sets values in the pods used to execute this synthesizer.
PodOverrides PodOverrides `json:"podOverrides,omitempty"`
}
+kubebuilder:validation:XValidation:rule="duration(self.execTimeout) <= duration(self.podTimeout)",message="podTimeout must be greater than execTimeout"
func (*SynthesizerSpec) DeepCopy ¶
func (in *SynthesizerSpec) DeepCopy() *SynthesizerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SynthesizerSpec.
func (*SynthesizerSpec) DeepCopyInto ¶
func (in *SynthesizerSpec) DeepCopyInto(out *SynthesizerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SynthesizerStatus ¶
type SynthesizerStatus struct {
}
func (*SynthesizerStatus) DeepCopy ¶
func (in *SynthesizerStatus) DeepCopy() *SynthesizerStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SynthesizerStatus.
func (*SynthesizerStatus) DeepCopyInto ¶
func (in *SynthesizerStatus) DeepCopyInto(out *SynthesizerStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Variation ¶ added in v0.0.4
type Variation struct {
// Used to populate the composition's metadata.labels.
Labels map[string]string `json:"labels,omitempty"`
// Used to populate the composition's medatada.annotations.
Annotations map[string]string `json:"annotations,omitempty"`
// Used to populate the composition's spec.synthesizer.
Synthesizer SynthesizerRef `json:"synthesizer,omitempty"`
// Variation-specific bindings get merged with Symphony bindings and take
// precedence over them.
Bindings []Binding `json:"bindings,omitempty"`
// SynthesisEnv
// Copied opaquely into the compositions that's derived from this variation.
// It gets merged with the Symhony environment and takes precedence over it.
// +kubebuilder:validation:MaxItems:=25
SynthesisEnv []EnvVar `json:"synthesisEnv,omitempty"`
// Optional indicates that this variation should not block the symphony status
// when it fails to synthesize, reconcile, or become ready.
Optional bool `json:"optional,omitempty"`
// Dependencies for the composition created from this variation
// References use synthesizer name - the symphony controller resolves them
// to actual composition name when creating/updating compositions
// Max dependencies is 50
// +kubebuilder:validation:MaxItems:=50
DependsOn []VariationDependency `json:"dependsOn,omitempty"`
}
func (*Variation) DeepCopy ¶ added in v0.0.4
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Variation.
func (*Variation) DeepCopyInto ¶ added in v0.0.4
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VariationDependency ¶ added in v0.2.7
type VariationDependency struct {
// Synthesizer name of the dependency variation (within the same symphony)
// Resolved to the actual composition name by the symphony controller
Synthesizer string `json:"synthesizer,omitempty"`
}
func (*VariationDependency) DeepCopy ¶ added in v0.2.7
func (in *VariationDependency) DeepCopy() *VariationDependency
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VariationDependency.
func (*VariationDependency) DeepCopyInto ¶ added in v0.2.7
func (in *VariationDependency) DeepCopyInto(out *VariationDependency)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.