Documentation
¶
Index ¶
- Constants
- func MergeContainerPorts(slices ...[]corev1.ContainerPort) []corev1.ContainerPort
- func MergeContainerTemplate(comp, tl *supersetv1alpha1.ContainerTemplate, op *OperatorInjected) *supersetv1alpha1.ContainerTemplate
- func MergeContainers(slices ...[]corev1.Container) []corev1.Container
- func MergeDeploymentTemplate(comp, tl *supersetv1alpha1.DeploymentTemplate) *supersetv1alpha1.DeploymentTemplate
- func MergeEnvFromSources(slices ...[]corev1.EnvFromSource) []corev1.EnvFromSource
- func MergeEnvVars(slices ...[]corev1.EnvVar) []corev1.EnvVar
- func MergeHostAliases(slices ...[]corev1.HostAlias) []corev1.HostAlias
- func MergeMaps(maps ...map[string]string) map[string]string
- func MergePodTemplate(comp, tl *supersetv1alpha1.PodTemplate, operatorLabels map[string]string, ...) *supersetv1alpha1.PodTemplate
- func MergeVolumeMounts(slices ...[]corev1.VolumeMount) []corev1.VolumeMount
- func MergeVolumes(slices ...[]corev1.Volume) []corev1.Volume
- func Ptr[T any](v T) *T
- func ResolveOverridableMap(override, defaultVal map[string]string) map[string]string
- func ResolveOverridableSlice[T any](override, defaultVal []T) []T
- func ResolveOverridableValue[T any](override, defaultVal *T) *T
- func ResolveResource(values ...*corev1.ResourceRequirements) corev1.ResourceRequirements
- func ResolveScalar[T any](values ...*T) T
- type ComponentInput
- type ComponentType
- type FlatSpec
- type OperatorInjected
- type SharedInput
Constants ¶
const ( ComponentWebServer = common.ComponentWebServer ComponentCeleryWorker = common.ComponentCeleryWorker ComponentCeleryBeat = common.ComponentCeleryBeat ComponentCeleryFlower = common.ComponentCeleryFlower ComponentWebsocketServer = common.ComponentWebsocketServer ComponentMcpServer = common.ComponentMcpServer ComponentInit = common.ComponentInit )
Component type constants re-exported for convenience.
Variables ¶
This section is empty.
Functions ¶
func MergeContainerPorts ¶
func MergeContainerPorts(slices ...[]corev1.ContainerPort) []corev1.ContainerPort
MergeContainerPorts merges multiple container port slices. Later entries with the same Name replace earlier entries in place to preserve ordering.
func MergeContainerTemplate ¶
func MergeContainerTemplate(comp, tl *supersetv1alpha1.ContainerTemplate, op *OperatorInjected) *supersetv1alpha1.ContainerTemplate
MergeContainerTemplate field-level merges two ContainerTemplates and folds in operator-injected env vars and volume mounts.
func MergeContainers ¶
MergeContainers concatenates multiple container slices (for sidecars/initContainers). Later entries with the same Name replace earlier entries.
func MergeDeploymentTemplate ¶
func MergeDeploymentTemplate(comp, tl *supersetv1alpha1.DeploymentTemplate) *supersetv1alpha1.DeploymentTemplate
MergeDeploymentTemplate field-level merges two DeploymentTemplates. Only contains Deployment-level fields (no nested PodTemplate).
func MergeEnvFromSources ¶
func MergeEnvFromSources(slices ...[]corev1.EnvFromSource) []corev1.EnvFromSource
MergeEnvFromSources concatenates multiple EnvFromSource slices. Unlike named resources (EnvVar, Volume, Container), EnvFromSource entries are not deduplicated because there is no single natural key: an EnvFromSource can reference either a ConfigMap or a Secret, each with an optional Prefix, and the same source may be intentionally included multiple times with different prefixes.
func MergeEnvVars ¶
MergeEnvVars merges multiple env var slices. Later entries with the same Name replace earlier entries in place to preserve ordering.
func MergeHostAliases ¶
MergeHostAliases merges multiple host alias slices. Later entries with the same IP replace earlier entries in place to preserve ordering.
func MergeMaps ¶
MergeMaps merges multiple string maps. Later maps take precedence on key conflict. Returns nil if the result is empty.
func MergePodTemplate ¶
func MergePodTemplate(comp, tl *supersetv1alpha1.PodTemplate, operatorLabels map[string]string, op *OperatorInjected) *supersetv1alpha1.PodTemplate
MergePodTemplate field-level merges two PodTemplates and folds in operator-injected values (volumes, init containers, labels).
func MergeVolumeMounts ¶
func MergeVolumeMounts(slices ...[]corev1.VolumeMount) []corev1.VolumeMount
MergeVolumeMounts merges multiple volume mount slices. Later entries with the same Name replace earlier entries in place to preserve ordering.
func MergeVolumes ¶
MergeVolumes merges multiple volume slices. Later entries with the same Name replace earlier entries in place to preserve ordering.
func Ptr ¶
func Ptr[T any](v T) *T
Ptr returns a pointer to the given value. Delegates to common.Ptr.
func ResolveOverridableMap ¶
ResolveOverridableMap returns the override if it's non-nil (even if empty), otherwise returns the default. This enables overriding with an empty map.
func ResolveOverridableSlice ¶
func ResolveOverridableSlice[T any](override, defaultVal []T) []T
ResolveOverridableSlice returns the override if it's non-nil (even if empty), otherwise returns the default. This enables overriding with an empty slice.
func ResolveOverridableValue ¶
func ResolveOverridableValue[T any](override, defaultVal *T) *T
ResolveOverridableValue returns the override if non-nil, otherwise the default.
func ResolveResource ¶
func ResolveResource(values ...*corev1.ResourceRequirements) corev1.ResourceRequirements
ResolveResource returns the first non-nil ResourceRequirements.
func ResolveScalar ¶
func ResolveScalar[T any](values ...*T) T
ResolveScalar returns the first non-nil value from the provided pointers. Returns the zero value of T if all are nil.
Types ¶
type ComponentInput ¶
type ComponentInput struct {
}
ComponentInput captures per-component fields. Embeds SharedInput.
type ComponentType ¶
type ComponentType = common.ComponentType
ComponentType is an alias for common.ComponentType.
type FlatSpec ¶
type FlatSpec struct {
Replicas int32
DeploymentTemplate *supersetv1alpha1.DeploymentTemplate
PodTemplate *supersetv1alpha1.PodTemplate
Autoscaling *supersetv1alpha1.AutoscalingSpec
PodDisruptionBudget *supersetv1alpha1.PDBSpec
}
FlatSpec is the fully resolved output from the resolution engine.
func ResolveChildSpec ¶
func ResolveChildSpec( componentType ComponentType, topLevel *SharedInput, component *ComponentInput, operatorLabels map[string]string, operator *OperatorInjected, ) *FlatSpec
ResolveChildSpec produces a fully-flattened spec from a 2-level model: top-level SharedInput + per-component ComponentInput. The DeploymentTemplate is field-level merged (component wins on conflict for scalars/structs, collections merge by name or append). Operator-injected values are folded in at the appropriate template level.
type OperatorInjected ¶
type OperatorInjected struct {
Env []corev1.EnvVar
Volumes []corev1.Volume
VolumeMounts []corev1.VolumeMount
InitContainers []corev1.Container
}
OperatorInjected holds volumes, mounts, env vars, and init containers that the operator injects (e.g., config mount, TLS mounts, config env vars).
type SharedInput ¶
type SharedInput struct {
}
SharedInput holds top-level or per-component fields for resolution.