setServiceOptions: %f format produces invalid autoscaling annotation values with trailing zeros

Abierto Apto para principiantes
#3,901 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
1/5
Tiempo estimado
Menos de una hora
Aptitud para principiantes
90/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
go
Área
devops

Línea de trabajo

Empieza en pkg/knative/deployer.go, alrededor de las líneas 592 y 598, donde setServiceOptions da formato a las anotaciones de scale. Comprueba los valores generados usando las opciones de scale de func.yaml y el comando kubectl del informe; se considera hecho cuando las anotaciones de target y utilization contienen cadenas numéricas limpias sin ceros finales.

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

Descripción

lifecycle/stale

Description

setServiceOptions in pkg/knative/deployer.go uses fmt.Sprintf("%f", ...) to format the Target and Utilization autoscaling annotation values. Go's %f verb produces 6 trailing decimal places by default (e.g., "100.000000"), which is not the expected format for Knative autoscaling annotations.

Steps to Reproduce

  1. Create a function with scale options in func.yaml:
deploy:
  options:
    scale:
      target: 100
      utilization: 70
  1. Deploy the function: func deploy
  2. Inspect the deployed Knative Service annotations:
kubectl get ksvc <name> -o jsonpath='{.spec.template.metadata.annotations}'

Expected Behavior

Annotations should contain clean numeric strings:

  • autoscaling.knative.dev/target: "100"
  • autoscaling.knative.dev/target-utilization-percentage: "70"

Actual Behavior

Annotations contain float-formatted strings with trailing zeros:

  • autoscaling.knative.dev/target: "100.000000"
  • autoscaling.knative.dev/target-utilization-percentage: "70.000000"

Relevant Code

// pkg/knative/deployer.go:592
toUpdate[autoscaling.TargetAnnotationKey] = fmt.Sprintf("%f", *options.Scale.Target)
// pkg/knative/deployer.go:598
toUpdate[autoscaling.TargetUtilizationPercentageKey] = fmt.Sprintf("%f", *options.Scale.Utilization)

Suggested Fix

Replace %f with %g to strip trailing zeros:

toUpdate[autoscaling.TargetAnnotationKey] = fmt.Sprintf("%g", *options.Scale.Target)
toUpdate[autoscaling.TargetUtilizationPercentageKey] = fmt.Sprintf("%g", *options.Scale.Utilization)
Lenguaje dominante
Go
Estrellas
365
Forks
223
Merge medio
2 d 3 h
PR fusionados (30 d)
25

Guía de contribución

Abrir la guía de contribución

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 knative/func

Todos los issues de knative/func

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.