Cannot start function container when container user does not exist within crossplane-xfn container
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- docker, go
- Área
- devops, infrastructure
Línea de trabajo
Comienza reproduciendo el fallo con el Dockerfile y labelizer.sh mostrados en el issue, usando una imagen de función cuyo usuario configurado no está presente en /etc/passwd. Después, rastrea el punto de entrada de Go que invoca el contenedor OCI y resuelve su usuario. Se considera terminado cuando los contenedores de función se inician correctamente incluso cuando su usuario configurado no está presente en la imagen crossplane-xfn, incluidos UIDs altos o aleatorios arbitrarios.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
What happened?
Working on https://github.com/crossplane/crossplane/pull/4261 required creating a custom, but simple function image that labels all managed resources with a given label. My first idea was to use yq for that and the initial Dockerfile was just:
FROM mikefarah/yq:4.34.1
COPY labelizer.sh /bin
ENTRYPOINT ["/bin/labelizer.sh"]
with /bin/labelizer.sh being just:
#!/usr/bin/env sh
yq '(.desired.resources[] | .resource.metadata.labels) |= {"labelizer.xfn.crossplane.io/processed": "true"} + .'
Unfortunately, adding this function to a composition resulted with the following error in crossplane-xfn logs:
cannot compose resources: cannot run Composition Function pipeline: cannot run function "labelizer":
cannot run container: rpc error: code = Unknown desc = exit status 1: xfn: error: spark.Command.Run():
cannot create OCI runtime bundle: cannot write OCI runtime spec: cannot create new spec:
cannot apply spec option: cannot resolve user specified by OCI image config:
cannot resolve UID of user "yq" that doesn't exist in container's /etc/passwd
Modifying the image to use root to run the script resolved the issue.
How can we reproduce it?
- deploy crossplane with enabled composition functions
- build and publish the function image using files stated above
- create a composition referring that function
What environment did it happen in?
The issue is spotted on the latest master, but I am pretty sure that versions containing composition function feature suffer from the same issue.
Expectations
Function containers should be successfully invoked independently if container user exists within crossplane-xfn container/image. We should even encourage function authors to use some arbitrary high/random UID for function.
- Lenguaje dominante
- Go
- Estrellas
- 6
- Forks
- 2
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
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 crossplane/function-runtime-oci
-
enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
crossplane/function-runtime-oci#42 · 2 comentarios · 1 reacción ·
-
Expose function metrics Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
Dependency Dashboard Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 15/100
-
enhancement
crossplane/function-runtime-oci#35 · 11 comentarios · 12 reacciones · 1 asignado ·
Todos los issues de crossplane/function-runtime-oci
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
bug group: validation priority: low
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
codecheckers/chekhov#51 ·
-
Creating worktree from an existing remote branch with a slash in it, has unexpected behaviour Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100