Renku instance in a cluster

Hello, I’m following the guide will help you deploying and customizing your own Renku instance in a cluster.

when I do the command:
helm upgrade --install renku renku/renku
–namespace renku
-f renku-values.yaml
–timeout 1800s

at the end of the execution, i was asked to enter the domain name. what does this domain name represent, is it the domain name
from which I can access my local renkulab?

after installation, is there a special configuration to make renkulab open on this domain name, because after installation i can only access the local renkulab from an ip exposed in minikube (kubernetes) even though i can’t get very far in this renkulab interface because some pods aren’t running even after 1 hour

As an alternative, if in the end I can’t get my renku to work in the kubernates as shown in the guide, if I proceed otherwise and develop my own ui (with angular for example) and also deploy the renku-gateway project locally to communicate with my angular ui, will renku-gateway alone have everything I need to get my project working locally? i.e. create, register the project locally, launch sessions…
or would I need to install another renku repository.

Hello!
In the deployment docs we assume that Renkulab is being installed in a Kubernetes cluster reachable from the Internet and that will use a domain name registered with an IP address on the Internet.

Some of our services rely on being able to reach Renkulab through its domain name, hence having a functional domain and port 443 open on the IP registered with that domain are a requirement for a functional Renkulab deployment. Thus I suspect that is the reason why some pods are not running in your deployment.

It is possible to achieve all of the above in a “home” type of deployment, but is not the recommended way to do so.

We do already provide a Renkulab instance that is open and free to use, have you already tried it out? It’s https://renkulab.io

Hi @aledegano

Thank you for your detailed reply.

absolutely i have deployed renkulab in minikube locally. i have created an Ingress with a domain name that is not configured.

so the solution would be to configure a DNS and NGINX (local or internet) that will attach my domain name to an IP on my network?

i’ve already consulted the public renkulab, but we want to opt for an on premise deployment.

Yes, that is correct.
However if you considering to deploy Renkulab on-premise I suggest that you look into production ready distributions of Kubernetes such as https://k3s.io/ as minikube is only a development tool and discourage use in production.

ok thanks i will try it : )

Hello @aledegano,

if the deployment of renku on premise in clusters gives exactly the same rendering as renkulab, then I suppose that even with this deployment we cannot customize the resources (CPU, GPU, disk) to allocate when creating a session Jupiter for example.

and about renku API Gateway, is it only intended to work or communicate directly with other renku services?can’t I use a third-party application to execute some of the Gateway’s endpoints? like creating a renku project, adding a dataset…

I’m asking because in the documentation I don’t see a list of endpoints for each action in renkulab that I can explicitly execute via a url

The administrators of a Renkulab deployment can configure the resources available to launch user sessions, as many configurations as they like, with any combination of cores/memory/storage.

I am not sure I fully understand your second question, but I can tell you that we provide a Renku command line interface that allows to perform the operations that you have listed above and many more.

Just to understand the context: are you considering deploying Renkulab in a professional environment? Perhaps for other co-workers to use too? We might be able to suggest some options in that case and make your life easier.

@aledegano

On the renkulab, when you click on the new session button, you can choose from 5 combinations (default, large, medium, small, xlarge) of resources consisting of cpu, ram, disk, gpu with predefined values and max storage defined at 64GB.

on the other hand, with the renku cli tool you can go even further, you can customize as you wish without restriction and by defining any value, but the idea, as you said, is to deploy renku in a professional environment accessible by other colleagues (even non-IT) who don’t necessarily know how to use command lines to allocate resources, but via a graphical interface.

so my second question in my last post which was to know if renku API Gateway or any other renku service does not provide apis (endpoints) that developers can query from an application developed by themselves in order to perform some actions with fewer restrictions

Yes, on Renkulab.io we (the admins) intentionally keep the number of different resource option low (so to not confuse new users) and also the total amount of computing resource for each of those options low (to keep our cloud bill reasonable).
However, if you are the admin of a Renkulab deployment you can define any amount of resource options with any amount of resources dedicated to it so there really is no reason to hack the Renkulab deployment that you would be managing yourself as there are easier options to make your users happy.

Yes, the Renku CLI allows for now to define an arbitrary amount of resources for the user sessions, but that is something that will change in the future as it doesn’t make sense that users bypass the limits that the administrators put in place.

For the other question, yes Renku gateway exposes all the operations through an API, but as I mentioned above I really see no reason to bypass the UI as it can be configured arbitrarily.

yes it makes sense to limit this when you are the administrator.

but the real reason why I wanted to go through Renku gateway is because I don’t see where I as an administrator of my renku on premise I customize these options, because deploying renku locally seems to provide the same functionality of renkulab online locally when I launch the clusters

I may see this possibility of customizing these resources by adjusting the source code (but the local deployment only deploys the images not the source code) or there may be a configuration file like renku-values.yaml with values to change?

can I still have a link or reference in the renku doc where renku gateway exposes the operations through an API?

The documentation on setting up Resource pools and Classes is here: Working with the CRC service — Renku documentation for the time being the admins have to go through the Rest APIs directly, but the UI team is working on an “admin panel” that will make it easier to configure those options.

We also expose those APIs through Swagger, e.g. Swagger UI

We don’t really have docs of Gateway API as it is not really meant for user or admins to interact with, you can read something in the project README here: GitHub - SwissDataScienceCenter/renku-gateway: Gateway between the renku UI and the various renku backend services

Thank you for all your answers :slight_smile:

Hello,

I have deployed my renku in a production environment with a domain name attached. After installation I have this first capture of the status of my pods

after a few minutes I have the new state on the second capture where there are fewer pods while running

and after a few hours, some pods are in error, and the remark I make is that all the pods depending on keylock are either in error or CrashLoopBackOff state after a few hours

what could be the problem, please?

Yes, it seems that Keycloak not being able to start is the crux of the problem.
The most frequent cause for that is Keycloak not being able to connect to the Postgres DB. If that is indeed the problem you will see some telling log.

If the log confirm my suspicion then you should probably review the user and password passed to Keycloak for the DB connection and the other parameters too.

Hi @aledegano ,
yes, the logs show that it’s a problem for keycloack to connect to Postgres.

For other reasons I have started the deployment again, from generating the generate-values.sh file to running the “helm upgrade --install renku” command, but I have this error indicated on the screenshot.

but I have entered a password in the values that corresponds to the openssl rand -hex 16 | base64

graph:
jena:
users:
admin:
password: NDgzNTUzMTRkZjg2YzFmODMzMmVmZTJjYzE2OGFjNTIKd

It seems like you are using the latest version of Renku, we have refactored how the Helm chart is structured, thus now that parameter for Jena is on the top level and no longer under graph (as the error message is reporting):

jena:
  users:
    admin:
      password: xxxx