helm: Re-factor the way we handle CRDs in fluent-operator's helm chart(s)

Abierto
#1,765 4 comentarios 2 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
45/100
Tipo de issue
Refactorización
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
kubernetes
Área
devops

Línea de trabajo

Comienza comparando las dependencias de CRD actuales en charts/fluent-operator/charts con el directorio crds/ del chart principal. Revisa el chart fluent-operator-crds propuesto, su directorio templates/ y la configuración de CI o de release que publica los charts. Se considera completado cuando el chart principal instala las CRD, el chart separado las actualiza, se evitan las CRD duplicadas y se actualiza la documentación de instalación y actualización.

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

Descripción

helm chart
Is your feature request related to a problem? Please describe.

How we currently handle CRDs:

  • We currently distribute fluent-operator's CRDs in two separate "sub-charts" which are dependencies of the "main" chart.
  • This makes it difficult to upgrade Helm releases when there are CRD changes, because CRDs (in crds/ directories) are not upgraded by default in Helm. Users have to manually fetch CRDs, run kubectl replace etc
  • The usage of file:// references in dependencies also causes duplicate CRDs in the release as reported here.
Describe the solution you'd like

I'd like to propose that we implement something similar to how Karpenter handles their Helm releases:

  • Include the fluentd and fluent-bit CRDs in the fluent-operator's "main" chart's crds/ folder.
    This will ensure all CRDs get installed during an initial helm install
  • Create a new "top-level" chart named fluent-operator-crds
  • Put CRDs in the templates/ directory of the fluent-operator-crds chart
  • Placing them in the templates/ directory will allow a user to helm upgrade the fluent-operator-crds chart to upgrade our CRDs instead instead of having to fetch them manually and kubectl replace etc
  • In this setup, we'll need to publish updated CRDs to two locations -- charts/fluent-operator/crds and charts/fluent-operator-crds/templates -- but this should be fairly simple with CI. (edited)
Additional context

I don't think this would introduce any breaking changes:

  • Currently, if a user wants to install fluent-operator without any CRDs, they can set fluentd.crdsEnable or fluentbit.crdsEnable to false
  • Moving forward, we would deprecate these two values, and a user could simply use helm install --skip-crds` if they want to prevent CRD installation

As part of this, we can also clarify and update our documentation for "installing" and "upgrading."

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.