Coder Social home page Coder Social logo

kubevirt / kubevirt.github.io Goto Github PK

View Code? Open in Web Editor NEW
28.0 12.0 109.0 103.95 MB

KubeVirt website repo, documentation at https://kubevirt.io/user-guide/

Home Page: https://kubevirt.io

License: MIT License

Ruby 5.31% HTML 44.58% Shell 4.69% JavaScript 11.75% SCSS 24.78% Makefile 6.83% Python 2.06%
hacktoberfest

kubevirt.github.io's Introduction

Contributing to KubeVirt.io

Build Status

The kubevirt.io website is a Jekyll driven site hosted by GitHub Pages.

Contributions to the KubeVirt website are very much welcomed! Please reach out with ideas for new content or issues with existing content!

Getting Started

Git semantics

A semi standard process is followed to move code from development to production.

The basic process is ...

Fork -> Clone -> Branch -> Commit -> Push -> Pull Request -> Approve -> Merge

Fork

Create a forked copy of the repository to your account by pressing the Fork button at the top of the repository page. This should be the only time a fork needs to be created as long as the fork is properly maintained by performing branch sync and rebase with upstream periodically.

Clone

To clone the forked repository locally, browse to your fork at https://www.github.com/*github_name*/kubevirt.github.io. Click the Code button. Select a clone method and copy the url to clipboard. Open a terminal window and ...

git clone *clipboard paste url*

Remotes

By default the local git repo will have a remote alias called origin that points to your fork in GitHub. KubeVirt repositories have many contributors so work needs to be done periodically to synchronize local and origin branches with upstream branches. To enable this work flow on your local clone, add a new remote to the repository. By convention, this remote is named upstream.

To add an additional remote perform the following command...

git remote add upstream http/ssh url

And then you should see something like...

$ git remote -v
origin	[email protected]:mazzystr/kubevirt.github.io.git (fetch)
origin	[email protected]:mazzystr/kubevirt.github.io.git (push)
upstream	[email protected]:kubevirt/kubevirt.github.io.git (fetch)
upstream	[email protected]:kubevirt/kubevirt.github.io.git (push)

To sync the main branch from the upstream repository, perform the following ...

git checkout main; git fetch upstream; git reset --hard upstream/main; git push origin main -f

Note main branch is purely cosmetic for this repo. Merges to main ARE NOT ACCEPTED.

All work must be branched from main branch. Perform the following to sync from upstream ...

git checkout main; git fetch upstream; git reset --hard upstream/main; git push origin main -f

Feature branch

Even though changes from a local main branch are accepted it is inadvisable, can cause confusion and possibly data loss. Please use feature branches branched from main by running the following ...

git checkout main; git fetch upstream; git reset --hard upstream/main; git push origin main -f; git branch feat_branch; git checkout feat_branch; git push --set-upstream origin feat_branch

Rebase

Periodically a feature branch will need to be rebased as the local and origin fall behind upstream. Perform the following to rebase ...

git checkout main; git fetch upstream; git reset --hard upstream/main; git push origin main -f; git checkout feat_branch; git rebase origin/main; git push -f

There is always a strong possibility for merge conflicts. Proceed with caution in resolving. Each conflict must be hand edited. Perform the following to resolve each conflict ...

# Modify and save the filename
git add filename; git rebase --continue

Work

Here is our guidelines for content contribution.

Each section of the site is broken out into their respective folders.

  • ./pages : website
  • ./blogs : blog posts
  • ./docs : documentation.
  • ./videos : videos

All site images are located under ./assets/images. Please do not edit these images.

Markdown for blog posts are located under ./posts. Please follow the existing filename scheme.

Images related to blog entries get placed under ./assets/images/BLOG_POST_TITLE. The BLOG_POST_TITLE should match the name of the markdown file created under /_posts.

If you are a UI/UX developer, the structure and layout of the website would greatly benefit from your attention. Feel free to browse website issues or contribute other ideas.

Test work

The Makefile at the base of this repository provides editors the ability to locally run the same tests CI uses to validate changes. This saves time over waiting for online CI resources to spin up just to find out a pull request has a problem that prevents merge.

  1. Build the test image locally
$ make build_img

NOTE If you use docker you may need to set CONTAINER_ENGINE and BUILD_ENGINE:

$ export CONTAINER_ENGINE=docker
$ export BUILD_ENGINE=docker

NOTE If you are in an SELinux enabled OS you need to set SELINUX_ENABLED:

$ export SELINUX_ENABLED=True
  1. Validate page rendering
make run

Open your web browser to http://0.0.0.0:4000

  1. Test all hyperlinks
make check_links
  1. Test spelling
make check_spelling

If you discover a flagged spelling error that you believe is not a mistake, feel free to add the offending word to the dictionary file located at GitHub repo kubevirt/project-infra/images/yaspeller/.yaspeller.json. Try to keep the dictionary file well ordered and employ regular expressions to handle common patterns.

  1. Lint Markdown
make check_lint

If you discover a markdown error that you believe should be ignored, you should look to add it to the markdownlint.yaml configuration file. If there is a file that needs to have linting skipped, it can be added to the .markdownlintignore configuration file.

Make sure all tests pass before committing!

Submitting your code

  1. Commit your code and sign your commits!
git commit -s -m "The commit message" file1 file 2 file3 ...

Signature verification on commits are required! No exceptions!

You will see the following in the transaction log

git log
commit hashbrowns (HEAD -> feat_branch, upstream/main, origin/main, main)
Author: KubeVirt contributer <[email protected]>
Date:   Mon Jan 01 00:00:00 2021 -0700

<your commit message>

Signed-off-by: <your configured git identity>
  1. Browse to https://www.github.com/*you*/kubevirt.github.io

  2. Often you will see a Compare & Pull Request button ... Click on that

  3. Ensure your base branch is main, your compare branch is feat_branch, and the file diff's are correct.

  4. Create a nice subject and body for the pull request. Be sure to tag related issues, people of interest, and click the "Create pull request" button.

Maintainers will automatically be notified a pull request has been created and will give further instruction on getting contribution merged.

Makefile Help

$ make help

Makefile for website jekyll application

Usage:
  make <target>

Env Variables:
  CONTAINER_ENGINE	Set container engine, [*podman*, docker]
  BUILD_ENGINE		Set build engine, [*podman*, buildah, docker]
  SELINUX_ENABLED	Enable SELinux on containers, [*False*, True]

Targets:
  help                	 Show help
  build_img              Build image localhost/kubevirt-kubevirt.github.io
  check_links         	 Check external, internal links and links/selectors to userguide on website content
  check_lint             Check markdown linting
  check_spelling      	 Check spelling on content
  run                 	 Run site. App available @ http://0.0.0.0:4000
  status              	 Container status
  stop                	 Stop site

Environment Variables

  • CONTAINER_ENGINE: Some of us use docker. Some of us use podman (default: podman).
  • BUILD_ENGINE: Some of us use docker. Some of us use podman (default: podman)
  • SELINUX_ENABLED: Some of us run SELinux enabled. Set to True to enable container mount labelling

Targets:

  • build_img: Use this target to build an image packed with Jekyll, casperjs, yaspeller and HTMLProofer.
  • check_links: HTMLProofer is used to check any links to external websites as well as any cross-page links. Casperjs is used to dissect user-guide urls containing markdown selectors and ensure they exist.
  • check_lint: uses markdownlint to check for markdown linting. Can be configured via the .markdownlint.yaml and .markdownlintignore configuration files.
  • check_spelling: yaspeller is used to check spelling. Feel free to update to the dictionary file as needed (kubevirt/project-infra/images/yaspeller/.yaspeller.json).
  • status: Basically ${BUILD_ENGINE} ps for an easy way to see what's running.
  • stop: Stop container and app

Getting Help

Developer

Privacy

kubevirt.github.io's People

Contributors

aburdenthehand avatar adamj avatar alosadagrande avatar berrange avatar codificat avatar cwilkers avatar davidvossel avatar dependabot[bot] avatar dhiller avatar eldan avatar fabiand avatar iranzo avatar jberkus avatar jparrill avatar karmab avatar maiqueb avatar markllama avatar matthewcarleton avatar mazzystr avatar mmazur avatar ptrnull avatar rmohr avatar rwsu avatar schseba avatar scollier avatar slintes avatar tripledes avatar tylerauerbeck avatar xsgordon avatar yuvalif 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

Watchers

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

kubevirt.github.io's Issues

Origin install instructions are outdated

/kind bug

There is content which is still copied from the docs manually: https://github.com/kubevirt/kubevirt.github.io/blob/master/pages/get_kubevirt.md.

It shows the wrong SCC instructions for installing latest kubevirt on an openshift cluster.

This page contains sensible instructions. We should either serve it from the user-guide or ensure that an automated process is in place. People will repeatedly have a bad experience when installing kubevirt.

See for instance https://groups.google.com/d/msgid/kubevirt-dev/CAGg6-xhbrKS1aUqh5zOgAdJst3%2BtPiWeR3u0uwOq9%3D7j05H5Jw%40mail.gmail.com?utm_medium=email&utm_source=footer of the latest visible issue.

workaround for missing vms in kernel of minishift image

minishift VM does not enable vms in kernel.

Add this line to the try-me where the other oc setup commands are and the demo will complete as expected:

kubectl create configmap -n kube-system kubevirt-config --from-literal debug.useEmulation=true

OpenShift lab might be out of date

Is this a BUG REPORT or FEATURE REQUEST?:

/kind bug

What happened:

There is an OpenShift lab (labeled "OCP lab") in https://kubevirt.io/labs/ocp that seems to be out of date

What you expected to happen:

The lab should be updated or removed as appropriate

Anything else we need to know?:

The lab appears to have been originally based on the kubevirt-tutorial. That tutorial has evolved, is now based on Kubernetes - maybe it's worth doing a joint review.

URL where the problem can be found ...
If the issue is with a lab, please provide information about your environment, platform, versions, ...

Minishift getting started needs policy for kubevirt-apiserver

Using KubeVirt 0.8.0 with Origin 3.10 instantiated by Minishift I was able to spawn a Cirros VM after enabling device plugins for /dev/tun and /dev/kvm. On trying to retrieve the console for the instance though I was receiving this error:

websocket: close 1006 (abnormal closure): unexpected EOF" in response to virtctl console

After debugging with @vladikr and @stu-gott it appears to be because I have the wrong OpenShift RBAC policies set. The Minishift getting started material inline at http://kubevirt.io/get_kubevirt/ lists these oc policy commands:

$ oc adm policy add-scc-to-user privileged system:serviceaccount:kube-system:kubevirt-privileged
$ oc adm policy add-scc-to-user privileged system:serviceaccount:kube-system:kubevirt-controller
$ oc adm policy add-scc-to-user privileged system:serviceaccount:kube-system:kubevirt-infra

It appears that we also need (and in fact this may supersede the kubevirt-infra line shown above):

$ oc adm policy add-scc-to-user privileged system:serviceaccount:kube-system:kubevirt-apiserver

[doc] kubevirt.io minikube demo refers to incorrect link for nested virt

The kubevirt.io demo for minikube has a section describing the configuration of nested virt.
http://kubevirt.io/get_kubevirt/ "Appendix: deploying Kube"

If not set it refers to this link:

https://docs.fedoraproject.org/quick-docs/en-US/using-nested-virtualization-in-kvm.html

This in turn indicates that the link has moved and should point to:

https://docs.fedoraproject.org/en-US/quick-docs/using-nested-virtualization-in-kvm/index.html

Ruby Sass EOL

From CI logs... seems that something should be updated:

Ruby Sass has reached end-of-life and should no longer be used.

"Get Kubevirt" page should have an index/be ordered

As a user, if you start reading the get_kubevirt site and copy & paste instructions, it is confusing to find 'KubeVirt on an existing Kubernetes cluster' after 'KubeVirt Quickstart'. Is the operator not enough?

Labs should be listed 'better' on the webpage

Is this a BUG REPORT or FEATURE REQUEST?:

Currently, when clicking on try on gcp, aws it goes to the 'labs page':

https://kubevirt.io/labs/kubernetes/lab1.html

From there you can click on others and see the available labs, it should be listed in the main menu (Blogs/LABS/Video/docs/community) to have better visibility

Uncomment only one, leave it on its own line:

/kind bug
/kind enhancement

What happened:

What you expected to happen:

Anything else we need to know?:

URL where the problem can be found ...
If the issue is with a lab, please provide information about your environment, platform, versions, ...

Sidebar in Labs not highlighting active page

The sidebar in the Labs section is not highlighting the active page, as it does in all other areas of KubeVirt.io. This should match all of the other sidebars found throughout the site.

screen shot 2018-09-14 at 8 18 33 am

Getting Started material does not work on Minikube 1.10 or Minishift 3.10 with KubeVirt >= 0.7.0

Due to kubevirt/kubevirt#1316 it appears that KubeVirt 0.7.0 and higher . Instead for recent demos I have had to peg the version to 0.6.4. Until this is fixed the documentation should refer to a combination that is known to work.

Following the fix to minikube/minishift arriving we would still need a note to indicate that a "known bad" combination exists with the resolution being to use a higher minishift version.

/cc @karmab @fabiand @simon3z

External links failling

Is this a BUG REPORT or FEATURE REQUEST?:

/kind bug

What happened:
CI Error

What you expected to happen:

Anything else we need to know?:

Checking 459 external links...
Ran on 121 files!


- ./_site/2018/Unit-Test-Howto.html
  *  External link https://github.com/kubevirt/kubevirt/blob/master/pkg/kubecli/generated_mock_kubevirt.go failed: 404 No error
- ./_site/labs/ocp/lab2.html
  *  External link https://github.com/scollier/kubevirt-tutorial/blob/master/administrator/requirements.sh failed: 404 No error
rake aborted!
HTML-Proofer found 2 failures!
/usr/local/bundle/gems/html-proofer-3.11.0/lib/html-proofer/runner.rb:172:in `print_failed_tests'
/usr/local/bundle/gems/html-proofer-3.11.0/lib/html-proofer/runner.rb:50:in `run'

Article title should be a link to open the article url

When accessing:

https://kubevirt.io/blogs/ -> titles are clickable

When clicking on communty, news, weekly updates, releases, uncathegorized or even 'year' posts:

https://kubevirt.io/blogs/news.html
https://kubevirt.io/blogs/updates.html
https://kubevirt.io/blogs/releases.html
https://kubevirt.io/blogs/uncategorized.html
https://kubevirt.io/blogs/2019/posts.html
https://kubevirt.io/blogs/2018/posts.html
https://kubevirt.io/blogs/2017/posts.html

Article titles are not clickable anymore only the 'read more' link works which is not as intuitive

Volume sources links are broken

Kubevirt Memory Overcommit typos

accoun ted

reserve d

It’s not too complex to get this working, all what is needed is to have KubeVirt version [REPLACE]X.Y.Z[REPLACE] installed,

fix faq and technology comparison

I merged in #10 and the files are there, but they need to be organized and presented on the website properly. The files were merged after the website was overhauled.

Not able to spin up a container for hosting a local website

While trying to spin up the container using the
sudo docker run -d --name kubevirtio -p 4000:4000 -v $(pwd):/srv/jekyll jekyll/jekyll jekyll serve --watch command on RHEL 7

OS Version

[root@localhost kubevirt.github.io]# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.5 (Maipo)

Im getting the error:

.
.
.
Fetching jekyll-paginate 1.1.0
Installing jekyll-paginate 1.1.0
Fetching jekyll-redirect-from 0.15.0
Installing jekyll-redirect-from 0.15.0
There was an error while trying to write to `/srv/jekyll/Gemfile.lock`. It is
likely that you need to grant write permissions for that path.

Docker output

[root@localhost kubevirt.github.io]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
596e322e7886        jekyll/jekyll       "/usr/jekyll/bin/ent…"   6 minutes ago       Exited (23) 4 minutes ago                       kubevirtio

EC2 Push-button Deploy fails due to overlapping routes

Following the push-button deploy instructions for EC2 I found the weave pod going into a crash back-off loop (which in turn prevents coredns and the kubevirt pods from coming up), digging into the logs I saw this:

$ kubectl logs weave-net-x588f -c weave -n kube-system
Network 172.30.0.0/16 overlaps with existing route 172.30.0.0/24 on host

172.30.0.0/16 is the route associated with my existing VPC, which I can change/replace, but this requirement wasn't mentioned in the instructions.

https://github.com/kubevirt/kubevirt.github.io/blob/master/pages/ec2.md

OWNERS doesn't seem to be properly structured

Is this a BUG REPORT or FEATURE REQUEST?:

Uncomment only one, leave it on its own line:

/kind bug

What happened:
Prow should be labeling based on file but currently it's not doing it.

What you expected to happen:
Prow to assign kind/blog or kind/website based on the files a PR modifies.

Anything else we need to know?:

URL where the problem can be found ...
If the issue is with a lab, please provide information about your environment, platform, versions, ...

GCP kubevirt-button bucket permissions

While attempting to use the demo for GCP on kubevirt.io I found that the kubvirt-button bucket on Google Cloud Storage isn't accessible and get the error message:

You need the storage.objects.list permission to list objects in this bucket. Ask a project or bucket owner to give you this permission and try again.

Add a redirect for get_kubevirt

After #202 was merged, get_kubevirt returns 404, as it's cached by search engines and users might access it directly we should add a redirect.

Icon missing from Labs sidebar

For some users, the icon in the Labs sidebar shows up as a broken image. This is most likely caused by a missing Font Family, when used in combination with the :before pseudo class.

screen shot 2018-09-14 at 8 29 41 am

kubevirt.io demo doesn't indicate need to use system:admin for oc commands

The kubevirt.io try-me for minikube/minishift has oc commands that require use of the system/admin user. There is no note to that effect in the text.

http://kubevirt.io/get_kubevirt/

Deploying KubeVirt on OpenShift Origin
On OpenShift Origin, the following SCCs need to be added prior kubevirt.yaml deployment:

$ oc adm policy add-scc-to-user privileged system:serviceaccount:kube-system:kubevirt-privileged
$ oc adm policy add-scc-to-user privileged system:serviceaccount:kube-system:kubevirt-controller
$ oc adm policy add-scc-to-user privileged system:serviceaccount:kube-system:kubevirt-apiserver

$ export VERSION=v0.8.0
$ oc apply -f https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/kubevirt.yaml

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.