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

Create UI roadmap #8270

Closed
bgrant0607 opened this issue May 14, 2015 · 6 comments
Closed

Create UI roadmap #8270

bgrant0607 opened this issue May 14, 2015 · 6 comments
Labels
area/kubectl area/ui area/usability kind/documentation Categorizes issue or PR as related to documentation. priority/backlog Higher priority than priority/awaiting-more-evidence.

Comments

@bgrant0607
Copy link
Member

Going forward, what do we want out of the UI? We need a roadmap so that people know how to contribute.

This was discussed at the Kubernetes contributors meeting in December.

First of all, visualization/dashboard is more important than actuation. The CLI (kubectl) is expected to be the main tool for controlling the system and applications running on it. Table-friendly views should also be incorporated into kubectl, not just a GUI. I want to ensure that we maintain a common look and feel and functionality with kubectl for analogous table views and use cases -- the primary use cases and essential information are identical. That's not to say it shouldn't support actuation, but that creates additional issues, such as SSO auth.

With respect to visualization/dashboards, we need views that are customized to the most common use cases:

  1. Understanding the system architecture and/or application topology: diagram view that shows interconnection between objects
  2. Deployment status: what images/versions are deployed, what deployments are in progress, what pods deviate, health by deployment version, provenance info
  3. App debugging: for devs -- what’s failing most recently / most often, why, how often, logs, events
  4. System debugging: dashboard w/ system and node health, uptime, versions, config, status events, change history, surface logs (from builds, containers or container failures), what’s where (node-centric view: example visualization: http://azure.microsoft.com/blog/2014/08/28/hackathon-with-kubernetes-on-azure/)
  5. Resource usage analysis: how much resources (mem, cpu, disk) are being used (current/historical, individual/distribution), usage relative to quota or limits, why did my thing run out of resources, top (sort by decreasing usage)
  6. App dashboard / launchpad: status overview, launch links to app-domain, custom app dashboards, links to cadvisor and/or kubelet GUIs, links to elasticsearch and heapster (logging and monitoring dashboards), etc.

Some functionality is probably lacking in order to support all these views at the moment (e.g., stats collection).

Presentation guidelines:

  • timeseries graphs: single-column, all same time-scale, for easy correlation
  • text:
    • dense (information density)
      • multi-column tables
      • alternate colors of rows/columns rather than introduce whitespace
    • highlight high-value content
      • sort by “most important” information for the view (e.g., priority, scale, recency, eventful)
      • color to highlight important/abnormal details
      • don’t show fields in tables by default that are almost the default/boilerplate values
  • flexible grouping (e.g., tree view), filtering, sorting, searching, aggregating
    • by namespace
    • by labels
    • by reverse label lookup
    • by image
    • by phase

Come up with recommended semantic labels/annotation keys and meanings:

  • env (dev, test, stage, prod)
  • source/containing object/provenance
  • responsible party (name, email, etc)
  • links (urls to app-specific dashboards, GUIs, web UI, etc)
  • html (arbitrary html to inject link, description, status)
  • workload type (web frontend, database, etc.)

Other issues:

  • simplify user experience of dealing with multiple API objects (e.g., replication controller, template, pods)
  • summarization of large numbers of pods
  • event/status history
  • change history
  • latency
  • similar views in CLI
  • help
  • customizable user preferences
  • bookmarkable view URLs
  • carry filter/context across views
  • need to show information that’s most relevant to most people by default

Finally, there are others building UIs. We've discussed building the UI such that pieces can be reused with different chrome, etc.

cc @lavalamp @jackgr @smarterclayton

@bgrant0607 bgrant0607 added area/usability area/ui priority/awaiting-more-evidence Lowest priority. Possibly useful, but not yet enough support to actually get it done. sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. labels May 14, 2015
@yllierop
Copy link
Contributor

@bgrant0607 we've got a organization for the various UI components that is currently living at: https://github.com/kubernetes-ui in order to share things with the team at RedHat, etc.

@bgrant0607 bgrant0607 added kind/documentation Categorizes issue or PR as related to documentation. priority/backlog Higher priority than priority/awaiting-more-evidence. area/kubectl and removed priority/awaiting-more-evidence Lowest priority. Possibly useful, but not yet enough support to actually get it done. labels Jul 1, 2015
@bgrant0607
Copy link
Member Author

cc @mgannholm

@bgrant0607
Copy link
Member Author

cc @janetkuo

@bgrant0607
Copy link
Member Author

Link to applications: #6908

@bgrant0607 bgrant0607 added team/ux and removed sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. labels Aug 5, 2015
@bgrant0607
Copy link
Member Author

cc @bryk

@bgrant0607
Copy link
Member Author

Copied to kubernetes/dashboard#21

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/kubectl area/ui area/usability kind/documentation Categorizes issue or PR as related to documentation. priority/backlog Higher priority than priority/awaiting-more-evidence.
Projects
None yet
Development

No branches or pull requests

2 participants