Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Live notes towards a test deployment and demo #19

Closed
11 tasks done
consideRatio opened this issue Apr 25, 2023 · 1 comment
Closed
11 tasks done

Live notes towards a test deployment and demo #19

consideRatio opened this issue Apr 25, 2023 · 1 comment
Assignees

Comments

@consideRatio
Copy link
Member

consideRatio commented Apr 25, 2023

Development

For a test deployment and demo we need a few things to come into place.

Software preparation

Chart preparation

Testing

Testing deployment

We can test things locally or in a CI system, but we have setup a k8s cluster to test things in a production similar environment for now to also enable easier demoing of the results.

  • Write notes about the k8s cluster we have for testing things

    gcloud auth login --update-adc
    gcloud container clusters get-credentials binderhub-service --zone=europe-west1-d --project=binderhub-service-development
    
  • Write notes about the helm commands to install / upgrade, and with what config

    tools/generate-json-schema.py
    tools/validate-against-schema.py
    chartpress --no-build
    
    helm upgrade --install binderhub-service binderhub-service
    

    Once installed, we can access the binderhub REST API. @GeorgianaElena and I have done this in a not convenient way of first opening a network connection to binderhub's UI:

    kubectl port-forward deploy/binderhub-service 8585
    

    Then we were able to make a build from curl like this:

    curl http://localhost:8585/build/gh/binderhub-ci-repos/cached-minimal-dockerfile/HEAD?build_only=true
    
  • Setup a GCP based container registry we can work against

    • Create a key to access it, and put it in a k8s secret, and make use of it via binderhub config KubernetesBuildExecutor.push_secret

Testing procedure

  • Trial how to test this in a minimalistic way
    I think straight up curl to for example http://localhost:8585/build/gh/binderhub-ci-repos/cached-minimal-dockerfile/HEAD?build_only=true is sufficient.
  • Verify ability to start build of images
  • Verify ability to push images to some registry
    We have tested against a GKE Artifact registry (includes docker container registry)
@consideRatio
Copy link
Member Author

consideRatio commented Apr 28, 2023

Status update

The demo to deploy and use a binderhub in a "build only" mode through its REST API is now demonstrated, and the checkboxes for this issue is resolved. Future work is planned in #27, and below is a gif animation of using the CLI curl to access the REST API in the deployment to a k8s cluster on GCP.

binderhub the software accepts "build_only=true"

@GeorgianaElena has made jupyterhub/binderhub#1647 functional, and we have also worked to make a Helm chart deploy binderhub using that not yet merged feature-branch.

binderhub-service running, and REST API functional

When the image is built and pushed, we don't directly launch. BinderHub has started without coupling to JupyterHub, built an image, and pushed it to a container registry.

demo

Images pushed to container registry

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Status: Done
Archived in project
Development

No branches or pull requests

2 participants