Documentation
¶
Overview ¶
+kubebuilder:object:generate=true +groupName=eno.azure.io
Index ¶
- Variables
- type Binding
- 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) ShouldForceResynthesis() bool
- func (c *Composition) ShouldIgnoreSideEffects() bool
- func (c *Composition) ShouldOrphanResources() bool
- func (c *Composition) Synthesizing() bool
- type CompositionList
- type CompositionSpec
- type CompositionStatus
- 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
Constants ¶
This section is empty.
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 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) 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 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"`
}
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"`
PendingResynthesis *metav1.Time `json:"pendingResynthesis,omitempty"` // deprecated: will be removed soon
}
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 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"`
}
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
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"`
}
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 {
CompositionGeneration int64 `json:"compositionGeneration,omitempty"` // deprecated
SynthesisUUID string `json:"synthesisUUID,omitempty"`
Attempt int `json:"attempt,omitempty"` // deprecated
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"`
}
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.
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"`
Synthesizers []SynthesizerRef `json:"synthesizers,omitempty"` // deprecated
}
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 most recent synthesizer pod was created.
PodCreation *metav1.Time `json:"podCreation,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"`
}
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"`
// Timeout for each execution of the synthesizer command.
//
// +kubebuilder:default="10s"
ExecTimeout *metav1.Duration `json:"execTimeout,omitempty"`
// 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"`
}
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.