-
Notifications
You must be signed in to change notification settings - Fork 74
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
Streamline deployment of GESIS stage server #3090
Conversation
@manics @sgibson91 @minrk could you help me to understand what Helm chart configuration is being loaded by mistake? The
GESIS runs the BinderHub server on bare metal. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mybinder.org members send events to Google Stackdriver/Google Cloud Operations:
mybinder.org-deploy/mybinder/values.yaml
Lines 198 to 227 in 1940651
extraConfig: | |
# Send Events to StackDriver on Google Cloud | |
# This doesn't need any extra permissions, since the GKE nodes have | |
# permission to write to StackDriver by default. We don't block access | |
# to cloud metadata in binderhub pod, so this should 'just work'. | |
01-eventlog: | | |
import os | |
import google.cloud.logging | |
import google.cloud.logging.handlers | |
from traitlets.log import get_logger | |
# importing google cloud configures a root log handler, | |
# which prevents tornado's pretty-logging | |
import logging | |
logging.getLogger().handlers = [] | |
class JSONCloudLoggingHandler(google.cloud.logging.handlers.CloudLoggingHandler): | |
def emit(self, record): | |
record.name = None | |
super().emit(record) | |
def _make_eventsink_handler(el): | |
client = google.cloud.logging.Client() | |
# These events are not parsed as JSON in stackdriver, so give it a different name | |
# for now. Should be fixed in https://github.com/googleapis/google-cloud-python/pull/6293 | |
name = os.environ.get("EVENT_LOG_NAME") or "binderhub-events-text" | |
get_logger().info("Sending event logs to %s/logs/%s", client.project, name) | |
return [JSONCloudLoggingHandler(client, name=name)] | |
c.EventLog.handlers_maker = _make_eventsink_handler |
If you're haven't disabled this in your existing deployment you should have a secret eventsArchiver.serviceAccountKey
.
I noticed some of your Ansible roles include configuration values that will be specific to Gesis. I think we should move those into a Gesis specific subfolder in case we want to use Ansible for other members in future.
@@ -0,0 +1,146 @@ | |||
"""Script to identify when Docker-in-Docker stop working.""" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The workaround of removing an incorrect DinD directory was added into BinderHub in
jupyterhub/binderhub#1828
metadata: | ||
name: {{ .Release.Name }} | ||
annotations: | ||
nginx.ingress.kubernetes.io/rewrite-target: / |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this needed? Isn't /
the default?
@@ -0,0 +1,24 @@ | |||
{{- $ingressType := index .Values "ingress-nginx" "controller" "service" "type" }} | |||
{{- if eq $ingressType "ClusterIP" }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you have two layers of ingress? Since this is specific to your setup I think we should make it an explicit flag rather than auto-configuring based on an internal config value. This will make maintenance easier across the multiple deployments.
Thanks @manics for the reply and comments. I was able to disable the the attempt to contact Google Cloud with mybinder.org-deploy/config/curvenote.yaml Lines 252 to 253 in 1940651
The problem that I have is that all persistent volume claims are pending. kubectl get -n gesis pvc
I know that I need to declare a correct persistent volume but I can't find where the persistent volume is declared for OVH or CurveNote. @manics can you point me to the persistent volume declaration? Thanks! |
I have the main pods running. kubectl get -n gesis pods
IngressThe ingress is not working. The goal here is to have http://notebooks-test.gesis.org being answer by the NGINX Ingress pod. @manics can you help me? ping -c 1 notebooks-test.gesis.org
kubectl -n gesis describe ingress binderhub
kubectl -n gesis describe service binderhub-ingress-nginx-controller
|
Can you try running an ephemeral pod in the same namespace, and exec something like Then try If that works it means the controller and your internal BinderHub/JupyterHub ingress is (probably!) working, and the problem is likely in the path between the external internet and the internal ingress. |
For the chartpress tag problem you'll need to first run mybinder.org-deploy/.github/workflows/cd.yml Lines 322 to 324 in 1940651
The actual building and pushing of the container images is done in the staging workflow, and since chartpress deterministically generates the tag based on git commit hash it's fine to rerun it to update the tags. |
@manics can I have a bit of help with the pre-commit CI? Anything that I could do for it to reformat the code automatically? |
@rgaiacs You can run |
Add missing extends.
WIIP: Configure Access to Harbor See merge request methods-hub/interactive-environment!21
Update value of Ansible K8S_INGRESS See merge request methods-hub/interactive-environment!22
Steps to configure NGINX Ingress See merge request methods-hub/interactive-environment!23
Fix no chart version See merge request methods-hub/interactive-environment!24
Configure Ingress for Harbor See merge request methods-hub/interactive-environment!25
I'm closing this as after some discussion with @arnim, will be better for us at GESIS to handle the Kubernetes deployment to our bare-metal server on a separate Git repository. Thanks for all the help! |
This is related to #2797
The configuration in the
ansible
folder is working and GitLab CI at.gitlab-ci.yml
is also working.I'm trying to complete the Kubernetes cluster configuration in the Helm chart.