crossplane / crossplane/function-sdk-python
google.protobuf.message.DecodeError when passed objects with nested levels above 30
- Langage dominant
- Python
- Étoiles
- 12
- Forks
- 15
- Merge moyen
- 2 j 5 h
- PR mergées (30 j)
- 3
Description
### What happened?
We have composition that generates or consumes values with a high level of nested sub-values. (Those are CRDs that we are using with the Kubernetes Provider)
When going over 30 levels of imbrication the error below is raised
`
crossplane: error: cannot render composite resource: cannot run pipeline step "blueprint": rpc error: code = Unknown desc = Unexpected : Error parsing message with type 'apiextensions.fn.proto.v1.RunFunctionRequest'`
### How can we reproduce it?
```
`
apiVersion:
kind: XCOMPO
metadata:
name:
spec:
debug:
level0:
level1:
level2:
level3:
level4:
level5:
level6:
level7:
level8:
level9:
level10:
level11:
level12:
level13:
level14:
level15:
level16:
level17:
level18:
level19:
level20:
level21:
level22:
level23:
level24:
level25:
level26:
level27:
level28:
level29:
```
Running ☝ this composite would faild if there is a level30 as child of level29.
Could this be linked to the limits set in Protobuf (https://github.com/protocolbuffers/protobuf/issues/6537) ?
Note: there is no issue when outputing resources with more than 30 levels. (ie: running something like
`rsp.desired.resources["toto"].resource.update(resources)`
Where resources has more than 30 levels.
It is only when the function is called with too many depth inputs that the exception is raised.
### What environment did it happen in?
Function version:
0.6.0
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Évaluation
Cette issue n'a pas encore été évaluée.