The answer to the first two questions are helm charts. They are collections of parametrized yaml files and the most popular way to install things into k8s. You just need one config file for each helm release (values.yaml).
If you want to go declarative with gitops rather than imperative, check ArgoCD or flux.
Auch erst kürzlich entdeckt, Game Changer