internal/ecsservicediscovery/dockerlabeldiscoveryprocessor.go (27 lines of code) (raw):
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: MIT
package ecsservicediscovery
// Tag the Tasks that matched the Docker Label based SD Discovery
type DockerLabelDiscoveryProcessor struct {
label string
}
func NewDockerLabelDiscoveryProcessor(d *DockerLabelConfig) *DockerLabelDiscoveryProcessor {
if d == nil {
return &DockerLabelDiscoveryProcessor{label: ""}
}
return &DockerLabelDiscoveryProcessor{label: d.PortLabel}
}
func (p *DockerLabelDiscoveryProcessor) Process(cluster string, taskList []*DecoratedTask) ([]*DecoratedTask, error) {
if p.label == "" {
return taskList, nil
}
for _, v := range taskList {
for _, d := range v.TaskDefinition.ContainerDefinitions {
if _, ok := d.DockerLabels[p.label]; ok {
v.DockerLabelBased = true
break
}
}
}
return taskList, nil
}
func (p *DockerLabelDiscoveryProcessor) ProcessorName() string {
return "DockerLabelDiscoveryProcessor"
}