in addons/master/master.go [87:153]
func (t *masterTrait) Configure(e *trait.Environment) (bool, error) {
if e.Integration == nil || !pointer.BoolDeref(t.Enabled, true) {
return false, nil
}
if !e.IntegrationInPhase(v1.IntegrationPhaseInitialization) && !e.IntegrationInRunningPhases() {
return false, nil
}
if pointer.BoolDeref(t.Auto, true) {
// Check if the master component has been used
sources, err := kubernetes.ResolveIntegrationSources(e.Ctx, t.Client, e.Integration, e.Resources)
if err != nil {
return false, err
}
meta, err := metadata.ExtractAll(e.CamelCatalog, sources)
if err != nil {
return false, err
}
if t.Enabled == nil {
for _, endpoint := range meta.FromURIs {
if uri.GetComponent(endpoint) == masterComponent {
enabled := true
t.Enabled = &enabled
}
}
}
if !pointer.BoolDeref(t.Enabled, false) {
return false, nil
}
if t.IncludeDelegateDependencies == nil || *t.IncludeDelegateDependencies {
t.delegateDependencies = findAdditionalDependencies(e, meta)
}
if t.ResourceName == nil {
val := fmt.Sprintf("%s-lock", e.Integration.Name)
t.ResourceName = &val
}
if t.ResourceType == nil {
canUseLeases, err := t.canUseLeases(e)
if err != nil {
return false, err
}
if canUseLeases {
t.ResourceType = &leaseResourceType
} else {
t.ResourceType = &configMapResourceType
}
}
if t.LabelKey == nil {
val := v1.IntegrationLabel
t.LabelKey = &val
}
if t.LabelValue == nil {
t.LabelValue = &e.Integration.Name
}
}
return pointer.BoolDeref(t.Enabled, true), nil
}