Skip to content

Commit 6446fac

Browse files
jgao1025mlavacca
andauthored
issue-3260: Clarify a few points on Development Documentation. (#3261)
* init change * Update site-src/contributing/devguide.md Co-authored-by: Mattia Lavacca <[email protected]> * change based on review. * fix typo --------- Co-authored-by: Mattia Lavacca <[email protected]>
1 parent e4cb6d1 commit 6446fac

File tree

1 file changed

+44
-21
lines changed

1 file changed

+44
-21
lines changed

site-src/contributing/devguide.md

Lines changed: 44 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Dev Guide
1+
# Developer Guide
22

3-
## Project management
3+
## Project Management
44

55
We are using the GitHub issues and project dashboard to manage the list of TODOs
66
for this project:
@@ -36,14 +36,13 @@ command in PR and issue comments][issue-cmds]. For example,
3636
Before you start developing with Gateway API, we'd recommend having the
3737
following prerequisites installed:
3838

39-
* [Go](https://golang.org/doc/install)
40-
* [Kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl)
41-
* [Kind](https://kubernetes.io/docs/tasks/tools/#kind)
39+
* [Kind](https://kubernetes.io/docs/tasks/tools/#kind): This is a standalone local Kubernetes cluster. At least one container runtime is required. We recommend installing [Docker](https://docs.docker.com/engine/install/). While you can opt for alternatives like [Podman](https://podman.io/docs/installation), please be aware that doing so is at your own risk.
40+
* [Kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl): This is the Kubernetes command-line tool.
41+
* [Go](https://golang.org/doc/install): It is the main programming language in this project. Please check this [file](https://github.com/kubernetes-sigs/gateway-api/blob/main/go.mod#L3) to find out the least `Go` version otherwise you might encounter compilation errors.
42+
* [Digest::SHA](https://metacpan.org/pod/Digest::SHA): It is a required dependency. You can obtain it by installing the `perl-Digest-SHA` package.
4243

43-
Note that Kind and many of our build tasks also have a dependency on Docker or
44-
Podman.
4544

46-
### Building, testing and deploying
45+
## Development: Building, Deploying, Testing, and Verifying
4746

4847
Clone the repo:
4948

@@ -54,10 +53,11 @@ git clone https://github.com/kubernetes-sigs/gateway-api
5453
cd gateway-api
5554
```
5655

57-
This project works with Go modules; you can chose to setup your environment
56+
This project works with Go modules; you can choose to setup your environment
5857
outside $GOPATH as well.
5958

60-
### Building the code
59+
60+
### Build the Code
6161

6262
The project uses `make` to drive the build. `make` will run code generators, and
6363
run static analysis against the code and generate Kubernetes CRDs. You can kick
@@ -67,7 +67,8 @@ off an overall build from the top-level makefile:
6767
make generate
6868
```
6969

70-
### Adding Experimental Fields
70+
71+
#### Add Experimental Fields
7172

7273
All additions to the API must start in the Experimental release channel.
7374
Experimental fields must be marked with the `<gateway:experimental>` annotation
@@ -79,17 +80,24 @@ removed from the go struct, with a tombstone comment
7980
([example](https://github.com/kubernetes/kubernetes/blob/707b8b6efd1691b84095c9f995f2c259244e276c/staging/src/k8s.io/api/core/v1/types.go#L4444-L4445))
8081
ensuring the field name will not be reused.
8182

82-
### Submitting a Pull Request
83+
### Deploy the Code
8384

84-
Gateway API follows a similar pull request process as
85-
[Kubernetes](https://github.com/kubernetes/community/blob/master/contributors/guide/pull-requests.md).
86-
Merging a pull request requires the following steps to be completed before the
87-
pull request will be merged automatically.
85+
Use the following command to deploy CRDs to the pre-existing `Kind` cluster.
8886

89-
- [Sign the CLA](https://git.k8s.io/community/CLA.md) (prerequisite)
90-
- [Open a pull request](https://help.github.com/articles/about-pull-requests/)
91-
- Pass [verification](#verify) tests
92-
- Get all necessary approvals from reviewers and code owners
87+
```shell
88+
make crd
89+
```
90+
91+
Use the following command to check if the CRDs have been deployed.
92+
93+
```shell
94+
kubectl get crds
95+
```
96+
97+
### Test Manually
98+
99+
Install a [gateway API implementation](https://gateway-api.sigs.k8s.io/implementations/) and test out the change. Take a look at some
100+
examples [here](https://gateway-api.sigs.k8s.io/guides/).
93101

94102
### Verify
95103

@@ -103,6 +111,21 @@ make verify
103111

104112
[prow-setup]: https://github.com/kubernetes/test-infra/tree/master/config/jobs/kubernetes-sigs/gateway-api
105113

114+
115+
## Post-Development: Pull Request, Documentation, and more Tests
116+
### Submit a Pull Request
117+
118+
Gateway API follows a similar pull request process as
119+
[Kubernetes](https://github.com/kubernetes/community/blob/master/contributors/guide/pull-requests.md).
120+
Merging a pull request requires the following steps to be completed before the
121+
pull request will be merged automatically.
122+
123+
- [Sign the CLA](https://git.k8s.io/community/CLA.md) (prerequisite)
124+
- [Open a pull request](https://help.github.com/articles/about-pull-requests/)
125+
- Pass [verification](#verify) tests
126+
- Get all necessary approvals from reviewers and code owners
127+
128+
106129
### Documentation
107130

108131
The site documentation is written in Markdown and compiled with
@@ -134,7 +157,7 @@ INFO - Building documentation...
134157
For more information on how documentation should be written, refer to our
135158
[Documentation Style Guide](/contributing/style-guide).
136159

137-
## Conformance Tests
160+
### Conformance Tests
138161

139162
To develop or run conformance tests, refer to the [Conformance Test
140163
Documentation](/concepts/conformance/#running-tests).

0 commit comments

Comments
 (0)