Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarify dashboard documentation / help #276

Closed
gertipoppel opened this issue Jan 21, 2016 · 29 comments
Closed

Clarify dashboard documentation / help #276

gertipoppel opened this issue Jan 21, 2016 · 29 comments

Comments

@gertipoppel
Copy link
Contributor

Documentation for the Kubernetes dashboard - Proposal

This is a proposal of how the K8S dashboard could be documented, which information should be provided, and how it should be presented to users of the dashboard. The proposal is based on the UI design (mockups).

Current situation

  • The dashboard UI pages provide [Learn more] links. Content is not yet referenced / available.
  • ? links for individual UI elements provide tooltips - text is in the source code.

Proposed extensions

  • The [Learn more] links will reference existing K8S documentation topics as far as possible (see below for details), or, where the K8S documentation is not sufficient or needs to be extended, reference HTML pages that must be newly created.
  • The currently implemented tooltips can / should be extended and provide a bit more information, where applicable.

To be discussed

  • If references to the existing K8S documentation are not sufficient, how can we provide newly created content?
    Proposal: Write HTML pages and include references to K8S documentation in the new HTML pages. Is it OK to simply use the Kubernetes style sheet for the new HTML pages?

    Alternative: Write markdown pages in a structure in analogy to the K8S project, and implement the generation of HTML pages in anology with the K8S documentation generation process also in the dashboard project.

  • Links to the K8S documentation contain specific version information. I.e. if a specific topic of the K8S documentation shall be referenced, it is not possible to omit the version information. Currently, this is V1.1. If it is omitted in the link, the user is redirected to the K8S main documentation page.

  • Do we need to describe how to "containerize" an application? If yes, here are some links with reference information:

Proposal for [Learn more] links

Zero State page

  • Dashboard Tour: Not yet implemented. Documentation / or help will be newly created. Ideally, the dashboard tour is self-explaining from the UI point of view. A link to the Dashboard tour could be provided on the Deploy pages.
  • Deploying your App: Create documentation on the concepts of deploying applications to K8S pods; parts can be taken over from Managing Applications: Deploying continuously running applications of the K8S documentation.
  • Monitoring your App: By design, a link is to be provided. But this link is not necessary since the Zero State page is only shown when no application has been deployed yet.
  • Troubleshooting: By design, a link is to be provided. But this link is not necessary since the Zero State page is only shown when no application has been deployed yet.

Deploy from settings page

GUI element Text with [Learn more] link Proposed documentation
App name An 'app' label with this value will be added to the Replica Set and Service that get deployed [Learn more] link is missing on page. Link to the Labels description of K8S.
Container image Enter the URL of a public image on any registry, or a private image hosted on Docker Hub or Google Container Registry Link to the Images description of K8S.
Image pull secret The specified image requires a pull secret credential. You may choose an existing secret or create a new one. Will the Image pull secret field be shown if the user enters a private repo, or will there be a toggle to indicate whether the repo is private/public? Link to the Secrets description of K8S.
Upload image pull secret The new secret will be added to cluster-1 Link to the Secrets description of K8S.
Number of pods A Replica Set will be created to maintain the desired number of pods across your cluster. To be created: Short introduction explaining what a Replica Set is, plus link to the Replication controller description of K8S.
Port (optional) Ports are optional. If specified, a Service will be created mapping the Port (incoming) to a Target Port seen by the container. To be created: Short introduction to port usage in K8S, plus a link to the Services description of K8S.
Labels (optional) The specified labels will be applied to the created Replica Set, Service (if any) and Pods. Common labels include release, environment, tier, partition, and track. To be created: Short introduction describing that the first 2 labels are defined by the application name and specified version and may not be deleted or edited here. Plus a link to the Labels description of K8S.
Namespace A namespace lets you create multiple virtual clusters on a single physical cluster Link to the Namespaces description of K8S. The same link will be used in the Create a new namespace dialog.
Minimum CPU / memory required per container You can specify a minimum CPU and memory requirements for the container Link to the Limit Range description of K8S.
Run command By default, your containers run the selected image's default entrypoint command. You can use the command options to override the default. Link to the Containers with Kubernetes description of K8S.
Volumes (optional) - not yet implemented Volumes allow data to survive container restarts and enable data sharing among applications with a pod Link to the Volumes description of K8S.
Secrets (optional) - not yet implemented A secret holds sensitive information such as passwords, OAuth tokens, and ssh keys. Link to the Secrets description of K8S.

Upload page

GUI element Text with [Learn more] link Proposed documentation
YAML or JSON file Select a YAML or JSON file specifying the resources to deploy. Link to the kubectl create description of K8S.

Replication controller list page

Currently, no cards are implemented containing a [Learn more] link. By design, at least the following should be implemented:

GUI Element Text with [Learn more] link Proposed documentation
webapp2 One or more pods failed scheduling. Failed for reason PodExceedsFreeCPU and possibly others Link to the Troubleshooting description of K8S.
card variations To connect to this service internally, simply use DNS name webapp Link to the DNS Integration with Kubernetes description of K8S.
@gertipoppel
Copy link
Contributor Author

Forgot to mention: this issue relates to #145

@bryk
Copy link
Contributor

bryk commented Jan 21, 2016

This looks awesome proposal Gerti! Give me and others some time to review and think about it.

@bryk
Copy link
Contributor

bryk commented Jan 22, 2016

The [Learn more] links will reference existing K8S documentation topics as far as possible (see below for details), or, where the K8S documentation is not sufficient or needs to be extended, reference HTML pages that must be newly created.

The currently implemented tooltips can / should be extended and provide a bit more information, where applicable.

LGTM

@bryk
Copy link
Contributor

bryk commented Jan 22, 2016

If references to the existing K8S documentation are not sufficient, how can we provide newly created content?
Proposal: Write HTML pages and include references to K8S documentation in the new HTML pages. Is it OK to simply use the Kubernetes style sheet for the new HTML pages?

Alternative: Write markdown pages in a structure in analogy to the K8S project, and implement the generation of HTML pages in anology with the K8S documentation generation process also in the dashboard project.

I'd go for the alternative, i.e., write in markdown and generate HTML for this. The reason is that markdown is really good for writing pages of text, as opposed to HTML, which burdens you about tags/styles/etc. What do you think?

@bryk
Copy link
Contributor

bryk commented Jan 22, 2016

Links to the K8S documentation contain specific version information. I.e. if a specific topic of the K8S documentation shall be referenced, it is not possible to omit the version information. Currently, this is V1.1. If it is omitted in the link, the user is redirected to the K8S main documentation page.

Correct. I say that this is OKay. In 1.2 or 1.3 things may change, and we want to reference the world we know. We can do quick upgrade of all links with find&replace or storing in a common constant.

@bryk
Copy link
Contributor

bryk commented Jan 22, 2016

Monitoring your App: By design, a link is to be provided. But this link is not necessary since the Zero State page is only shown when no application has been deployed yet.

Troubleshooting: By design, a link is to be provided. But this link is not necessary since the Zero State page is only shown when no application has been deployed yet.

Correct. The designs here are a little bit too distant in the future :)

@bryk
Copy link
Contributor

bryk commented Jan 22, 2016

Will the Image pull secret field be shown if the user enters a private repo, or will there be a toggle to indicate whether the repo is private/public?

For now the input will be in "More options". We don't have an easy way to test whether a repo is private or not.

@bryk
Copy link
Contributor

bryk commented Jan 22, 2016

To be created: Short introduction explaining what a Replica Set is, plus link to the

What do you think about changing our wording from "Replica Set" to "Replication Controller". The name change was supposed to happen soon in K8s core, but it is not. So, to me, it is better to use what is officially supported. @cheld @floreks

@bryk
Copy link
Contributor

bryk commented Jan 22, 2016

Links you've provided LGTM. Let's resolve outstanding questions and implement it.

This is a really high quality writeup. Huge thanks!

@floreks
Copy link
Member

floreks commented Jan 25, 2016

What do you think about changing our wording from "Replica Set" to "Replication Controller". The name change was supposed to happen soon in K8s core, but it is not. So, to me, it is better to use what is officially supported.

I was thinking about that since the beginning of project. We should stick with k8s core naming convention.

@gertipoppel
Copy link
Contributor Author

I'd go for the alternative, i.e., write in markdown and generate HTML for this. The reason is that markdown is really good for writing pages of text, as opposed to HTML, which burdens you about tags/styles/etc. What do you think?

I agree that new doc should be written in markdown (also for consistency reasons with K8S documentation). Do you know the mechanism for generating HTML out of the markdowns? And can this just be taken over from the kubernetes project?

@bryk
Copy link
Contributor

bryk commented Jan 25, 2016

Do you know the mechanism for generating HTML out of the markdowns? And can this just be taken over from the kubernetes project?

K8s core has some custom code for handling markdown. We can potentially reuse it. See source: https://github.com/kubernetes/kubernetes/tree/4ca66d2aefa20c27b670b2fa890052daadc05294/cmd/mungedocs

@bryk
Copy link
Contributor

bryk commented Jan 25, 2016

What do you think about changing our wording from "Replica Set" to "Replication Controller". The name change was supposed to happen soon in K8s core, but it is not. So, to me, it is better to use what is officially supported.

I was thinking about that since the beginning of project. We should stick with k8s core naming convention.

Good.

@bryk
Copy link
Contributor

bryk commented Jan 25, 2016

@gertipoppel Me (or somebody from the team) can research standard markdown processors that are out there. I expect that there are lots of them.

@gertipoppel
Copy link
Contributor Author

Me (or somebody from the team) can research standard markdown processors that are out there. I expect that there are lots of them.

This would be great! Thank you!

@gertipoppel
Copy link
Contributor Author

@bryk I would like to rename replica set into replication controller. Should this be "rc" then, or "replicationcontroller" / ReplicationController? I vote for rc / RC.

@bryk
Copy link
Contributor

bryk commented Feb 1, 2016

Hmm... This is getting more complicated. Take a look at the issue: kubernetes/kubernetes#3024

Current status is that there are both, Replication Controller and Replica Sets. Ideally, I think that we should display both on our list page, because their difference is very slight.

@bryk
Copy link
Contributor

bryk commented Feb 1, 2016

However I do feel that we need to do the renaming. As for the name, I'd go for full names everywhere, i.e., replicationcontrolller, not rc. All code in the project uses long names. The reason is that we optimize for code reading, not writing :) rc maybe obvious at the time when you write code, but when a new team member comes to the project, it is not.

@gertipoppel
Copy link
Contributor Author

If I understand the discussion in kubernetes/kubernetes#3024 correctly, Replication Controller was renamed to ReplicaSet.

bgrant0607 changed the title from Rename ReplicationController to ReplicaSet to Create ReplicaSet on 12 Nov 2015

So, maybe we should postpone the renaming ;-)

Current status is that there are both, Replication Controller and Replica Sets. Ideally, I think that we should display both on our list page, because their difference is very slight.

I am not sure whether I understand the difference between a Replication Controller and ReplicaSet.

I agree to using long names throughout the project, just thought of the rc usage of kubectl.

@bryk
Copy link
Contributor

bryk commented Feb 1, 2016

By reading the bug I believe that this is no longer renaming. This is having two objects for some time and then deprecating one. This means that Replica Sets and Replication Controllers will be there for some amount of time and our UI shows Controllers, not Sets. Hence, I think we should rename. What do you?

@gertipoppel
Copy link
Contributor Author

OK. I understand. Then I will rename replica sets to replication controllers.

@bryk
Copy link
Contributor

bryk commented Feb 15, 2016

@gertipoppel Is this done?

@gertipoppel
Copy link
Contributor Author

@bryk This is almost done. What is still missing:

  • Dashboard Tour: I am currently working on the extension of the Dashboard documentation in the K8S project. (https://github.com/kubernetes/kubernetes/blob/master/docs/user-guide/ui.md).
  • A link to the Dashboard tour should be added to the Deploy pages.
  • Deploying your App: Create documentation on the concepts of deploying applications to K8S pods; parts can be taken over from Managing Applications: Deploying continuously running applications of the K8S documentation.
    Imho, this is no longer required once the Deploy pages contain a link to the Dashboard tour. The Dashboard tour itself can then reference the K8S concepts.
  • The Zero state page should only contain a link to the Dashboard tour. This is not yet implemented. The three other links (which are no links, currently) should be removed.

@bryk
Copy link
Contributor

bryk commented Feb 22, 2016

@gertipoppel

I agree with everything you said :) Are you working on this?

@gertipoppel
Copy link
Contributor Author

@bryk @cheld
I am working on the dashboard tour and will take care that the other issues will also be resolved.

@bryk
Copy link
Contributor

bryk commented Feb 23, 2016

Awesome, thank you @gertipoppel :)

@gertipoppel
Copy link
Contributor Author

I have update/extended the dashboard tour and just created a PR (kubernetes/kubernetes#22276)
What is still missing:

  • A link to the Dashboard tour should be added to the Deploy pages (http://kubernetes.io/v1.1/docs/user-guide/ui.html).
  • The Zero state page should only contain a link to the Dashboard tour. This is not yet implemented. The three other links (which are no links, currently) should be removed.

@maciaszczykm
Copy link
Member

@gertipoppel I think both mentioned issues are fixed now. Could you confirm?

@gertipoppel
Copy link
Contributor Author

@maciaszczykm Yes, this issue can be closed. Thank's a lot.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants