Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions api/disaggregated/v1/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -172,12 +172,20 @@ type CommonSpec struct {
//EnvVars is a slice of environment variables that are added to the pods, the default is empty.
EnvVars []corev1.EnvVar `json:"envVars,omitempty"`

//EnvFrom is a list of sources to populate environment variables in the container, the default is empty.
//+optional
EnvFrom []corev1.EnvFromSource `json:"envFrom,omitempty"`

//SystemInitialization for fe, be setting system parameters.
SystemInitialization *SystemInitialization `json:"systemInitialization,omitempty"`

// Multi Secret for pod.
// +optional
Secrets []Secret `json:"secrets,omitempty"`

// InitContainers is a list of containers that should be run before the app containers are started.
// +optional
InitContainers []corev1.Container `json:"initContainers,omitempty"`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The 'InitContainers' defined in DDC are not passed into the actual 'PodTemplateSpec' construction

}

type SystemInitialization struct {
Expand Down
8 changes: 8 additions & 0 deletions api/doris/v1/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,10 @@ type BaseSpec struct {
//cnEnvVars is a slice of environment variables that are added to the pods, the default is empty.
EnvVars []corev1.EnvVar `json:"envVars,omitempty"`

//EnvFrom is a list of sources to populate environment variables in the container, the default is empty.
//+optional
EnvFrom []corev1.EnvFromSource `json:"envFrom,omitempty"`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The 'EnvFrom' defined in DCR is not passed into the actual 'PodTemplateSpec' construction


//+optional
//If specified, the pod's scheduling constraints.
Affinity *corev1.Affinity `json:"affinity,omitempty"`
Expand Down Expand Up @@ -240,6 +244,10 @@ type BaseSpec struct {
// Multi Secret for pod.
// +optional
Secrets []Secret `json:"secrets,omitempty"`

// InitContainers is a list of containers that should be run before the app containers are started.
// +optional
InitContainers []corev1.Container `json:"initContainers,omitempty"`
}

type SystemInitialization struct {
Expand Down
13 changes: 9 additions & 4 deletions pkg/common/utils/resource/pod.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ func NewPodTemplateSpec(dcr *v1.DorisCluster, config map[string]interface{}, com
var volumes []corev1.Volume
var si *v1.SystemInitialization
var dcrAffinity *corev1.Affinity
var defaultInitContainers []corev1.Container
var InitContainers []corev1.Container
var SecurityContext *corev1.PodSecurityContext
var skipInit bool
switch componentType {
Expand All @@ -105,21 +105,25 @@ func NewPodTemplateSpec(dcr *v1.DorisCluster, config map[string]interface{}, com
si = dcr.Spec.FeSpec.BaseSpec.SystemInitialization
dcrAffinity = dcr.Spec.FeSpec.BaseSpec.Affinity
SecurityContext = dcr.Spec.FeSpec.BaseSpec.SecurityContext
InitContainers = dcr.Spec.FeSpec.InitContainers
case v1.Component_BE:
volumes = newVolumesFromBaseSpec(dcr.Spec.BeSpec.BaseSpec, config, componentType)
si = dcr.Spec.BeSpec.BaseSpec.SystemInitialization
dcrAffinity = dcr.Spec.BeSpec.BaseSpec.Affinity
SecurityContext = dcr.Spec.BeSpec.BaseSpec.SecurityContext
skipInit = dcr.Spec.BeSpec.SkipDefaultSystemInit
InitContainers = dcr.Spec.BeSpec.InitContainers
case v1.Component_CN:
si = dcr.Spec.CnSpec.BaseSpec.SystemInitialization
dcrAffinity = dcr.Spec.CnSpec.BaseSpec.Affinity
SecurityContext = dcr.Spec.CnSpec.BaseSpec.SecurityContext
skipInit = dcr.Spec.CnSpec.SkipDefaultSystemInit
InitContainers = dcr.Spec.CnSpec.InitContainers
case v1.Component_Broker:
si = dcr.Spec.BrokerSpec.BaseSpec.SystemInitialization
dcrAffinity = dcr.Spec.BrokerSpec.BaseSpec.Affinity
SecurityContext = dcr.Spec.BrokerSpec.BaseSpec.SecurityContext
InitContainers = dcr.Spec.BrokerSpec.InitContainers
default:
klog.Errorf("NewPodTemplateSpec dorisClusterName %s, namespace %s componentType %s not supported.", dcr.Name, dcr.Namespace, componentType)
}
Expand Down Expand Up @@ -170,7 +174,7 @@ func NewPodTemplateSpec(dcr *v1.DorisCluster, config map[string]interface{}, com
Affinity: spec.Affinity.DeepCopy(),
Tolerations: spec.Tolerations,
HostAliases: spec.HostAliases,
InitContainers: defaultInitContainers,
InitContainers: InitContainers,
SecurityContext: SecurityContext,
},
}
Expand All @@ -185,7 +189,7 @@ func NewPodTemplateSpec(dcr *v1.DorisCluster, config map[string]interface{}, com
func NewPodTemplateSpecWithCommonSpec(cs *dv1.CommonSpec, componentType dv1.DisaggregatedComponentType) corev1.PodTemplateSpec {
var vs []corev1.Volume
si := cs.SystemInitialization
var defaultInitContainers []corev1.Container
var InitContainers []corev1.Container
vs, _ = appendPodInfoVolumesVolumeMounts(vs, nil)
pts := corev1.PodTemplateSpec{
ObjectMeta: metav1.ObjectMeta{
Expand All @@ -201,7 +205,7 @@ func NewPodTemplateSpecWithCommonSpec(cs *dv1.CommonSpec, componentType dv1.Disa
Affinity: cs.Affinity.DeepCopy(),
Tolerations: cs.Tolerations,
HostAliases: cs.HostAliases,
InitContainers: defaultInitContainers,
InitContainers: InitContainers,
SecurityContext: cs.SecurityContext,
Volumes: vs,
},
Expand All @@ -219,6 +223,7 @@ func NewContainerWithCommonSpec(cs *dv1.CommonSpec) corev1.Container {
SecurityContext: cs.ContainerSecurityContext,
Resources: cs.ResourceRequirements,
VolumeMounts: vms,
EnvFrom: cs.EnvFrom,
}
return c
}
Expand Down