extension/k8smetadata/config.go (26 lines of code) (raw):
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: MIT
package k8smetadata
import (
"errors"
"go.opentelemetry.io/collector/component"
"go.uber.org/multierr"
)
type Config struct {
Objects []string `mapstructure:"objects"`
}
func (c *Config) Validate() error {
var errs error
if len(c.Objects) == 0 {
errs = multierr.Append(errs, errors.New("no k8s objects passed in"))
}
allowedObjects := map[string]bool{
"endpointslices": true,
"services": true,
}
for _, obj := range c.Objects {
if !allowedObjects[obj] {
errs = multierr.Append(errs, errors.New("invalid k8s object: "+obj+". Only 'endpointslices' and 'services' are allowed"))
}
}
return errs
}
var _ component.Config = (*Config)(nil)