in internal/manifests/collector/collector.go [19:73]
func Build(params manifests.Params) ([]client.Object, error) {
var resourceManifests []client.Object
var manifestFactories []manifests.K8sManifestFactory
switch params.OtelCol.Spec.Mode {
case v1alpha1.ModeDeployment:
manifestFactories = append(manifestFactories, manifests.FactoryWithoutError(Deployment))
manifestFactories = append(manifestFactories, manifests.FactoryWithoutError(PodDisruptionBudget))
case v1alpha1.ModeStatefulSet:
manifestFactories = append(manifestFactories, manifests.FactoryWithoutError(StatefulSet))
manifestFactories = append(manifestFactories, manifests.FactoryWithoutError(PodDisruptionBudget))
case v1alpha1.ModeDaemonSet:
manifestFactories = append(manifestFactories, manifests.FactoryWithoutError(DaemonSet))
case v1alpha1.ModeSidecar:
params.Log.V(5).Info("not building sidecar...")
}
manifestFactories = append(manifestFactories, []manifests.K8sManifestFactory{
manifests.FactoryWithoutError(HorizontalPodAutoscaler),
manifests.FactoryWithoutError(ServiceAccount),
manifests.Factory(Service),
manifests.Factory(HeadlessService),
manifests.Factory(MonitoringService),
manifests.Factory(Ingress),
}...)
if params.OtelCol.Spec.Observability.Metrics.EnableMetrics && featuregate.PrometheusOperatorIsAvailable.IsEnabled() {
if params.OtelCol.Spec.Mode == v1alpha1.ModeSidecar {
manifestFactories = append(manifestFactories, manifests.Factory(PodMonitor))
} else {
manifestFactories = append(manifestFactories, manifests.Factory(ServiceMonitor))
}
}
for _, factory := range manifestFactories {
res, err := factory(params)
if err != nil {
return nil, err
} else if manifests.ObjectIsNotNil(res) {
resourceManifests = append(resourceManifests, res)
}
}
configmaps, err := ConfigMaps(params)
if err != nil {
return nil, err
}
for _, configmap := range configmaps {
resourceManifests = append(resourceManifests, configmap)
}
routes, err := Routes(params)
if err != nil {
return nil, err
}
// NOTE: we cannot just unpack the slice, the type checker doesn't coerce the type correctly.
for _, route := range routes {
resourceManifests = append(resourceManifests, route)
}
return resourceManifests, nil
}