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

Use dask/daskhub helm chart #697

Merged
merged 9 commits into from
Aug 31, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 23 additions & 21 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -128,12 +128,14 @@ jobs:
git crypt unlock ~/repo/default.key
rm ~/repo/default.key

- run:
name: Unlock ooi secrets
command: |
echo "${OOI_GIT_CRYPT_KEY}" | base64 -d > ~/repo/ooi.key
git crypt unlock ~/repo/ooi.key
rm ~/repo/ooi.key
# OOI is temporarily disabled with the move to daskhub.
# https://github.com/pangeo-data/pangeo-cloud-federation/issues/704
# - run:
# name: Unlock ooi secrets
# command: |
# echo "${OOI_GIT_CRYPT_KEY}" | base64 -d > ~/repo/ooi.key
# git crypt unlock ~/repo/ooi.key
# rm ~/repo/ooi.key

- run:
name: Build gcp-uscentral1b.pangeo.io image if needed
Expand All @@ -150,14 +152,14 @@ jobs:
environment:
PYTHONIOENCODING: utf-8

- run:
name: Build ooi.pangeo.io image if needed
when: always
no_output_timeout: 1200
command: |
hubploy build ooi --check-registry --push
environment:
PYTHONIOENCODING: utf-8
# - run:
# name: Build ooi.pangeo.io image if needed
# when: always
# no_output_timeout: 1200
# command: |
# hubploy build ooi --check-registry --push
# environment:
# PYTHONIOENCODING: utf-8


- run:
Expand All @@ -168,7 +170,7 @@ jobs:
tar -xzf -
sudo mv linux-amd64/helm /usr/local/bin
helm version
helm repo add pangeo https://pangeo-data.github.io/helm-chart/
helm repo add dask https://helm.dask.org/
helm repo add jupyterhub https://jupyterhub.github.io/helm-chart/
helm repo add dask-gateway https://dask.org/dask-gateway-helm-repo/
helm repo add stable https://kubernetes-charts.storage.googleapis.com
Expand Down Expand Up @@ -206,12 +208,12 @@ jobs:
AWS_SHARED_CREDENTIALS_FILE=./deployments/icesat2/secrets/aws-config.txt
aws eks update-cluster-config --region us-west-2 --name pangeo --resources-vpc-config publicAccessCidrs=${AWS_IP_WHITELIST} > /dev/null

- run:
name: Deploy ooi.pangeo.io
when: always
no_output_timeout: 1200
command: |
hubploy deploy ooi pangeo-deploy ${CIRCLE_BRANCH} --timeout 1200s --cleanup-on-fail
# - run:
# name: Deploy ooi.pangeo.io
# when: always
# no_output_timeout: 1200
# command: |
# hubploy deploy ooi pangeo-deploy ${CIRCLE_BRANCH} --timeout 1200s --cleanup-on-fail


workflows:
Expand Down
2 changes: 1 addition & 1 deletion deployments/gcp-uscentral1b/config/common.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
pangeo:
daskhub:
jupyterhub:
scheduling:
corePods:
Expand Down
13 changes: 1 addition & 12 deletions deployments/gcp-uscentral1b/config/prod.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
pangeo:
daskhub:
jupyterhub:
proxy:
https:
Expand All @@ -9,16 +9,5 @@ pangeo:
service:
loadBalancerIP: 35.238.103.127
hub:
services:
dask-gateway:
# This makes the gateway available at ${HUB_URL}/services/dask-gateway
url: "http://traefik-gcp-uscentral1b-prod-dask-gateway.prod"
extraEnv:
OAUTH_CALLBACK_URL: "https://us-central1-b.gcp.pangeo.io/hub/oauth_callback"


singleuser:
extraEnv:
# TODO: DNS
DASK_GATEWAY__ADDRESS: "https://us-central1-b.gcp.pangeo.io/services/dask-gateway/"
DASK_GATEWAY__PROXY_ADDRESS: "gateway://traefik-gcp-uscentral1b-prod-dask-gateway.prod:80"
12 changes: 1 addition & 11 deletions deployments/gcp-uscentral1b/config/staging.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
pangeo:
daskhub:
jupyterhub:
proxy:
https:
Expand All @@ -16,19 +16,9 @@ pangeo:
limits:
cpu: "0.1"
memory: 0.25Gi
services:
dask-gateway:
# This makes the gateway available at ${HUB_URL}/services/dask-gateway
url: "http://traefik-gcp-uscentral1b-staging-dask-gateway.staging"

scheduling:
userScheduler:
enabled: false
singleuser:
extraEnv:
# TODO: DNS
DASK_GATEWAY__ADDRESS: "https://staging.us-central1-b.gcp.pangeo.io/services/dask-gateway/"
DASK_GATEWAY__PROXY_ADDRESS: "gateway://traefik-gcp-uscentral1b-staging-dask-gateway.staging:80"

metrics:
enabled: true
Expand Down
Binary file modified deployments/gcp-uscentral1b/secrets/prod.yaml
Binary file not shown.
Binary file modified deployments/gcp-uscentral1b/secrets/staging.yaml
Binary file not shown.
2 changes: 1 addition & 1 deletion deployments/icesat2/config/common.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
pangeo:
daskhub:
jupyterhub:
scheduling:
userPods:
Expand Down
9 changes: 1 addition & 8 deletions deployments/icesat2/config/prod.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
# Leave commented for first build, then uncomment and add loadBalancerIP
pangeo:
daskhub:
jupyterhub:
hub:
services:
dask-gateway:
# This makes the gateway available at ${HUB_URL}/services/dask-gateway
url: "http://traefik-icesat2-prod-dask-gateway.icesat2-prod"
extraEnv:
OAUTH_CALLBACK_URL: "https://aws-uswest2.pangeo.io/hub/oauth_callback"
singleuser:
Expand All @@ -31,9 +27,6 @@ pangeo:
description: "https://github.com/ICESAT-2HackWeek/jupyter-image-2020"
kubespawner_override:
image: uwhackweeks/icesat2:latest
extraEnv:
DASK_GATEWAY__ADDRESS: "https://aws-uswest2.pangeo.io/services/dask-gateway"
DASK_GATEWAY__PROXY_ADDRESS: "gateway://traefik-icesat2-prod-dask-gateway.icesat2-prod:80"
proxy:
https:
hosts:
Expand Down
7 changes: 0 additions & 7 deletions deployments/icesat2/config/staging.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,6 @@ pangeo:
limits:
cpu: 0.5
memory: 1G
services:
dask-gateway:
# This makes the gateway available at ${HUB_URL}/services/dask-gateway
url: "http://traefik-icesat2-staging-dask-gateway.icesat2-staging"
extraEnv:
OAUTH_CALLBACK_URL: "https://staging.aws-uswest2.pangeo.io/hub/oauth_callback"
singleuser:
Expand Down Expand Up @@ -43,9 +39,6 @@ pangeo:
description: "https://github.com/ICESAT-2HackWeek/jupyter-image-2020"
kubespawner_override:
image: uwhackweeks/icesat2:latest
extraEnv:
DASK_GATEWAY__ADDRESS: "https://staging.aws-uswest2.pangeo.io/services/dask-gateway"
DASK_GATEWAY__PROXY_ADDRESS: "gateway://traefik-icesat2-staging-dask-gateway.icesat2-staging:80"
proxy:
https:
hosts:
Expand Down
Binary file modified deployments/icesat2/secrets/prod.yaml
Binary file not shown.
Binary file modified deployments/icesat2/secrets/staging.yaml
Binary file not shown.
10 changes: 0 additions & 10 deletions deployments/ooi/config/prod.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,5 @@
pangeo:
jupyterhub:
hub:
services:
dask-gateway:
# This makes the gateway available at ${HUB_URL}/services/dask-gateway
url: "http://traefik-ooi-prod-dask-gateway.ooi-prod"
scheduling:
userPlaceholder:
enabled: true
Expand All @@ -26,8 +21,3 @@ pangeo:
service:
annotations: {'service.beta.kubernetes.io/azure-load-balancer-resource-group': 'ooi-pangeo'}
loadBalancerIP: 23.96.23.164
singleuser:
extraEnv:
# TODO: DNS
DASK_GATEWAY__ADDRESS: "https://ooi.pangeo.io/services/dask-gateway/"
DASK_GATEWAY__PROXY_ADDRESS: "gateway://traefik-ooi-prod-dask-gateway.ooi-prod:80"
10 changes: 0 additions & 10 deletions deployments/ooi/config/staging.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,5 @@
pangeo:
jupyterhub:
hub:
services:
dask-gateway:
# This makes the gateway available at ${HUB_URL}/services/dask-gateway
url: "http://traefik-ooi-staging-dask-gateway.ooi-staging"
scheduling:
userPlaceholder:
enabled: false
Expand All @@ -18,8 +13,3 @@ pangeo:
service:
annotations: {'service.beta.kubernetes.io/azure-load-balancer-resource-group': 'ooi-pangeo'}
loadBalancerIP: 13.92.63.24
singleuser:
extraEnv:
# TODO: DNS
DASK_GATEWAY__ADDRESS: "https://staging.ooi.pangeo.io/services/dask-gateway/"
DASK_GATEWAY__PROXY_ADDRESS: "gateway://traefik-ooi-staging-dask-gateway.ooi-staging:80"
Binary file modified deployments/ooi/secrets/staging.yaml
Binary file not shown.
6 changes: 3 additions & 3 deletions pangeo-deploy/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ description: A Helm chart for Kubernetes
name: pangeo-deploy
version: 0.1.0
dependencies:
- name: pangeo
version: "v0.2.2-n063.h716913e"
repository: https://pangeo-data.github.io/helm-chart/
- name: daskhub
version: "4.4.2"
repository: https://helm.dask.org
import-values:
- child: rbac
parent: rbac
Expand Down
12 changes: 3 additions & 9 deletions pangeo-deploy/values.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
pangeo:
daskhub:
# Pangeo configuration values
# --------------------
# The following configuration options are specifically for the custom Pangeo components.
Expand All @@ -8,7 +8,6 @@ pangeo:
rbac:
enabled: true


# Dependency configuration values
# -------------------------------
# To configure dependencies you must create a key with the name of the dependency
Expand All @@ -17,7 +16,6 @@ pangeo:
jupyterhub:
# Helm config for jupyterhub goes here
# See https://github.com/jupyterhub/zero-to-jupyterhub-k8s/blob/master/jupyterhub/values.yaml

singleuser:
cpu:
limit: 2
Expand All @@ -29,7 +27,6 @@ pangeo:
extraEnv:
# The default worker image matches the singleuser image.
DASK_GATEWAY__CLUSTER__OPTIONS__IMAGE: '{JUPYTER_IMAGE_SPEC}'
DASK_GATEWAY__AUTH__TYPE: 'jupyterhub'
serviceAccountName: pangeo

prePuller:
Expand All @@ -43,6 +40,7 @@ pangeo:
enabled: true
userPlaceholder:
enabled: false

dask-gateway:
gateway:
backend:
Expand All @@ -60,11 +58,7 @@ pangeo:
securityContext:
fsGroup: 1000

# TODO: figure out a replacement
# userLimts: |
# c.UserLimits.max_cores = 100
# c.UserLimits.max_memory = "400 G"
# c.UserLimits.max_clusters = 1
# TODO: figure out a replacement for userLimits.
extraConfig:
optionHandler: |
from dask_gateway_server.options import Options, Integer, Float, String
Expand Down