bug: operator pod restarting due to controller-runtime.source errors

Abierto
#1,188 4 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
25/100
Tipo de issue
Error
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
docker, go, helm, kubernetes

Línea de trabajo

Comienza comparando cmd/fluent-manager/Dockerfile, el Makefile y la invocación de go build utilizada para crear la imagen que falla. Reproduce la instalación de Helm con la imagen personalizada e inspecciona los logs del operador junto con la imagen funcional kubesphere/fluent-operator:v2.8.0. Se considera completado cuando la imagen personalizada se ejecuta sin reinicios del pod ni errores de CRD faltantes para MultilineParser y ClusterMultilineParser.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Describe the issue

I'm running into an issue building a fluent-operator image using the Makefile, or using the go build ... invocation and packaging the resulting manager binary into an image. Either approach results in pod restarts when deploying the operator.

The errors look like the following:

kubectl logs -n fluent fluent-operator-55dd7bc945-kthgm
Example MultilineParser error using docker build image
2024-05-28T13:21:44Z	ERROR	controller-runtime.source	if kind is a CRD, it should be installed before calling Start	{"kind": "MultilineParser.fluentbit.fluent.io", "error": "no matches for kind \"MultilineParser\" in version \"fluentbit.fluent.io/v1alpha2\""}
sigs.k8s.io/controller-runtime/pkg/source.(*Kind).Start.func1.1
	/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/source/source.go:143
k8s.io/apimachinery/pkg/util/wait.runConditionWithCrashProtectionWithContext
	/go/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:154
k8s.io/apimachinery/pkg/util/wait.waitForWithContext
	/go/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:207
k8s.io/apimachinery/pkg/util/wait.poll
	/go/pkg/mod/k8s.io/[email protected]/pkg/util/wait/poll.go:260
k8s.io/apimachinery/pkg/util/wait.PollImmediateUntilWithContext
	/go/pkg/mod/k8s.io/[email protected]/pkg/util/wait/poll.go:200
sigs.k8s.io/controller-runtime/pkg/source.(*Kind).Start.func1
	/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/source/source.go:136
Example ClusterMultilineParser from go build... image
2024-05-28T14:22:17Z	INFO	Starting workers	{"controller": "fluentbit", "controllerGroup": "fluentbit.fluent.io", "controllerKind": "FluentBit", "worker count": 1}
2024-05-28T14:22:17Z	ERROR	controller-runtime.source	if kind is a CRD, it should be installed before calling Start	{"kind": "ClusterMultilineParser.fluentbit.fluent.io", "error": "no matches for kind \"ClusterMultilineParser\" in version \"fluentbit.fluent.io/v1alpha2\""}
sigs.k8s.io/controller-runtime/pkg/source.(*Kind).Start.func1.1
	/var/cache/melange/gomodcache/sigs.k8s.io/[email protected]/pkg/source/source.go:143
k8s.io/apimachinery/pkg/util/wait.runConditionWithCrashProtectionWithContext
	/var/cache/melange/gomodcache/k8s.io/[email protected]/pkg/util/wait/wait.go:154
k8s.io/apimachinery/pkg/util/wait.poll
	/var/cache/melange/gomodcache/k8s.io/[email protected]/pkg/util/wait/poll.go:245
k8s.io/apimachinery/pkg/util/wait.PollImmediateUntilWithContext
	/var/cache/melange/gomodcache/k8s.io/[email protected]/pkg/util/wait/poll.go:200
sigs.k8s.io/controller-runtime/pkg/source.(*Kind).Start.func1
	/var/cache/melange/gomodcache/sigs.k8s.io/[email protected]/pkg/source/source.go:136
2024-05-28T14:22:18Z	INFO	Starting workers	{"controller": "fluentd", "controllerGroup": "fluentd.fluent.io", "controllerKind": "Fluentd", "worker count": 1}
2024-05-28T14:22:18Z	INFO	Starting workers	{"controller": "collector", "controllerGroup": "fluentbit.fluent.io", "controllerKind": "Collector", "worker count": 1}
2024-05-28T14:22:18Z	INFO	Starting workers	{"controller": "fluentd", "controllerGroup": "fluentd.fluent.io", "controllerKind": "Fluentd", "worker count": 1}

Both methods will show both Cluster/Multiline errors and the pod will restart. The operator will however create fluent-bit and fluentd pods given the appropriate manifest.

To Reproduce

build the image

cat VERSION
v2.8.0

docker build --platform linux/arm64 -f cmd/fluent-manager/Dockerfile . -t k3d-k3d.localhost:5005/fluent-operator:v2.8.0

docker push k3d-k3d.localhost:5005/fluent-operator:v2.8.0

helm install

helm repo add fluent https://fluent.github.io/helm-charts
helm install fluent-operator --create-namespace -n fluent fluent/fluent-operator  --set operator.container.repository=k3d-k3d.localhost:5005/fluent-operator --set operator.container.tag=v2.8.0
Expected behavior

The pod should not be restarting and throwing errors about CRDs.

Your Environment
  • Fluent Operator version: v2.8.0
  • Container Runtime: containerd://1.7.15-k3s1
  • Operating system:
ID=wolfi
NAME="Wolfi"
PRETTY_NAME="Wolfi"
VERSION_ID="20230201"
HOME_URL="https://wolfi.dev"
  • Kernel version: Linux d186e0ca7a21 6.6.16-linuxkit #1 SMP Fri Feb 16 11:54:02 UTC 2024 aarch64 Linux
How did you install fluent operator?

Using helm:

helm repo add fluent https://fluent.github.io/helm-charts
helm install fluent-operator --create-namespace -n fluent fluent/fluent-operator  --set operator.container.repository=k3d-k3d.localhost:5005/fluent-operator --set operator.container.tag=v2.8.0
Additional context

Running with the kubesphere/fluent-operator:v2.8.0 image explicitly, or by not setting the operator.container.repository value in the helm chart results in no errors.

Lenguaje dominante
Go
Estrellas
689
Forks
333
Merge medio
2 d 14 h
PR fusionados (30 d)
41

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de fluent/fluent-operator

Todos los issues de fluent/fluent-operator

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.