# GSoC 2020 - TENSORBOARD CONTROLLER ### Related Closed Issues - [Extend Tensorboard Controller to Support PVCs #5039](https://github.com/kubeflow/kubeflow/issues/5039) - [Tensorboard controller creates servers that always mount user-gcp-sa secret #5065](https://github.com/kubeflow/kubeflow/issues/5065) - [Tensorboard CR doesn't contain information about the Tensorboard Server being ready or not #5166](https://github.com/kubeflow/kubeflow/issues/5166) ### Related Pull Requests - [Mount GCP secret only when accessing Google storage #5069](https://github.com/kubeflow/kubeflow/pull/5069) - [Add scheduling functionality for Tensorboard servers that use RWO PVCs as log storages #5218](https://github.com/kubeflow/kubeflow/pull/5218) - [Add functionality to inform TWA frontend about the status of Tensorboard servers #5259](https://github.com/kubeflow/kubeflow/pull/5259) Prequisites to build and run the controller: 1. GO 2. Docker 3. kustomize 4. kubectl ## RUN TENSORBOARD CONTROLLER LOCALLY Steps: 1. Clone the repository 2. Change directories to `components/tensorboard-controller` 3. Generate and install manifests and build the controller: `make install` 4. Run the controller locally: `make run` If you want to enable the scheduling functionality for Tensorboard servers that use ReadWriteOnce PVCs as log storages, then set the `RWO_PVC_SCHEDULING` to `true` and run: `RWO_PVC_SCHEDULING="true" make run` ## BUILD TENSORBOARD CONTROLLER IMAGE AND DEPLOY TO CLUSTER 1. Clone the repository 2. Change directories to `components/tensorboard-controller` 3. Generate and install manifests and build the controller: `make manifests` 4. Build and push the docker image: `make docker-build docker-push IMG=YOUR_IMAGE_NAME` 5. Deploy the Tensorboard controller: `make deploy IMG=YOUR_IMAGE_NAME` If you want to enable the scheduling functionality for Tensorboard servers that use ReadWriteOnce PVCs as log storages, then: 1. Change directories to `components/tensorboard-controller/config/manager` 2. Modify the `manager.yaml` file by navigating to the `deployment.spec.template.spec` field and manually setting the value of the `RWO_PVC_SCHEDULING` env var to `"true"` in the manager container. 3. Run: `make deploy IMG=YOUR_IMAGE_NAME`