in operator/pkg/component/component.go [112:178]
func (c Component) Get(merged values.Map) ([]apis.DefaultCompSpec, error) {
defaultNamespace := merged.GetPathString("metadata.namespace")
var defaultResp []apis.DefaultCompSpec
def := c.Default
if def {
defaultResp = []apis.DefaultCompSpec{{
RegisterComponentSpec: apis.RegisterComponentSpec{
Namespace: defaultNamespace,
}},
}
}
buildSpec := func(m values.Map) (apis.DefaultCompSpec, error) {
spec, err := values.ConvertMap[apis.DefaultCompSpec](m)
if err != nil {
return apis.DefaultCompSpec{}, fmt.Errorf("fail to convert %v: %v", c.SpecName, err)
}
if spec.Namespace == "" {
spec.Namespace = defaultNamespace
}
if spec.Namespace == "" {
spec.Namespace = "dubbo-system"
}
spec.Raw = m
return spec, nil
}
// List of components
if c.ContainerName == "dashboard" {
s, ok := merged.GetPathMap("spec.dashboard." + c.SpecName)
if !ok {
return defaultResp, nil
}
spec, err := buildSpec(s)
if err != nil {
return nil, err
}
if !(spec.Enabled.GetValueOrTrue()) {
return nil, nil
}
}
if c.ContainerName == "register-discovery" {
s, ok := merged.GetPathMap("spec.components.register." + c.SpecName)
if !ok {
return defaultResp, nil
}
spec, err := buildSpec(s)
if err != nil {
return nil, err
}
if !(spec.Enabled.GetValueOrTrue()) {
return nil, nil
}
}
// Single component
s, ok := merged.GetPathMap("spec.components." + c.SpecName)
if !ok {
return defaultResp, nil
}
spec, err := buildSpec(s)
if err != nil {
return nil, err
}
if !(spec.Enabled.GetValueOrTrue()) {
return nil, nil
}
return []apis.DefaultCompSpec{spec}, nil
}