Skip to content

Commit

Permalink
Merge branch 'release/6.2.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
GrahamDumpleton committed Sep 9, 2019
2 parents 8d94344 + d077640 commit 04c5023
Show file tree
Hide file tree
Showing 10 changed files with 212 additions and 15 deletions.
41 changes: 41 additions & 0 deletions jupyterhub/src/jupyterhub_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
import json
import string
import yaml
import threading
import time

import requests
import wrapt
Expand All @@ -32,6 +34,8 @@

homeroom_link = os.environ.get('HOMEROOM_LINK')

homeroom_name = os.environ.get('HOMEROOM_NAME')

# Work out the service account name and name of the namespace that the
# deployment is in.

Expand Down Expand Up @@ -86,6 +90,43 @@
route_resource = api_client.resources.get(
api_version='route.openshift.io/v1', kind='Route')

# Create a background thread to dynamically calculate back link to the
# Homeroom workshop picker if not explicit link is provided, but group is.

def watch_for_homeroom():
while True:
try:
route = route_resource.get(namespace=namespace, name=homeroom_name)

scheme = 'http'

if route.metadata.annotations:
if route.metadata.annotations['homeroom/index'] == homeroom_name:
if route.tls and route.tls.termination:
scheme = 'https'

link = '%s://%s' % (scheme, route.spec.host)

global homeroom_link

if link != homeroom_link:
print('INFO: Homeroom link set to %s.' % link)
homeroom_link = link

except ApiException as e:
if e.status != 404:
print('ERROR: Error looking up homeroom route. %s' % e)

except Exception as e:
print('ERROR: Error looking up homeroom route. %s' % e)

time.sleep(15)

if not homeroom_link and homeroom_name:
thread = threading.Thread(target=watch_for_homeroom)
thread.daemon = True
thread.start()

# Workaround bug in minishift where a service cannot be contacted from a
# pod which backs the service. For further details see the minishift issue
# https://github.com/minishift/minishift/issues/2400.
Expand Down
21 changes: 20 additions & 1 deletion templates/hosted-workshop-development.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,18 @@
"value": "workshop",
"required": true
},
{
"name": "HOMEROOM_NAME",
"value": ""
},
{
"name": "WORKSHOP_TITLE",
"value": ""
},
{
"name": "WORKSHOP_DESCRIPTION",
"value": ""
},
{
"name": "GIT_REPOSITORY_URL",
"value": "https://github.com/openshift-homeroom/workshop-spawner.git",
Expand Down Expand Up @@ -383,6 +395,10 @@
"name": "APPLICATION_NAME",
"value": "${APPLICATION_NAME}"
},
{
"name": "HOMEROOM_NAME",
"value": "${HOMEROOM_NAME}"
},
{
"name": "TERMINAL_IMAGE",
"value": "${TERMINAL_IMAGE}"
Expand Down Expand Up @@ -543,7 +559,10 @@
"class": "spawner"
},
"annotations": {
"kubernetes.io/tls-acme": "${LETS_ENCRYPT}"
"kubernetes.io/tls-acme": "${LETS_ENCRYPT}",
"homeroom/group": "${HOMEROOM_NAME}",
"homeroom/title": "${WORKSHOP_TITLE}",
"homeroom/description": "${WORKSHOP_DESCRIPTION}"
}
},
"spec": {
Expand Down
23 changes: 21 additions & 2 deletions templates/hosted-workshop-production.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,18 @@
"value": "workshop",
"required": true
},
{
"name": "HOMEROOM_NAME",
"value": ""
},
{
"name": "WORKSHOP_TITLE",
"value": ""
},
{
"name": "WORKSHOP_DESCRIPTION",
"value": ""
},
{
"name": "SPAWNER_MEMORY",
"value": "768Mi"
Expand Down Expand Up @@ -72,7 +84,7 @@
},
{
"name": "SPAWNER_IMAGE",
"value": "quay.io/openshifthomeroom/workshop-spawner:6.1.0",
"value": "quay.io/openshifthomeroom/workshop-spawner:6.2.0",
"required": true
},
{
Expand Down Expand Up @@ -343,6 +355,10 @@
"name": "APPLICATION_NAME",
"value": "${APPLICATION_NAME}"
},
{
"name": "HOMEROOM_NAME",
"value": "${HOMEROOM_NAME}"
},
{
"name": "TERMINAL_IMAGE",
"value": "${TERMINAL_IMAGE}"
Expand Down Expand Up @@ -503,7 +519,10 @@
"class": "spawner"
},
"annotations": {
"kubernetes.io/tls-acme": "${LETS_ENCRYPT}"
"kubernetes.io/tls-acme": "${LETS_ENCRYPT}",
"homeroom/group": "${HOMEROOM_NAME}",
"homeroom/title": "${WORKSHOP_TITLE}",
"homeroom/description": "${WORKSHOP_DESCRIPTION}"
}
},
"spec": {
Expand Down
4 changes: 2 additions & 2 deletions templates/jumpbox-server-production.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,12 @@
},
{
"name": "SPAWNER_IMAGE",
"value": "quay.io/openshifthomeroom/workshop-spawner:6.1.0",
"value": "quay.io/openshifthomeroom/workshop-spawner:6.2.0",
"required": true
},
{
"name": "KEYCLOAK_IMAGE",
"value": "quay.io/openshifthomeroom/workshop-keycloak:6.1.0",
"value": "quay.io/openshifthomeroom/workshop-keycloak:6.2.0",
"required": true
},
{
Expand Down
21 changes: 20 additions & 1 deletion templates/learning-portal-development.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,18 @@
"value": "portal",
"required": true
},
{
"name": "HOMEROOM_NAME",
"value": ""
},
{
"name": "WORKSHOP_TITLE",
"value": ""
},
{
"name": "WORKSHOP_DESCRIPTION",
"value": ""
},
{
"name": "SPAWNER_PASSWORD",
"value": ""
Expand Down Expand Up @@ -638,6 +650,10 @@
"name": "APPLICATION_NAME",
"value": "${APPLICATION_NAME}"
},
{
"name": "HOMEROOM_NAME",
"value": "${HOMEROOM_NAME}"
},
{
"name": "SPAWNER_PASSWORD",
"value": "${SPAWNER_PASSWORD}"
Expand Down Expand Up @@ -784,7 +800,10 @@
"class": "spawner"
},
"annotations": {
"kubernetes.io/tls-acme": "${LETS_ENCRYPT}"
"kubernetes.io/tls-acme": "${LETS_ENCRYPT}",
"homeroom/group": "${HOMEROOM_NAME}",
"homeroom/title": "${WORKSHOP_TITLE}",
"homeroom/description": "${WORKSHOP_DESCRIPTION}"
}
},
"spec": {
Expand Down
23 changes: 21 additions & 2 deletions templates/learning-portal-production.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,18 @@
"value": "portal",
"required": true
},
{
"name": "HOMEROOM_NAME",
"value": ""
},
{
"name": "WORKSHOP_TITLE",
"value": ""
},
{
"name": "WORKSHOP_DESCRIPTION",
"value": ""
},
{
"name": "SPAWNER_PASSWORD",
"value": ""
Expand Down Expand Up @@ -77,7 +89,7 @@
},
{
"name": "SPAWNER_IMAGE",
"value": "quay.io/openshifthomeroom/workshop-spawner:6.1.0",
"value": "quay.io/openshifthomeroom/workshop-spawner:6.2.0",
"required": true
},
{
Expand Down Expand Up @@ -598,6 +610,10 @@
"name": "APPLICATION_NAME",
"value": "${APPLICATION_NAME}"
},
{
"name": "HOMEROOM_NAME",
"value": "${HOMEROOM_NAME}"
},
{
"name": "SPAWNER_PASSWORD",
"value": "${SPAWNER_PASSWORD}"
Expand Down Expand Up @@ -744,7 +760,10 @@
"class": "spawner"
},
"annotations": {
"kubernetes.io/tls-acme": "${LETS_ENCRYPT}"
"kubernetes.io/tls-acme": "${LETS_ENCRYPT}",
"homeroom/group": "${HOMEROOM_NAME}",
"homeroom/title": "${WORKSHOP_TITLE}",
"homeroom/description": "${WORKSHOP_DESCRIPTION}"
}
},
"spec": {
Expand Down
21 changes: 20 additions & 1 deletion templates/terminal-server-development.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,18 @@
"value": "terminal",
"required": true
},
{
"name": "HOMEROOM_NAME",
"value": ""
},
{
"name": "WORKSHOP_TITLE",
"value": ""
},
{
"name": "WORKSHOP_DESCRIPTION",
"value": ""
},
{
"name": "GIT_REPOSITORY_URL",
"value": "https://github.com/openshift-homeroom/workshop-spawner.git",
Expand Down Expand Up @@ -383,6 +395,10 @@
"name": "APPLICATION_NAME",
"value": "${APPLICATION_NAME}"
},
{
"name": "HOMEROOM_NAME",
"value": "${HOMEROOM_NAME}"
},
{
"name": "TERMINAL_IMAGE",
"value": "${TERMINAL_IMAGE}"
Expand Down Expand Up @@ -543,7 +559,10 @@
"class": "spawner"
},
"annotations": {
"kubernetes.io/tls-acme": "${LETS_ENCRYPT}"
"kubernetes.io/tls-acme": "${LETS_ENCRYPT}",
"homeroom/group": "${HOMEROOM_NAME}",
"homeroom/title": "${WORKSHOP_TITLE}",
"homeroom/description": "${WORKSHOP_DESCRIPTION}"
}
},
"spec": {
Expand Down
23 changes: 21 additions & 2 deletions templates/terminal-server-production.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,18 @@
"value": "terminal",
"required": true
},
{
"name": "HOMEROOM_NAME",
"value": ""
},
{
"name": "WORKSHOP_TITLE",
"value": ""
},
{
"name": "WORKSHOP_DESCRIPTION",
"value": ""
},
{
"name": "SPAWNER_MEMORY",
"value": "768Mi"
Expand Down Expand Up @@ -72,7 +84,7 @@
},
{
"name": "SPAWNER_IMAGE",
"value": "quay.io/openshifthomeroom/workshop-spawner:6.1.0",
"value": "quay.io/openshifthomeroom/workshop-spawner:6.2.0",
"required": true
},
{
Expand Down Expand Up @@ -343,6 +355,10 @@
"name": "APPLICATION_NAME",
"value": "${APPLICATION_NAME}"
},
{
"name": "HOMEROOM_NAME",
"value": "${HOMEROOM_NAME}"
},
{
"name": "TERMINAL_IMAGE",
"value": "${TERMINAL_IMAGE}"
Expand Down Expand Up @@ -503,7 +519,10 @@
"class": "spawner"
},
"annotations": {
"kubernetes.io/tls-acme": "${LETS_ENCRYPT}"
"kubernetes.io/tls-acme": "${LETS_ENCRYPT}",
"homeroom/group": "${HOMEROOM_NAME}",
"homeroom/title": "${WORKSHOP_TITLE}",
"homeroom/description": "${WORKSHOP_DESCRIPTION}"
}
},
"spec": {
Expand Down
21 changes: 20 additions & 1 deletion templates/user-workspace-development.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,18 @@
"value": "workspace",
"required": true
},
{
"name": "HOMEROOM_NAME",
"value": ""
},
{
"name": "WORKSHOP_TITLE",
"value": ""
},
{
"name": "WORKSHOP_DESCRIPTION",
"value": ""
},
{
"name": "GIT_REPOSITORY_URL",
"value": "https://github.com/openshift-homeroom/workshop-spawner.git",
Expand Down Expand Up @@ -667,6 +679,10 @@
"name": "APPLICATION_NAME",
"value": "${APPLICATION_NAME}"
},
{
"name": "HOMEROOM_NAME",
"value": "${HOMEROOM_NAME}"
},
{
"name": "TERMINAL_IMAGE",
"value": "${TERMINAL_IMAGE}"
Expand Down Expand Up @@ -846,7 +862,10 @@
"class": "spawner"
},
"annotations": {
"kubernetes.io/tls-acme": "${LETS_ENCRYPT}"
"kubernetes.io/tls-acme": "${LETS_ENCRYPT}",
"homeroom/group": "${HOMEROOM_NAME}",
"homeroom/title": "${WORKSHOP_TITLE}",
"homeroom/description": "${WORKSHOP_DESCRIPTION}"
}
},
"spec": {
Expand Down
Loading

0 comments on commit 04c5023

Please sign in to comment.