pkg/model/lattice/targets.go (31 lines of code) (raw):
package lattice
import (
"github.com/aws/aws-application-networking-k8s/pkg/model/core"
"k8s.io/apimachinery/pkg/types"
)
type Targets struct {
core.ResourceMeta `json:"-"`
Spec TargetsSpec `json:"spec"`
}
// unlike target groups, which can reference a service export, targets
// are always sourced from the local cluster. When we update targets,
// we find all the target groups linked to the specific service
type TargetsSpec struct {
StackTargetGroupId string `json:"stacktargetgroupid"`
TargetList []Target `json:"targetlist"`
}
type Target struct {
TargetIP string `json:"targetip"`
Port int64 `json:"port"`
Ready bool `json:"ready"`
TargetRef types.NamespacedName
}
func NewTargets(stack core.Stack, spec TargetsSpec) (*Targets, error) {
id, err := core.IdFromHash(spec)
if err != nil {
return nil, err
}
targets := &Targets{
ResourceMeta: core.NewResourceMeta(stack, "AWS:VPCServiceNetwork::Targets", id),
Spec: spec,
}
stack.AddResource(targets)
return targets, nil
}