# Generowanie materiałów źródłowych dla polecenia kubectl

LLMS index: [llms.txt](/llms.txt)

---

<!-- overview -->

Ta strona pokazuje, jak wygenerować materiały źródłowe polecenia `kubectl`.


<div class="alert alert-info" role="note"><h4 class="alert-heading">Informacja:</h4>Ten temat pokazuje, jak wygenerować materiały źródłowe dla
<a href="/docs/reference/generated/kubectl/kubectl-commands">poleceń kubectl</a> takich jak
<a href="/docs/reference/generated/kubectl/kubectl-commands#apply">kubectl apply</a> i
<a href="/docs/reference/generated/kubectl/kubectl-commands#taint">kubectl taint</a>.
Ten temat nie pokazuje, jak wygenerować stronę materiałów źródłowych opcji <a href="/docs/reference/generated/kubectl/kubectl-commands/">kubectl</a>.
Aby
uzyskać instrukcje dotyczące generowania strony materiałów źródłowych opcji
kubectl, zobacz <a href="/pl/docs/contribute/generate-ref-docs/kubernetes-components/">Generowanie stron materiałów źródłowych dla komponentów i narzędzi Kubernetesa</a>.</div>


## Zanim zaczniesz


	<h3 id="requirements">Wymagania:<a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"></a></h3>
<ul>
<li>
<p>Potrzebujesz maszyny z systemem operacyjnym Linux lub macOS. W systemie Windows
użyj <a href="https://learn.microsoft.com/en-us/windows/wsl/install">Windows Subsystem for Linux (WSL)</a>,
ponieważ narzędzia do budowania opierają się na <code>make</code> i skryptach Bash.</p>
</li>
<li>
<p>Musisz mieć zainstalowane następujące narzędzia:</p>
<ul>
<li><a href="https://git-scm.com/book/en/v2/Getting-Started-Installing-Git">Git</a> - Dokumentacja opisuje, jak zainstalować i rozpocząć pracę z systemem kontroli wersji <code>Git</code>.</li>
<li><a href="https://go.dev/dl/">Go</a>, dowolna aktualna wersja (Go automatycznie pobiera dokładnie taki zestaw narzędzi, jakiego potrzebuje generator)</li>
<li><a href="https://www.gnu.org/software/make/">make</a></li>
<li><a href="https://gcc.gnu.org/">gcc compiler/linker</a></li>
<li><a href="https://docs.docker.com/engine/installation/">Docker</a> (wymagany tylko do lokalnego podglądu strony za pomocą <code>make container-serve</code>)</li>
</ul>
</li>
<li>
<p>Musisz wiedzieć, jak utworzyć pull requesta do repozytorium na GitHubie.
Wymaga to utworzenia własnego forka repozytorium. Aby uzyskać więcej informacji,
zobacz <a href="/docs/contribute/new-content/open-a-pr/#fork-the-repo">Praca z lokalnej kopii</a>.</p>
</li>
</ul>


<!-- steps -->

## Skonfiguruj lokalne repozytoria {#set-up-the-local-repositories}

Utwórz lokalną przestrzeń roboczą i ustaw swoje `GOPATH`:

```shell
mkdir -p $HOME/<workspace>

export GOPATH=$HOME/<workspace>
```

Utwórz lokalną kopię następujących repozytoriów:

```shell
go get -u github.com/spf13/pflag
go get -u github.com/spf13/cobra
go get -u gopkg.in/yaml.v2
go get -u github.com/kubernetes-sigs/reference-docs
```

Jeśli nie masz jeszcze repozytorium kubernetes/website, pobierz je teraz:

```shell
git clone https://github.com/<your-username>/website $GOPATH/src/github.com/<your-username>/website
```

Zrób klon repozytorium kubernetes/kubernetes jako k8s.io/kubernetes:

```shell
git clone https://github.com/kubernetes/kubernetes $GOPATH/src/k8s.io/kubernetes
```

Usuń pakiet spf13 z `$GOPATH/src/k8s.io/kubernetes/vendor/github.com`:

```shell
rm -rf $GOPATH/src/k8s.io/kubernetes/vendor/github.com/spf13
```

Repozytorium kubernetes/kubernetes dostarcza kod źródłowy `kubectl` oraz `kustomize`.

* Określ katalog bazowy twojej kopii repozytorium
  [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes). Na przykład,
  jeśli postępowałeś zgodnie z poprzednim krokiem, aby pobrać
  repozytorium, twój katalog bazowy to `$GOPATH/src/k8s.io/kubernetes`.
  Kolejne kroki odwołują się do twojego katalogu bazowego jako `<k8s-base>`.

* Określ katalog bazowy klonu Twojego repozytorium
  [kubernetes/website](https://github.com/kubernetes/website). Na przykład, jeśli
  wykonałeś poprzedni krok, aby pobrać repozytorium, Twoim katalogiem bazowym
  jest `$GOPATH/src/github.com/<your-username>/website`.
  Kolejne kroki odnoszą się do Twojego katalogu bazowego jako `<web-base>`.

* Określ katalog główny dla Twojej kopii repozytorium
  [kubernetes-sigs/reference-docs](https://github.com/kubernetes-sigs/reference-docs). Na przykład,
  jeśli postępowałeś zgodnie z poprzednim krokiem, aby uzyskać repozytorium,
  Twoim katalogiem głównym będzie `$GOPATH/src/github.com/kubernetes-sigs/reference-docs`.
  Dalsze kroki odnoszą się do Twojego katalogu głównego jako `<rdocs-base>`.

W swoim lokalnym repozytorium k8s.io/kubernetes przejdź do interesującej Cię
gałęzi i upewnij się, że jest ona aktualna. Na przykład, jeśli chcesz wygenerować
dokumentację dla Kubernetesa 1.35.0, możesz użyć tych poleceń:

```shell
cd <k8s-base>
git checkout v1.35.0
git pull https://github.com/kubernetes/kubernetes 1.35.0
```

Jeśli nie musisz edytować kodu źródłowego `kubectl`, postępuj zgodnie z
instrukcjami dotyczącymi [Ustawiania zmiennych kompilacji](#set-build-variables).

## Edytowanie kodu źródłowego kubectl {#edit-the-kubectl-source-code}

Materiały źródłowe polecenia kubectl są automatycznie generowana z kodu źródłowego kubectl.
Jeśli chcesz zmienić materiały źródłowe, pierwszym krokiem jest zmiana
jednego lub więcej komentarzy w kodzie źródłowym kubectl. Wprowadź zmianę w swoim
lokalnym repozytorium kubernetes/kubernetes, a następnie zgłoś pull requesta do
gałęzi master na [github.com/kubernetes/kubernetes](https://github.com/kubernetes/kubernetes).

[PR 56673](https://github.com/kubernetes/kubernetes/pull/56673/files) jest
przykładem pull requesta, który poprawia literówkę w kodzie źródłowym kubectl.

Monitoruj swój pull request (PR) i odpowiadaj na komentarze recenzentów. Kontynuuj
monitorowanie swojego PR, aż zostanie scalony z docelową gałęzią w repozytorium kubernetes/kubernetes.

## Zrób cherry pick do gałęzi wydania {#cherry-pick-your-change-into-a-release-branch}

Twoja zmiana znajduje się teraz w głównej gałęzi, która jest używana do
rozwoju następnego wydania Kubernetesa. Jeśli chcesz, aby twoja
zmiana pojawiła się w wersji dokumentacji Kubernetesa, która została już
wydana, musisz zaproponować włączenie twojej zmiany do gałęzi wydania.

Na przykład, załóżmy, że gałąź master jest używana do rozwijania Kubernetes
1.36 i chcesz przenieść swoją zmianę do gałęzi
release-1.35. Aby uzyskać instrukcje, jak to zrobić, zobacz
[Proponowanie Cherry Pick](https://git.k8s.io/community/contributors/devel/sig-release/cherry-picks.md).

Monitoruj swój cherry pick pull request, aż zostanie scalone z gałęzią wydania.


<div class="alert alert-info" role="note"><h4 class="alert-heading">Informacja:</h4>Proponowanie cherry pick wymaga posiadania uprawnień do ustawiania etykiety oraz
kamienia milowego w swoim pull requeście. Jeśli nie posiadasz tych uprawnień,
będziesz musiał współpracować z kimś, kto może ustawić etykietę i kamień milowy za Ciebie.</div>


## Ustaw zmienne budowania {#set-build-variables}

Przejdź do `<rdocs-base>`. W swoim wierszu poleceń ustaw następujące zmienne środowiskowe.

* Ustaw `K8S_ROOT` na `<k8s-base>`.
* Ustaw `K8S_WEBROOT` na `<web-base>`.
* Ustaw `K8S_RELEASE` na wersję dokumentacji, którą chcesz zbudować. Na przykład,
  jeśli chcesz zbudować dokumentację dla Kubernetesa
  1.35, ustaw `K8S_RELEASE` na 1.35.

Na przykład:

```shell
export K8S_WEBROOT=$GOPATH/src/github.com/<your-username>/website
export K8S_ROOT=$GOPATH/src/k8s.io/kubernetes
export K8S_RELEASE=1.35
```

## Tworzenie katalogu wersjonowanego {#creating-a-versioned-directory}

Uruchomienie budowania (ang. build target) `createversiondirs` tworzy katalog z
wersjonowaniem i kopiuje pliki konfiguracyjne kubectl dotyczące materiałów źródłowych do tego
katalogu. Nazwa katalogu z wersjonowaniem jest zgodna z wzorcem `v<major>_<minor>`.

W katalogu `<rdocs-base>`, uruchom następujący cel budowania:

```shell
cd <rdocs-base>
make createversiondirs
```

## Sprawdź tag wydania w k8s.io/kubernetes {#check-out-a-release-tag-in-k8siokubernetes}

W swoim lokalnym repozytorium `<k8s-base>`, przejdź do gałęzi, która zawiera
wersję Kubernetesa, którą chcesz udokumentować. Na przykład, jeśli chcesz
wygenerować dokumentację dla Kubernetesa 1.35.0, przejdź do tagu `v1.35`.
Upewnij się, że Twoja lokalna gałąź jest aktualna.

```shell
cd <k8s-base>
git checkout v1.35.0
git pull https://github.com/kubernetes/kubernetes v1.35.0
```

## Uruchom kod generowania dokumentacji {#run-the-doc-generation-code}

W lokalnym katalogu `<rdocs-base>`, uruchom cel budowania (ang. build target) `copycli`. Komenda działa z uprawnieniami `root`:

```shell
cd <rdocs-base>
make copycli
```

Polecenie `copycli` czyści tymczasowy katalog kompilacji, generuje pliki poleceń kubectl i
kopiuje zbiorczą stronę HTML materiałów źródłowych poleceń kubectl oraz zasoby do `<web-base>`.

## Zlokalizuj wygenerowane pliki {#locate-the-generated-files}

Zweryfikuj, czy te dwa pliki zostały wygenerowane:

```shell
[ -e "<rdocs-base>/gen-kubectldocs/generators/build/index.html" ] && echo "index.html built" || echo "no index.html"
[ -e "<rdocs-base>/gen-kubectldocs/generators/build/navData.js" ] && echo "navData.js built" || echo "no navData.js"
```

## Zlokalizuj skopiowane pliki {#locate-the-copied-files}

Zweryfikuj, czy wszystkie wygenerowane pliki zostały skopiowane do Twojego `<web-base>`:

```shell
cd <web-base>
git status
```

Wynik powinien zawierać zmodyfikowane pliki:

```
static/docs/reference/generated/kubectl/kubectl-commands.html
static/docs/reference/generated/kubectl/navData.js
```

Wynik może również zawierać:

```
static/docs/reference/generated/kubectl/scroll.js
static/docs/reference/generated/kubectl/stylesheet.css
static/docs/reference/generated/kubectl/tabvisibility.js
static/docs/reference/generated/kubectl/node_modules/bootstrap/dist/css/bootstrap.min.css
static/docs/reference/generated/kubectl/node_modules/highlight.js/styles/default.css
static/docs/reference/generated/kubectl/node_modules/jquery.scrollto/jquery.scrollTo.min.js
static/docs/reference/generated/kubectl/node_modules/jquery/dist/jquery.min.js
static/docs/reference/generated/kubectl/node_modules/font-awesome/css/font-awesome.min.css
```

## Lokalne testowanie dokumentacji {#locally-test-the-documentation}

Zbuduj dokumentację Kubernetes w lokalnym `<web-base>`.

```shell
cd <web-base>
git submodule update --init --recursive --depth 1 # if not already done
make container-serve
```

Zobacz [podgląd lokalny](https://localhost:1313/docs/reference/generated/kubectl/kubectl-commands/).

## Dodaj i zatwierdź zmiany w kubernetes/website {#add-and-commit-changes-in-kuberneteswebsite}

Uruchom `git add` i `git commit`, aby zatwierdzić pliki.

## Utwórz pull requesta {#create-a-pull-request}

Utwórz pull requesta do repozytorium `kubernetes/website`.
Monitoruj swój pull request i odpowiadaj na komentarze z przeglądu.
Kontynuuj monitorowanie swojego pull requesta aż do momentu jego włączenia do głównej gałęzi kodu.

Kilka minut po włączeniu twojego pull requesta, zaktualizowane tematy
materiałów źródłowych będą widoczne w [opublikowanej dokumentacji](/docs/home).

## Co dalej?

* [Szybki start generowania materiałów źródłowych](/docs/contribute/generate-ref-docs/quickstart/)
* [Generowanie materiałów źródłowych dla komponentów i narzędzi Kubernetesa](/docs/contribute/generate-ref-docs/kubernetes-components/)
* [Generowanie materiałów źródłowych dla Kubernetes API](/docs/contribute/generate-ref-docs/kubernetes-api/)
