Go to file
Sayak Mukhopadhyay ed1cc81a39
fix: npm ci inside containers installs hugo which needs gcompat to work
2025-01-13 22:55:38 +05:30
.github Fix permissions for `Update schedule.yaml` job 2024-08-19 09:08:11 +02:00
.well-known Add a security.txt (#44487) 2024-02-19 11:32:09 -08:00
api-ref-assets Update assets for building API reference 2024-09-02 10:04:49 +08:00
api-ref-generator@096a94d6e7 Update assets for building API reference 2024-09-02 10:04:49 +08:00
archetypes Proposed hugo archetype to fix issue #27843 2021-06-13 15:54:34 -04:00
assets Merge pull request #48958 from apoorvapendse/main 2025-01-13 02:38:32 -08:00
content Update diagram guide for Docsy 0.6 2025-01-13 22:52:25 +05:30
data Merge pull request #48958 from apoorvapendse/main 2025-01-13 02:38:32 -08:00
i18n Merge dev-1.23-bn.1 into main 2024-02-01 19:55:34 +00:00
layouts Merge pull request #48958 from apoorvapendse/main 2025-01-13 02:38:32 -08:00
scripts Tweak script for updating release info page 2024-11-25 18:25:56 +00:00
static Merge pull request #48958 from apoorvapendse/main 2025-01-13 02:38:32 -08:00
update-imported-docs update update-imported-docs/update-imported-docs.py 2022-10-25 17:00:44 +08:00
.dockerignore Container build with NPM deps and fixed build cmd 2024-11-18 09:27:32 -05:00
.editorconfig editorconfig: preserve final newline in YAML 2023-04-26 16:54:25 -04:00
.gitignore fix: don't ignore package-lock.json 2025-01-13 22:53:14 +05:30
.gitmodules Upgrade to Docsy 0.5.1 via NPM module 2024-12-09 09:35:30 -05:00
.htmltest.yml Add a link checker 2020-05-26 16:06:46 -07:00
CONTRIBUTING.md Update CONTRIBUTING.md 2022-08-29 21:57:17 +05:30
Dockerfile fix: npm ci inside containers installs hugo which needs gcompat to work 2025-01-13 22:55:38 +05:30
LICENSE Update to latest CC-BY 4.x license text 2021-10-05 17:11:24 +01:00
Makefile Include NPM dependences in image hash 2025-01-13 22:41:02 +05:30
OWNERS Update OWNERS 2024-04-05 00:46:07 +01:00
OWNERS_ALIASES remove 1.32 docs lead from en owners after 1.32 release and add 1.33 docs lead to en owners for 1.33 release cycle 2025-01-07 09:28:49 -08:00
README.md Upgrade to Docsy 0.5.1 via NPM module 2024-12-09 09:35:30 -05:00
SECURITY.md Removed reference for broken link 2021-08-13 12:54:47 +05:30
SECURITY_CONTACTS Adds Kat Cosgrove as SIG Docs tech lead 2024-05-13 09:32:48 +01:00
cloudbuild.yaml Bump CPU and machine type 2022-12-06 07:05:17 -05:00
code-of-conduct.md Add the code of conduct (#11919) 2019-02-04 15:31:57 -08:00
go.mod Update test cases for examples 2024-12-22 09:45:10 +08:00
go.sum Update test cases for examples 2024-12-22 09:45:10 +08:00
hugo.toml Added disable line check 2025-01-10 14:34:26 +05:30
labels.yaml
linkcheck-config.toml Add a link checker 2020-05-26 16:06:46 -07:00
material-design-colors.itermcolors Merge main into dev-1.31 to keep in sync 2024-05-22 16:16:00 +01:00
netlify.toml Update branch based context to production 2024-12-18 16:52:58 +00:00
package-lock.json Bump Docsy to 0.6 2025-01-13 22:52:22 +05:30
package.json Bump Docsy to 0.6 2025-01-13 22:52:22 +05:30
postcss.config.js updating packaging 2020-07-03 18:04:53 -04:00

README.md

The Kubernetes documentation

Netlify Status GitHub release

This repository contains the assets required to build the Kubernetes website and documentation. We're glad that you want to contribute!

Using this repository

You can run the website locally using Hugo (Extended version), or you can run it in a container runtime. We strongly recommend using the container runtime, as it gives deployment consistency with the live website.

Prerequisites

To use this repository, you need the following installed locally:

[!NOTE] Make sure to install the Hugo extended version specified by the HUGO_VERSION environment variable in the netlify.toml file.

Before you start, install the dependencies. Clone the repository and navigate to the directory:

git clone https://github.com/kubernetes/website.git
cd website

The Kubernetes website uses git submodules. Even if you plan to run the website in a container, we strongly recommend pulling in the submodule and other development dependencies by running the following:

Windows

# fetch submodule dependencies
git submodule update --init --recursive --depth 1

Linux / other Unix

# fetch submodule dependencies
make module-init

Running the website using a container

To build the site in a container, run the following:

# You can set $CONTAINER_ENGINE to the name of any Docker-like container tool
make container-serve

If you see errors, it probably means that the hugo container did not have enough computing resources available. To solve it, increase the amount of allowed CPU and memory usage for Docker on your machine (MacOS and Windows).

Open up your browser to http://localhost:1313 to view the website. As you make changes to the source files, Hugo updates the website and forces a browser refresh.

Running the website locally using Hugo

To install dependencies, deploy and test the site locally, run:

  • For macOS and Linux

    npm ci
    make serve
    
  • For Windows (PowerShell)

    npm ci
    hugo.exe server --buildFuture --environment development
    

This will start the local Hugo server on port 1313. Open up your browser to http://localhost:1313 to view the website. As you make changes to the source files, Hugo updates the website and forces a browser refresh.

Building the API reference pages

The API reference pages located in content/en/docs/reference/kubernetes-api are built from the Swagger specification, also known as OpenAPI specification, using https://github.com/kubernetes-sigs/reference-docs/tree/master/gen-resourcesdocs.

To update the reference pages for a new Kubernetes release follow these steps:

  1. Pull in the api-ref-generator submodule:

    git submodule update --init --recursive --depth 1
    
  2. Update the Swagger specification:

    curl 'https://raw.githubusercontent.com/kubernetes/kubernetes/master/api/openapi-spec/swagger.json' > api-ref-assets/api/swagger.json
    
  3. In api-ref-assets/config/, adapt the files toc.yaml and fields.yaml to reflect the changes of the new release.

  4. Next, build the pages:

    make api-reference
    

    You can test the results locally by building and serving the site from a container:

    make container-serve
    

    In a web browser, go to http://localhost:1313/docs/reference/kubernetes-api/ to view the API reference.

  5. When all changes of the new contract are reflected into the configuration files toc.yaml and fields.yaml, create a Pull Request with the newly generated API reference pages.

Troubleshooting

error: failed to transform resource: TOCSS: failed to transform "scss/main.scss" (text/x-scss): this feature is not available in your current Hugo version

Hugo is shipped in two set of binaries for technical reasons. The current website runs based on the Hugo Extended version only. In the release page look for archives with extended in the name. To confirm, run hugo version and look for the word extended.

Troubleshooting macOS for too many open files

If you run make serve on macOS and receive the following error:

ERROR 2020/08/01 19:09:18 Error: listen tcp 127.0.0.1:1313: socket: too many open files
make: *** [serve] Error 1

Try checking the current limit for open files:

launchctl limit maxfiles

Then run the following commands (adapted from https://gist.github.com/tombigel/d503800a282fcadbee14b537735d202c):

#!/bin/sh

# These are the original gist links, linking to my gists now.
# curl -O https://gist.githubusercontent.com/a2ikm/761c2ab02b7b3935679e55af5d81786a/raw/ab644cb92f216c019a2f032bbf25e258b01d87f9/limit.maxfiles.plist
# curl -O https://gist.githubusercontent.com/a2ikm/761c2ab02b7b3935679e55af5d81786a/raw/ab644cb92f216c019a2f032bbf25e258b01d87f9/limit.maxproc.plist

curl -O https://gist.githubusercontent.com/tombigel/d503800a282fcadbee14b537735d202c/raw/ed73cacf82906fdde59976a0c8248cce8b44f906/limit.maxfiles.plist
curl -O https://gist.githubusercontent.com/tombigel/d503800a282fcadbee14b537735d202c/raw/ed73cacf82906fdde59976a0c8248cce8b44f906/limit.maxproc.plist

sudo mv limit.maxfiles.plist /Library/LaunchDaemons
sudo mv limit.maxproc.plist /Library/LaunchDaemons

sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
sudo chown root:wheel /Library/LaunchDaemons/limit.maxproc.plist

sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist

This works for Catalina as well as Mojave macOS.

Get involved with SIG Docs

Learn more about SIG Docs Kubernetes community and meetings on the community page.

You can also reach the maintainers of this project at:

Contributing to the docs

You can click the Fork button in the upper-right area of the screen to create a copy of this repository in your GitHub account. This copy is called a fork. Make any changes you want in your fork, and when you are ready to send those changes to us, go to your fork and create a new pull request to let us know about it.

Once your pull request is created, a Kubernetes reviewer will take responsibility for providing clear, actionable feedback. As the owner of the pull request, it is your responsibility to modify your pull request to address the feedback that has been provided to you by the Kubernetes reviewer.

Also, note that you may end up having more than one Kubernetes reviewer provide you feedback or you may end up getting feedback from a Kubernetes reviewer that is different than the one initially assigned to provide you feedback.

Furthermore, in some cases, one of your reviewers might ask for a technical review from a Kubernetes tech reviewer when needed. Reviewers will do their best to provide feedback in a timely fashion but response time can vary based on circumstances.

For more information about contributing to the Kubernetes documentation, see:

New contributor ambassadors

If you need help at any point when contributing, the New Contributor Ambassadors are a good point of contact. These are SIG Docs approvers whose responsibilities include mentoring new contributors and helping them through their first few pull requests. The best place to contact the New Contributors Ambassadors would be on the Kubernetes Slack. Current New Contributors Ambassadors for SIG Docs:

Name Slack GitHub
Sreeram Venkitesh @sreeram.venkitesh @sreeram-venkitesh

Localization READMEs

Language Language
Bengali Korean
Chinese Polish
French Portuguese
German Russian
Hindi Spanish
Indonesian Ukrainian
Italian Vietnamese
Japanese

Code of conduct

Participation in the Kubernetes community is governed by the CNCF Code of Conduct.

Thank you

Kubernetes thrives on community participation, and we appreciate your contributions to our website and our documentation!