Caveat: I am writing this based on my understanding of the tools I tried at the time. Things are constantly changing in k8s world. So, it is possible some of the comments here are outdated.
I don't mean to hurt anyone's feelings. I am trying to find tools that help me solve our customer problems. I am trying to make a decision that can help us deliver our products to our customers today.
Data vs Code: I think data, ie, YAML is the right layer for coordination among k8s ecosystem tools. YAML works great as the "wire format". But for human users a higher level YAML generation tool (aka, code) is often needed.
Our use-cases: We make k8s operators that we sell to users. In the beginning, we would offer users a curl | bash script. Over time, users started asking for customizations in installer scripts that became hard to do with just scripts. Also, scripts don't work in Windows. So, we started supporting both script and helm charts. Over time it became quite hard to keep these in sync and test. So,