Closed fasaxc closed 6 years ago
I went through the docs and put together a list of all the current config docs we have:
Location | Purpose |
---|---|
/usage/configuration | Felix & Openstack |
/usage/configuration/securing-calico | Weirdly redundant general calico security info that probably shouldn't exist |
/usage/configuration/bgp | Using calicoctl to configure bgp |
/usage/configuration/as-service | How to configure / use calico/node with systemd |
/reference/cni-plugin/configuration | CNI config reference |
/reference/policy-controller/configuration | Policy-controller config reference |
/reference/calicoctl/commands/config | calicoctl config command reference |
Seems the approach we've taken is:
I actually like this approach, and think with a little cleanup we could further enforce it. I propose the following actions:
Sound like a good increment?
@djosborne that sounds about right to me.
The usage section shouldn't have configuration references in it. Those should all go in the reference section.
My above comment on moving configuration sections was mostly fixed by #505
Actually, I'm going to reopen this. I think we could still use a /usage/configuration/index
overview page which is basically a page of links to all the places where configuration info is detailed.
We need to have a clear idea of what sorts of documentation goes in each top-level section. Here's how I've been thinking about it to-date. I think this is largely correct, but feel free to contradict me :)
Getting Started
This should be where new users go. It includes quick-start guides, some basic tutorials to show off Calico's capabilities, and links to more advanced topics once users are comfortable with the basics.
Each orchestrator has a landing page that is targeted at people who are coming to see Calico for the first time. It's a transition from the "marketing" type material (why is Calico great) to some quick commands people can run to see it firsthand, and then funnels people off to the usage section for more details.
Usage
These should all be docs that are a "verb". They should be task focused, each doc containing a goal and a set of steps you can follow to achieve it. They should not be detailed description of components or tabulated configuration information.
Examples:
Reference
These docs are the complete reference for Calico. If there's a configuration option you're looking for, it goes here in one of the per-component references. Not every option has a "how to" guide, but has enough description.
Examples:
I think that is great info Casey so I added it to the docs README here #597. One question I have is where should we put stuff like:
Good questions!
what does IP-in-IP do
This feels like it would fit in the reference section, if we want to document it at all. Details about "what is IPIP" aren't necessarily right for our docs.
why would someone enable IP-in-IP?
This is probably in a few places. Each "Usage" guide should start with a clear "This is why you want to do this" type statement to make it clear to a user if the guide is relevant to them.
Caveats when using a feature
This probably goes with the reference documentation for that feature, I think. It may also be covered in troubleshooting / FAQ type docs in usage?
what does IP-in-IP do
Agreed we shouldn't be explaining generically what IP-in-IP is (though it wouldn't hurt to have a link to somewhere that does, if we don't already) but I would think there should be some kind of explanation of how it changes things. Kind of similar to Caveats I guess. Context: I was looking at https://github.com/projectcalico/calicoctl/issues/1296 and think the docs should reflect how IP-in-IP changes things. Specifically if you don't have IP-in-IP a workload and host endpoint can communicate but if it is enabled then they cannot (without nat-outgoing but that causes other changes).
@caseydavenport do you think additional reorganization needs to be done under this issue or simply creating the /usage/configuration/index landing page that djosborne mentioned?
At this point I think the biggest improvements will be adding the a landing page and some of the missing common tasks to the Usage section #778.
I think it makes sense to move some of the configuration in the Reference section into new configuration pages that should be created in Usage but I think that would be mostly just for calicoctl. Probably with the creation of an Installation and configuration page #632.
@tmjd What needs to be done to close this issue out? If it's just adding a toplevel config landing page, can we open that as a new issue and close this larger one out?
@ozdanborne Yes I think that is all that is needed is a landing page to close out this issue. As I mentioned in my previous comment there might be some rearranging that can be done when the calicoctl usage page is created but I just went and commented on that issue with that thought.
I think we should have landing page for Usage, do you think we should have a separate landing page for the configuration portion of Usage too?
The configuration page currently talks about system and Felix configuration but it doesn't talk about calicoctl or how to set config values.
I think we should have a landing page that gives an overview of the different types of configuration we support and why you'd want to tweak each of them (System requirements; Felix; BGP; integration-specific) and fans people out to more detailed docs.