tazjin/kontemplate

README revamp ideas

tazjin opened this issue · 1 comments

Documentation is a hard problem. How do you make features discoverable to users when they need them?

Currently this isn't solved well in the documentation that the repository has, but I'm thinking that a revamp of the README (which is probably the documentation entrypoint for most people) can partially solve this.

One idea I had was to start off the README with a list of features, each of which are a link to a more specific documentation piece for that feature. For example:

Kontemplate is [... blabla ...]. Check out an example and the feature list below:

[simple usage example]

## Features:

* [Simple, yet powerful templates](docs/templates.md)
* [Clean cluster configuration files](docs/cluster-config.md)
* [Integration with `pass`](docs/pass.md)
* [Integration with `kubectl`](docs/cli.md)
* ... other stuff

## Best practices

Kontemplate is being used in several real-world Kubernetes deployments.

Check out the best practice documentation on [code organisation](docs/code-organisation.md) and [CI integration](docs/ci-integration.md).

The one thing that is still missing here is something that communicates the term resource set clearly to the user. Ideally there would also be a link to an example project that makes use of as many features as possible (*sigh* I should update all my tazj.in things).

Alternatively:

Kontemplate is [...]

[simple usage example]

## Getting started

There are two ways to get started with kontemplate.

1. Read the [quick-start guide](docs/quick-start.md) and check out the [feature list](<anchor to feature list>) to learn about all the functionality in kontemplate.

2. Check out the [example project](https://git.tazj.in/tazjin/infrastructure) which attempts to make use of most kontemplate features. Templates and context files in the example project are documented.

This would require a few other things to be created first:

  • Quick start guide with a basic "How to find your kubectl context, bootstrap the context file, deploy a simple resource"
  • Documentation for individual features (which require docs?)
  • An example project, probably based on my tazj.in configuration to have a real-world example. The question is whether it should be "runnable" or not? The example project could also be an extended version of the deployment from the quick-start with extensive commenting inline.