Documentation
¶
Index ¶
- Variables
- func AddTemplate(path string)
- func LoadTemplate(path string) (string, error)
- func SetBasePath(path string)
- func ValidateFieldPath(obj interface{}, path string, knownPaths []fieldpath.Segments) error
- type ComposedTemplateSkeleton
- type CompositionBuildRunner
- type CompositionBuilder
- type CompositionSkeleton
- type CompositionWriter
- type Object
- type ObjectKindReference
- type PipelineStepSkeleton
- type RunnerConfig
Constants ¶
This section is empty.
Variables ¶
var ( // KnownCompositeAnnotations are annotations that will be registered by // default KnownCompositeAnnotations = []string{} // KnownCompositeLabels are labels that will be registered by default. KnownCompositeLabels = []string{ labelKeyClaimName, labelKeyClaimNamespace, } // KnownResourceAnnotations are annotations that will be registered by // default KnownResourceAnnotations = []string{ meta.AnnotationKeyExternalName, meta.AnnotationKeyExternalCreatePending, meta.AnnotationKeyExternalCreateSucceeded, meta.AnnotationKeyExternalCreateFailed, } // KnownResourceLabels are labels that will be registered by default. KnownResourceLabels = []string{} )
var TemplateBasePath string
Functions ¶
func AddTemplate ¶
func AddTemplate(path string)
func LoadTemplate ¶
func SetBasePath ¶
func SetBasePath(path string)
Types ¶
type ComposedTemplateSkeleton ¶
type ComposedTemplateSkeleton interface {
// WithName sets the name of this composeTemplateSkeleton.
WithName(name string) ComposedTemplateSkeleton
// WithPatches adds the following patches to this composeTemplateSkeleton.
WithPatches(patches ...xapiextv1.Patch) ComposedTemplateSkeleton
// WithUnsafePatches is similar to WithPatches but the field paths of the
// composeTemplateSkeletons will not be validated.
WithUnsafePatches(patches ...xapiextv1.Patch) ComposedTemplateSkeleton
// WithConnectionDetails adds the following connection details to this
// composeTemplateSkeleton.
WithConnectionDetails(connectionDetails ...xapiextv1.ConnectionDetail) ComposedTemplateSkeleton
// WithReadinessChecks adds the following readiness checks to this
// composeTemplateSkeleton.
WithReadinessChecks(checks ...xapiextv1.ReadinessCheck) ComposedTemplateSkeleton
// RegisterAnnotations marks the given resource annotations as safe
// so they will be treated as a valid field in patch paths.
RegisterAnnotations(annotationKeys ...string) ComposedTemplateSkeleton
// RegisterLabels marks the given resource label as safe
// so they will be treated as a valid field in patch paths.
RegisterLabels(labelsKeys ...string) ComposedTemplateSkeleton
// RegisterFieldPaths marks the given resource paths as safe so ti will
// be treated a valid in patch paths.
RegisterFieldPaths(paths ...string) ComposedTemplateSkeleton
}
ComposedTemplateSkeleton represents the draft for a compositionSkeleton composeTemplateSkeleton.
type CompositionBuildRunner ¶
type CompositionBuildRunner interface {
// Build generates all compositions from the builder delegates and sends
// them to the output writer.
Build() error
}
CompositionBuildRunner specifies the interface for a composition builder.
func NewRunner ¶
func NewRunner(config RunnerConfig) CompositionBuildRunner
NewRunner creates a new CompositionBuildRunner instance.
type CompositionBuilder ¶
type CompositionBuilder interface {
// GetCompositeTypeRef returns the CompositeTypeReference for the
// composition to be build.
GetCompositeTypeRef() ObjectKindReference
// Build builds a composition using the type.
Build(composition CompositionSkeleton)
}
CompositionBuilder specifies the interface for user defined type that is able to build a composition.
type CompositionSkeleton ¶
type CompositionSkeleton interface {
// WithName sets the metadata.name of the composition to be built.
WithName(name string) CompositionSkeleton
// WithLabels sets the metadata.labels of the composition to be built.
WithLabels(labels map[string]string) CompositionSkeleton
// WithAnnotations sets the metadata.annotations of the composition to be built.
WithAnnotations(annotations map[string]string) CompositionSkeleton
// WithMode sets the mode of this compositionSkeleton.
WithMode(mode xapiextv1.CompositionMode) CompositionSkeleton
// NewResource creates a new ComposedTemplateSkeleton with the given base.
NewResource(base ObjectKindReference) ComposedTemplateSkeleton
// WithPipeline adds the following pipeline to this compositionSkeleton.
NewPipelineStep(step string) PipelineStepSkeleton
// WithPublishConnectionDetailsWithStoreConfig sets the
// PublishConnectionDetailsWithStoreConfig of this CompositionSkeleton.
WithPublishConnectionDetailsWithStoreConfig(ref *xapiextv1.StoreConfigReference) CompositionSkeleton
// WithWriteConnectionSecretsToNamespace sets the
// WriteConnectionSecretsToNamespace of this compositionSkeleton.
WithWriteConnectionSecretsToNamespace(namespace *string) CompositionSkeleton
// RegisterCompositeAnnotations marks the given composite annotations as safe
// so it will be treated as a valid field in patch paths.
RegisterCompositeAnnotations(annotationKeys ...string) CompositionSkeleton
// RegisterCompositeLabels marks the given composite labels as safe
// so it will be treated as a valid field in patch paths.
RegisterCompositeLabels(labelKeys ...string) CompositionSkeleton
// RegisterCompositeFieldPaths marks the given composite paths as safe so
// they will be treated a valid in patch paths.
RegisterCompositeFieldPaths(paths ...string) CompositionSkeleton
}
CompositionSkeleton represents the build time state of a composition.
type CompositionWriter ¶
type CompositionWriter interface {
// Write writes the given composition to the destintation output.
Write(c xapiextv1.Composition) error
}
CompositionWriter specifies the interface for a delegate that writes the generated composition to the target destination.
func NewDirectoryWriter ¶
func NewDirectoryWriter(dir string) CompositionWriter
NewDirectoryWriter creates a new CompositionWriter that writes each composition to the given directory using the objects name as filename.
func NewWriterWriter ¶
func NewWriterWriter(w io.Writer) CompositionWriter
NewWriterWriter creates a CompositionWriter that writes to the given io.Writer.
type Object ¶
type Object interface {
runtime.Object
SetGroupVersionKind(gvk schema.GroupVersionKind)
}
Object is an extension of the k8s runtime.Object with additional functions that are required by Crossbuildec.
type ObjectKindReference ¶
type ObjectKindReference struct {
// GroupVersionKind is the GroupVersionKind for the composite type.
GroupVersionKind schema.GroupVersionKind
// Object is an instance of the composite type.
Object Object
}
ObjectKindReference contains the group version kind and instance of a runtime.Object.
type PipelineStepSkeleton ¶
type PipelineStepSkeleton interface {
// WithSteps adds the following steps to this pipeline.
WithFunctionRef(ref xapiextv1.FunctionReference) PipelineStepSkeleton
// WithInput sets the input of this pipeline step.
WithInput(input ObjectKindReference) PipelineStepSkeleton
// WithPatches adds the following patches to this pipeline step.
//
// Will automatically register the `patch-and-transform` function if not
// already registered.
WithPatches(name string, patches ...xpt.ComposedPatch) PipelineStepSkeleton
// WithPatch adds the following patch to this pipeline step.
WithPatch(name string, patch xpt.ComposedPatch) PipelineStepSkeleton
}
PipelineStepSkeleton represents the build time state of a pipeline step.
type RunnerConfig ¶
type RunnerConfig struct {
Builder []CompositionBuilder
Writer CompositionWriter
}
RunnerConfig specifies a new composition runner config.