title: Best practices for storing kubernetes configuration in source control
body: <p>In several places on the Kubernetes documentation site they recommend that you store your configuration YAML files inside source control for easy version-tracking, rollback, and deployment. </p>
  
  <p>My colleagues and I are currently in the process of trying to decide on the structure of our git repository. </p>
  
  <ul>
  <li>We have decided that since configuration can change without any changes to the app code, that we would like to store configurations in a separate, shared repository.</li>
  <li>We may need multiple versions of some components running side-by-side within a given environment (cluster). These versions may have different configurations.</li>
  </ul>
  
  <p>There seem to be a lot of potential variations, and all of them have shortcomings. What is the accepted way to structure such a repository?</p>