- Create a configuration file at
./hatchery.json
with basic configuration:
{
"user-namespace": "jupyter-pods",
"sub-dir": "/lw-workspace",
"user-volume-size": "10Gi"
}
-
Install nodemon
-
Run Hatchery:
export GEN3_ENDPOINT=qa-heal.planx-pla.net; export GEN3_VPCID=qaplanetv1; nodemon --exec go run main.go -config ./hatchery.json --signal SIGTERM
The API is exposed at http://0.0.0.0:8000.
You can now deploy individual services via Helm!
If you are looking to deploy all Gen3 services, that can be done via the Gen3 Helm chart. Instructions for deploying all Gen3 services with Helm can be found here.
To deploy the hatchery service:
helm repo add gen3 https://helm.gen3.org
helm repo update
helm upgrade --install gen3/hatchery
These commands will add the Gen3 helm chart repo and install the hatchery service to your Kubernetes cluster.
Deploying hatchery this way will use the defaults that are defined in this values.yaml file You can learn more about these values by accessing the hatchery README.md
If you would like to override any of the default values, simply copy the above values.yaml file into a local file and make any changes needed.
You can then supply your new values file with the following command:
helm upgrade --install gen3/hatchery -f values.yaml
If you are using Docker Build to create new images for testing, you can deploy them via Helm by replacing the .image.repository value with the name of your local image. You will also want to set the .image.pullPolicy to "never" so kubernetes will look locally for your image. Here is an example:
image:
repository: <image name from docker image ls>
pullPolicy: Never
# Overrides the image tag whose default is the chart appVersion.
tag: ""
Re-run the following command to update your helm deployment to use the new image:
helm upgrade --install gen3/hatchery
You can also store your images in a local registry. Kind and Minikube are popular for their local registries: