Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 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
5 changes: 5 additions & 0 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,11 @@ jobs:
helm_version: ""
experimental: false

- federation_member: hetzner-gesis
chartpress_args: ""
helm_version: ""
experimental: false

# OVH deployment paused
# - federation_member: ovh2
# helm_version: ""
Expand Down
126 changes: 126 additions & 0 deletions config/hetzner-gesis.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
projectName: hetzner-gesis

# We share the registry with 2i2c
registry:
enabled: false
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This still needs to be enabled. What we'll share is the backing object store that the registry talks to, so the storage that the registry uses will be the same. But we still need a registry to serve them from here. So this config should match exactly what's in the hetzner-2i2c one (including secrets) so it can use the same storage backend but run its own server.


cryptnono:
detectors:
monero:
enabled: false
execwhacker:
containerdHostPath: /run/k3s/containerd/containerd.sock

binderhub:
config:
BinderHub:
hub_url: https://hub.gesis.mybinder.org
badge_base_url: https://mybinder.org
sticky_builds: true
# We share the registry with 2i2c
image_prefix: registry.2i2c.mybinder.org/i-
KubernetesBuildExecutor:
docker_host: /var/run/dind/docker.sock
repo2docker_extra_args:
# try to avoid timeout pushing to local registry
# default is 60
# this must have no spaces to be processed by repo2docker correctly
- '--DockerEngine.extra_init_args={"timeout":1200}'

LaunchQuota:
total_quota: 300

replicas: 2

extraVolumes:
- name: secrets
secret:
secretName: events-archiver-secrets
extraVolumeMounts:
- name: secrets
mountPath: /secrets
readOnly: true
extraEnv:
GOOGLE_APPLICATION_CREDENTIALS: /secrets/service-account.json

dind:
resources:
requests:
cpu: "4"
memory: 12Gi
limits:
cpu: "8"
memory: 16Gi

ingress:
hosts:
- gesis.mybinder.org

jupyterhub:
# proxy:
# chp:
# resources:
# requests:
# cpu: "1"
# limits:
# cpu: "1"
ingress:
hosts:
- hub.gesis.mybinder.org
tls:
- secretName: kubelego-tls-hub
hosts:
- hub.gesis.mybinder.org

imageCleaner:
# handled by buildkit pruner
enabled: false

grafana:
ingress:
hosts:
- grafana.gesis.mybinder.org
tls:
- hosts:
- grafana.gesis.mybinder.org
secretName: kubelego-tls-grafana
datasources:
datasources.yaml:
apiVersion: 1
datasources:
- name: prometheus
orgId: 1
type: prometheus
url: https://prometheus.gesis.mybinder.org
access: direct
isDefault: true
editable: false
# persistence:
# storageClassName: csi-cinder-high-speed

prometheus:
server:
persistentVolume:
size: 50Gi
ingress:
hosts:
- prometheus.gesis.mybinder.org
tls:
- hosts:
- prometheus.gesis.mybinder.org
secretName: kubelego-tls-prometheus

ingress-nginx:
controller:
replicas: 1
scope:
enabled: true
service:
loadBalancerIP: 116.203.245.43

static:
ingress:
hosts:
- static.gesis.mybinder.org
tls:
secretName: kubelego-tls-static
8 changes: 7 additions & 1 deletion deploy.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,13 @@
}

# Projects using raw KUBECONFIG files
KUBECONFIG_CLUSTERS = {"localhost", "ovh2", "hetzner-2i2c", "hetzner-2i2c-bare"}
KUBECONFIG_CLUSTERS = {
"localhost",
"ovh2",
"hetzner-2i2c",
"hetzner-2i2c-bare",
"hetzner-gesis",
}

# Mapping of config name to cluster name for AWS EKS deployments
AWS_DEPLOYMENTS = {"curvenote": "binderhub"}
Expand Down