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,19 +35,43 @@ All other fields will be filled in with default value if not specified.
## Environment parameters ## 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 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 ## Implementation detail
This part is WIP as we are still developing. 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. 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) - 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). - `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) - 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) - 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.