setServiceOptions: %f format produces invalid autoscaling annotation values with trailing zeros
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 1/5
- Tiempo estimado
- Menos de una hora
- Aptitud para principiantes
- 90/100
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
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
- Create a function with scale options in
func.yaml:
deploy:
options:
scale:
target: 100
utilization: 70
- Deploy the function:
func deploy - 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
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de knative/func
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
lifecycle/stale
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
kind/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
Todos los issues de knative/func
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 84/100
-
enhancement needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
kind/cleanup
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
kubernetes-sigs/kueue#15947 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
sympozium-ai/sympozium#627 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100