Giter VIP home page Giter VIP logo

website's Introduction

Kubeflow Website

Netlify Status

Welcome to the GitHub repository for Kubeflow's public website!

The docs website is hosted at https://www.kubeflow.org.

We use Hugo with the google/docsy theme for styling and site structure, and Netlify to manage the deployment of the site.

Quickstart

Here's a quick guide to updating the docs:

  1. Fork the kubeflow/website repository on GitHub.

  2. Make your changes and send a pull request (PR).

  3. If you're not yet ready for a review, add "WIP" to the PR name to indicate it's a work in progress. Alternatively, you use the /hold prow command in a comment to mark the PR as not ready for merge.

  4. Wait for the automated PR workflow to do some checks. When it's ready, you should see a comment like this: deploy/netlify — Deploy preview ready!

  5. Click Details to the right of "Deploy preview ready" to see a preview of your updates.

  6. Continue updating your doc and pushing your changes until you're happy with the content.

  7. When you're ready for a review, add a comment to the PR, remove any holds or "WIP" markers, and assign a reviewer/approver. See the Kubeflow contributor guide.

If you need more help with the GitHub workflow, follow this guide to a standard GitHub workflow.

Local development

This section will show you how to develop the website locally, by running a local Hugo server.

Install Hugo

To install Hugo, follow the instructions for your system type.

NOTE: we recommend that you use Hugo version 0.124.1, as this is currently the version we deploy to Netlify.

For example, using homebrew to install hugo on macOS or linux:

# WARNING: using `brew install hugo` will install the latest version of hugo
#          which may not be compatible with the website

# TIP: to install hugo run the following commands
HOMEBREW_COMMIT="9d025105a8be086b2eeb3b1b2697974f848dbaac" # 0.124.1
curl -fL -o "hugo.rb" "https://raw.githubusercontent.com/Homebrew/homebrew-core/${HOMEBREW_COMMIT}/Formula/h/hugo.rb"
brew install ./hugo.rb
brew pin hugo

Install Node Packages

If you plan to make changes to the site styling, you need to install some node libraries as well. (See the Docsy setup guide for more information)

You can install the same versions we use in Netlify (defined in package.json) with the following command:

npm install -D

Run local hugo server

Follow the usual GitHub workflow of forking the repository on GitHub and then cloning your fork to your local machine.

  1. Fork the kubeflow/website repository in the GitHub UI.

  2. Clone your fork locally:

    git clone [email protected]:<your-github-username>/website.git
    cd website/
  3. Initialize the Docsy submodule:

    git submodule update --init --recursive
  4. Install Docsy dependencies:

    # NOTE: ensure you have node 18 installed
    (cd themes/docsy/ && npm install)
  5. Start your local Hugo server:

    hugo server -D
  6. You can access your website at http://localhost:1313/

Useful docs

Menu structure

The site theme has one Hugo menu (main), which defines the top navigation bar. You can find and adjust the definition of the menu in the site configuration file.

The left-hand navigation panel is defined by the directory structure under the docs directory.

A weight property in the front matter of each page determines the position of the page relative to the others in the same directory. The lower the weight, the earlier the page appears in the section.

Here is an example _index.md file:

+++
title = "Getting Started with Kubeflow"
description = "Overview"
weight = 1
+++

Docsy Theme

We use the Docsy theme for the website. The theme files are managed with a git submodule in the themes/docsy directory.

Do not change these files, they are not actually inside this repo, but are part of the google/docsy repo.

To update referenced docsy commit, run the following command at the root of the repo:

# for example, to update docsy to v0.6.0
# WARNING: updating the docsy version will require you to update our overrides
#          check under: `layouts/partials` and `assets/scss`
git -C themes/docsy fetch --tags
git -C themes/docsy checkout tags/v0.6.0

Documentation style guide

For guidance on writing effective documentation, see the style guide for the Kubeflow docs.

Styling your content

The theme holds its styles in the assets/scss directory.

Do not change these files, they are not actually inside this repo, but are part of the google/docsy repo.

You can override the default styles and add new ones:

  • In general, put your files in the project directory structure under website rather than in the theme directory. Use the same file name as the theme does, and put the file in the same relative position. Hugo looks first at the file in the main project directories, if present, then at the files under the theme directory. For example, the Kubeflow website's layouts/partials/navbar.html overrides the theme's layouts/partials/navbar.html

  • You can update the Kubeflow website's project variables in the _variables_project.scss file. Values in that file override the Docsy variables. You can also use _variables_project.scss to specify your own values for any of the default Bootstrap 4 variables.

  • Custom styles _styles_project file

Styling of images:

The site's front page:

Using Hugo shortcodes

Sometimes it's useful to define a snippet of information in one place and reuse it wherever we need it. For example, we want to be able to refer to the minimum version of various frameworks/libraries throughout the docs, without causing a maintenance nightmare.

For this purpose, we use Hugo's "shortcodes". Shortcodes are similar to Django variables. You define a shortcode in a file, then use a specific markup to invoke the shortcode in the docs. That markup is replaced by the content of the shortcode file when the page is built.

To create a shortcode:

  1. Add an HTML file in the /website/layouts/shortcodes/ directory. The file name must be short and meaningful, as it determines the shortcode you and others use in the docs.

  2. For the file content, add the text and HTML markup that should replace the shortcode markup when the web page is built.

To use a shortcode in a document, wrap the name of the shortcode in braces and percent signs like this:

{{% shortcode-name %}}

The shortcode name is the file name minus the .html file extension.

Example: The following shortcode defines the minimum required version of Kubernetes:

  • File name of the shortcode:

    kubernetes-min-version.html
    
  • Content of the shortcode:

    1.8
    
  • Usage in a document:

    You need Kubernetes version {{% kubernetes-min-version %}} or later.
    

Useful Hugo docs:

Versioning of the docs

For each stable release, we create a new branch for the relevant documentation. For example, the documentation for the v0.2 stable release is maintained in the v0.2-branch. Each branch has a corresponding Netlify website that automatically syncs each merged PR.

The versioned sites follow this convention:

  • www.kubeflow.org always points to the current master branch
  • master.kubeflow.org always points to GitHub head
  • vXXX-YYY.kubeflow.org points to the release at vXXX.YYY-branch

We also hook up each version to the dropdown on the website menu bar. For information on how to update the website to a new version, see the Kubeflow release guide.

Whenever any documents reference any source code, you should use the version shortcode in the links, like so:

https://github.com/kubeflow/kubeflow/blob/{{< params "githubbranch" >}}/scripts/gke/deploy.sh

This ensures that all the links in a versioned webpage point to the correct branch.

website's People

Contributors

8bitmp3 avatar abhi-g avatar andreyvelich avatar animeshsingh avatar arhell avatar aronchick avatar bobgy avatar chensun avatar connor-mccarthy avatar cspavlou avatar gkcalat avatar ironpan avatar janeman98 avatar jeffwan avatar jinchihe avatar jlewi avatar joeliedtke avatar kbhawkey avatar lluunn avatar richardsliu avatar rui-vas avatar sarahmaddox avatar shannonbradshaw avatar terrytangyuan avatar texasmichelle avatar thesuperzapper avatar tomcli avatar ukclivecox avatar yhwang avatar zijianjoy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

website's Issues

Define and update the top nav elements on the landing page.

Need to identify the top level navigational items and update the page accordingly. Here is a potential suggestion for the list items:

  • Getting Started
  • Deployment
  • Examples
  • Community
  • News/Blog
  • FAQ/Getting Help
    Possibly use a document to define the sub-entries for each of those.

Split user guide into a section guides

Right now we have an uber user_guide with different sections for TFJob, Seldon, Jupyter, etc....

This won't scale.

I think we should create a new section either "Guides" that would be at the same level as the About and Getting Started section. We could then have individual pages for things like

  • TFJob
  • PyTorch
  • Seldon
  • JupyterHub

Kubernetes has a section called "Tasks" but @sarahmaddox (Technical Writer who will be contributing to Kubeflow) suggested Guides might be better. Lets go with her recommendation.

@sarahmaddox will be evaluate overall layout of the docs at some point. However, I think splitting up the user guide will significantly improve user's ability to find relevant information. So I'd prefer not to wait on that.

Clarify the section titles in the left-hand nav

I'm finding the left-hand navigation panel a little confusing:

  • The top-level section title is “Section Nav”. That title didn't help me understand what the section contains, which is a list of the docs available.
    How about this as a title for the top section: Docs

  • The second section title is “Contents”. I thought it meant the contents of the doc set, but the section actually lists the headings on the page.
    How about this as a title for the top section: On this page
    An alternative suggestion: Page contents

Add mpi-job docs to website

The mpi-job was added in 0.2. We should add docs to the website to call attention to it.

This can be simple and very similar to the existing README in the ksonnet registry.

#76
Is a good example.

Support for Chinese translated site

With a large amount of interest in Kubeflow coming from China, we should figure out how to support a Chinese translated site. Can this be automated translation?

kubeflow.org SEO needs some love

Part of the confusion with new users is that outdated material is showing up first in searches. We need to pump up the SEO to make sure the current getting started/user guide is what they see first.

/assign @abhi-g
/assign @ewilderj

screen shot 2018-07-20 at 1 32 11 pm

Diagram suggestion

This line (laptop <-> ML rig <-> training cluster <-> production cluster) in "The Kubeflow Mission" probably should be converted into a diagram with some pop to show the path through deployment envs.

/cc @ewilderj
/cc @abhi-g

Blog Post: Announcing 0.2

We should have a blog post on kubeflow.org announcing the 0.2 release. This would be a great way to kickoff the blog.

Document how to switch between TFJob's v1alpha1 and v1alpha2

We should document how to switch the version of the TFJob CRD deployed in a cluster.

The basic commands would be something like the following

ks param set kubeflow-core tfJobVersion v1alpha2
kubectl -n kubeflow delete deploy tf-job-operator
kubectl delete crd tfjobs.kubeflow.org
ks apply ${ENV} -c kubeflow-core

We need to delete the existing CRD because we can't deploy two versions simultaneously.

Add an event page on Kubeflow website

This is based on email by @ewilderj on kubeflow-discuss@

FYI here are the events we know about at Google where we'll be representing Kubeflow. Please feel free to chime in with others where you know you'll be speaking on KF.

Container Day (June 26)
OSCON TensorFlow Day  - July 17th
    Barbara Fusinska will be giving a Kubeflow talk
Google Next (July)
SciPy (July)
JupyterCon - Mid August 21-25  (Chris Cho, Fei Xue)
O’Reilly Strata NYC - September 11-13
    Workshop
    40-min talk
O’Reilly AI conference London - October 8-11
    TF Workshop 
Kafka Summit (October 16-17)
Kubecon Shanghai (November 14-15)
Kubecon Seattle (December 11-13)

I guess an events pager would make a great addition to the Kubeflow web site—good opportunity for somebody to submit their first PR to https://github.com/kubeflow/website if they want, then we can keep it up to date.

Idenitfy topics for Blog posts

Create a list of topics from 0.1 release (such as features from the release) that we'd want to create blog posts for. Note that we'd be creating separate issues for writing out each of those blog posts, and the determining the release schedule.

Create the GCP/GKE deployment walkthrough document.

  • Move the instructions from Kubeflow repo.
  • Update if needed to leverage Deployment Manager based installation.
  • Incorporate bootstrapper based deployment instructions.
  • Cover the case when deploying Kubeflow on an existing GKE cluster.

Add a TFX page in Guides->Components

We should start a page in Guides->Components to discuss TFX integration in Kubeflow.

Some things to include in the page.

  1. We should point out that TF Serving is part of TFX and link to the relevant page
  2. TF.transform and TFMA are two other TFX components that are currently usable with Kubeflow (e.g. via Jupyter) we should point that out and provide links to the relevant TFX docs to get more info.

Document how to transition from bootstrapper to running the examples

We need to document how users transition from deploying Kubeflow to running the samples

I think we could directly point users at
https://github.com/kubeflow/examples/tree/master/github_issue_summarization

Provided we made a couple updates to the latter

  • We should link to the official docs for setting up Kubeflow on kubeflow.org rather than repeating them in the example
  • We should probably emphasize that users will need to have kubectl & ksonnet instead on their local machines

Update docs for 0.2.1

We should update the docs for 0.2.1 to reflect the new deploy scripts.

All the different starting guides should reference the new deploy.sh scripts

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.