| * Update tfjob components to v1beta1 Remove old version of tensor2tensor component * Combine UI into a single jsonnet file * Upgrade GH issue summarization to kf v0.4.0-rc.2 Use latest ksonnet v0.13.1 Use latest seldon v1alpha2 Remove ksonnet app with full kubeflow platform & replace with components specific to this example. Remove outdated scripts Add cluster creation links to Click-to-deploy & kfctl Add warning not to use the Training with an Estimator guide Replace commandline with bash for better syntax highlighting Replace messy port-forwarding commands with svc/ambassador Add modelUrl param to ui component Modify teardown instructions to remove the deployment Fix grammatical mistakes * Rearrange tfjob instructions | ||
|---|---|---|
| .. | ||
| gh-app | ||
| gh-demo-1003 | ||
| README.md | ||
| gh-demo-dm-config.yaml | ||
		
			
				
				README.md
			
		
		
			
			
		
	
	Demo
This folder contains the resources needed by the Kubeflow DevRel team to setup a public demo of the GitHub Issue Summarization Example.
Public gh-demo.kubeflow.org
We currently run a public instance of the ui at gh-demo.kubeflow.org
The current setup is as follows
PROJECT=kubecon-gh-demo-1
CLUSTER=gh-demo-1003
ZONE=us-east1-d
Directory contents
- gh-app - This contains the ksonnet for deploying the public instance of the model and ui.
- gh-demo-1003 - This is the app created by kfctl
Setting up the demo
Here are the instructions for setting up the demo.
- 
Follow the GKE instructions for deploying Kubeflow - If you are using PROJECT kubecon-gh-demo-1 you can reuse the existing OAuth client
- 
Use the Cloud console to lookup Client ID and secret and set the corresponding environment variables 
- 
You will also need to add an authorized redirect URI for the new Kubeflow deployment 
 
- 
 
- If you are using PROJECT kubecon-gh-demo-1 you can reuse the existing OAuth client
- 
Follow the instructions to Setup an NFS share - This is needed to do distributed training with the TF estimator example
 
- 
Create static IP for serving gh-demo.kubeflow.org gcloud --project=${PROJECT} deployment-manager deployments create --config=gh-demo-dm-config.yaml gh-public-ui
- 
Update the Cloud DNS record gh-demo.kubeflow.org in project kubeflow-dns to use the new static ip. 
- 
Create a namespace for serving the UI and model kubectl create namespace gh-public
- 
Deploy Seldon controller in the namespace that will serve the public model - This is a work around for kubeflow/kubeflow#1712
 cd gh-demo-1003/ks_app ks env add gh-public --namespace=gh-public ks generate seldon seldon ks apply gh-public -c seldon
- 
Create a secret with a GitHub token - 
Follow GitHub's instructions to create a token 
- 
Then run the following command to create the secret kubectl -n gh-public create secret generic github-token --from-literal=github-token=${GITHUB_TOKEN}
 
- 
- 
Deploy the public UI and model cd gh-app ks env add gh-public --namespace=gh-public ks apply gh-public
Training and Deploying the model.
We use the ksonnet app in github/kubeflow/examples/github_issue_summarization/ks_app
The current environment is
export ENV=gh-demo-1003
Set a bucket for the job output
DAY=$(date +%Y%m%d)
ks param set --env=${ENV} tfjob output_model_gcs_bucket kubecon-gh-demo
ks param set --env=${ENV} tfjob output_model_gcs_path gh-demo/${DAY}/output
Run the job
ks apply ${ENV} -c tfjob
Using TF Estimator with Keras
- 
Copy the data to the GCFS mount by launching a notebook and then running the following commands !mkdir -p /mnt/kubeflow-gcfs/gh-demo/data !gcloud auth activate-service-account --key-file=${GOOGLE_APPLICATION_CREDENTIALS} !gsutil cp gs://kubeflow-examples/github-issue-summarization-data/github-issues.zip /mnt/kubeflow-gcfs/gh-demo/data !unzip /mnt/kubeflow-gcfs/gh-demo/data/github-issues.zip !cp github_issues.csv /mnt/kubeflow-gcfs/gh-demo/data/- TODO(jlewi): Can we modify the existing job that downloads data to a PVC to do this?
 
- 
Run the estimator job ks apply ${ENV} -c tfjob-estimator
- 
Run TensorBoard ks apply ${ENV} -c tensorboard-pvc-tb