Included the instructions to contribute notebook-controller. (kubeflow/kubeflow#5383)

* Instructions to contribute.

* Update based on feedback.
This commit is contained in:
Naveen 2020-11-09 04:52:25 -05:00 committed by GitHub
parent 396ace7a83
commit a75404d6d8
1 changed files with 28 additions and 4 deletions

View File

@ -35,9 +35,15 @@ All other fields will be filled in with default value if not specified.
## Environment parameters
ADD_FSGROUP: If the value is true or unset, fsGroup: 100 will be included
ADD_FSGROUP: If the value is true or unset, fsGroup: 100 will be included
in the pod's security context. If this value is present and set to false, it will suppress the
automatic addition of fsGroup: 100 to the security context of the pod.
automatic addition of fsGroup: 100 to the security context of the pod.
## Commandline parameters
`metrics-addr`: The address the metric endpoint binds to. The default value is `:8080`.
`enable-leader-election`: Enable leader election for controller manager. Enabling this will ensure there is only one active controller manager. The default value is `false`.
## Implementation detail
@ -45,9 +51,27 @@ This part is WIP as we are still developing.
Under the hood, the controller creates a StatefulSet to run the notebook instance, and a Service for it.
### TODO
## Contributing
[https://www.kubeflow.org/docs/about/contributing/](https://www.kubeflow.org/docs/about/contributing/)
### Development Environment
To develop on `notebook-controller`, your environment must have the following:
- [go](https://golang.org/dl/) version v1.12+.
- [docker](https://docs.docker.com/install/) version 17.03+.
- [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) version v1.11.3+.
- [kustomize](https://sigs.k8s.io/kustomize/docs/INSTALL.md) v3.1.0+
- Access to a Kubernetes v1.11.3+ cluster.
- [kubebuilder](https://book.kubebuilder.io/quick-start.html#installation)
## TODO
- e2e test (we have one testing the jsonnet-metacontroller one, we should make it run on this one)
- `status` field should reflect the error if there is any. See [#2269](https://github.com/kubeflow/kubeflow/issues/2269).
- Istio integration (controller will generate istio resources to secure each user's notebook)
- CRD [validation](https://github.com/kubeflow/kubeflow/blob/master/kubeflow/jupyter/notebooks.schema)
- `ttlSecondsAfterFinished`: This is in the original jsonnet controller spec, but not being used yet. I think we want to cleanup the notebook after idle?
- `ttlSecondsAfterFinished`: This is in the original jsonnet controller spec, but not being used yet. I think we want to cleanup the notebook after idle?
- Add more instructions on contributing like build,deploy and test locally.
- A script for installing all deps.