Skip to content

Projects and quota

OpenShift projects and CSC computing projects

Info

Projects in Rahti 2 are separate from CSC computing projects. A single CSC computing project can have access to multiple projects in Rahti 2. Each CSC computing project with access to Rahti will have a corresponding group in Rahti 2.

All projects in Rahti 2 must be mapped to a CSC computing project. This mapping is used to determine which CSC computing project a given resource belongs to for billing and other purposes. You need to specify which of them to use. You have to specify which project to map by entering csc_project: followed by the name or number of your CSC computing project in the Description field when creating a new project in Rahti 2. You can also enter other text in the description field if you want to have a human-readable description for the project you are creating.

For example, if you have Rahti 2 access via project_1000123, you would enter the following in the Description field:

csc_project: 1000123

You can also enter a human-readable description for the project, in which case the field could look like this:

This project is used for hosting the Pied Piper web application.

csc_project: 1000123

This would make it so that any usage within that Rahti 2 project is billed to the billing unit quota of project_1000123. Note that project_1000123 must have Rahti service access and you must be a member of that computing project, or the OpenShift project creation will fail.

If you would like to know which CSC computing projects you are a member of, you can view a list in the My Projects tool of MyCSC.

If you would like to know which CSC computing project a Rahti 2 project is associated with, you can do so using the oc command line tool. You can find instructions for setting up oc in the command line tool usage instructions . For example, if your Rahti 3 project is called my-openshift-project, you would run:

oc get project my-openshift-project -o yaml

This should produce the following output:

apiVersion: project.openshift.io/v1
kind: Project
metadata:
  annotations:
    ...
  creationTimestamp: 2018-11-22T12:27:05Z
  labels:
    csc_project: "1000123"
  name: my-openshift-project
  resourceVersion: "72557736"
  selfLink: /apis/project.openshift.io/v1/projects/my-openshift-project
  uid: df4970e2-abd7-4417-adbf-531293c68cd6
spec:
  finalizers:
  - openshift.io/origin
  - kubernetes
status:
  phase: Active

In the output above, you can find the associated CSC computing project under metadata.labels.csc_project. In this case, the project is 1000123. This information is also available via a web interface.

Labels web UI

Info

It is not possible for normal users to change the csc_project label after a project has been created. If you would like to change the label for an existing project, please contact the support. You can also create a completely new project if you want to use a different label.

Creating a project

First, click this link to access the homepage of Rahti 2 and click Login Page under OpenShift 4.15.

After being logged in, click the blue "Create Project" button to create a project, and you will be presented with the following view:

OpenShift new project dialog

If you are in "Developer" view, click on "Projects: All projects" located in the topbar and "Create Project": OpenShift new project dialog Developer

  1. You need to pick a unique name that is not in use by any other project in the system.
  2. You can also enter a human-readable display name and.
  3. You have to also enter a CSC computing project in the Description field. It must be a currently valid CSC project, that your account has access to. In order to view to which CSC projects you have access to, please check https://my.csc.fi. If you have access to no CSC project, you will not be able to create any Rahti 2 project. If you have Rahti 2 access via project_1000123, you would enter the following in the Description field:

csc_project: 1000123

OpenShift Create Project

See the section about accounts.

Once you have filled in the fields, click "Create", and you will see the application catalog where you can pick an application template or import your own one.

For more information about using the web interface, refer to the official OpenShift documentation (our current version is 4.15). You can find out which version of the documentation to look at in the web interface by clicking the question mark symbol in the top bar and selecting "About".

Project quotas

Each project has its own quota. Initial quota is the following:

Resource Default
Virtual cores 4
RAM 16 GiB
Storage 100 GiB
Number of image streams (images) 20
Size of each registry images 5 GiB

This means that your project can use up to 4 cores and 16GiB in total, it can be 1 Pod using the whole 4 cores and 16 GiB, 8 pods each using half a core and 2 GiB, etc...

You can find the resource usage and quota of a project in the project view in the web interface under Administration -> ResourceQuota and Administration -> LimitRanges in the Administrator menu.

Alternatively, you can use the oc command line tool:

$ oc describe quota
Name:                      compute-resources
Namespace:                 test-delete
Resource                   Used  Hard
--------                   ----  ----
limits.cpu                 500m  4
limits.ephemeral-storage   0     5Gi
limits.memory              1Gi   16Gi
openshift.io/imagestreams  1     20
persistentvolumeclaims     0     5
pods                       1     100
requests.storage           0     100Gi
$ oc describe limitranges
Name:                  limits
Namespace:             test-delete
Type                   Resource  Min  Max    Default Request  Default Limit  Max Limit/Request Ratio
----                   --------  ---  ---    ---------------  -------------  -----------------------
Container              cpu       50m  4      100m             500m           5
Container              memory    8Mi  16Gi   500Mi            1Gi            -
openshift.io/Image     storage   -    5Gi    -                -              -
PersistentVolumeClaim  storage   -    100Gi  -                -              -

Default Pod resource limits

Every Pod needs to have lower and upper limits regarding resources, specifically for CPU and memory. The lower are called requests, and the upper are called limits. The requests sets the minimum resources needed for a Pod to run, and a Pod is not allowed to use more resources than the specified in limits.

The user can set the limits explicitly within the available quota, but if no limit is set by the user, the defaults are used:

Type CPU Memory
limits 500m 1Gi
requests 50m 500Mi

Note: m stands for milicores. 500m will be the equivalent of 0.5 cores, or in other words half of the time of a CPU core.

Rahti 2 enforces a maximum limit/request ratio of 5. This means that the CPU or memory limits cannot be more than 5 times the request. So if the CPU request is 50m, the CPU limit cannot be higher than 500m. And if we wanted to increase the CPU limit to 1, we will have to increase as well the request to at least 100m.

Cluster Quotas

In addition to the project resource quota, cluster resource quota is in use. This quota is shared by multiple projects created by the same user. This means that cluster quota is enforced per user. A single user will be able to request as many projects as it is necessary, but the total resource use of all these projects cannot exceed the cluster quota.

Initial cluster quotas are 5 times of the project resource quota.

Resource type Quota
limits.cpu 20
limits.memory 80Gi
request.storage 500Gi
limits.ephemeral-storage 25Gi
openshift.io/imagestreams 100
persistentvolumeclaims 25
pods 500

You can check your current cluster quota by running this command line:

$ oc describe AppliedClusterResourceQuota

Name:       crq-XXXXXXXX
Created:    19 hours ago
Labels:     <none>
Annotations:    <none>
Namespace Selector: ["test"]
Label Selector:
AnnotationSelector: map[openshift.io/requester:XXXXXXXX]
Resource            Used    Hard
--------            ----    ----
limits.cpu          0   20
limits.ephemeral-storage    0   25Gi
limits.memory           0   80Gi
openshift.io/imagestreams   1   100
persistentvolumeclaims      0   25
pods                0   500
requests.storage        0   500Gi

It not only shows the Quota, but also the current Usage.

Requesting more quota

If you need more resources that the defaults, you can apply for more quota by contacting the Service Desk. See the Contact page for instructions. Quota requests are handled on a case-by-case basis depending on the currently available resourcesin Rahti 2 and the use case.

Sharing projects with other users

OpenShift has a flexible role-based access control system that allows you to give access to projects you have created to other users and groups in the system. You can give e.g. full admin, basic user, edit or read only access to other users and groups in the system for collaboration.

You can edit project memberships in the web interface via User Management -> RoleBindings, in the Administrator menu. You can either give access rights to individual users, groups or Service Accounts by selecting either the Users, Groups or ServiceAccount.

Create Role Binding

Note that it is important to use correct usernames when sharing projects with others. Rahti 2 allows you to freely enter any username and will not notify you for having entered a non-existent username. Usernames are also case-sensitive. You can find out your username in Rahti 2 via the command line, by using the command oc whoami.

Info

When creating a Rahti 2 project which is associated with certain CSC computing project, by default all members the of CSC computing project will have admin access to the Rahti 2 project. This also means that you can add administrators to your Rahti 2 project by adding them directly to your CSC project.

Deleting a project

In order to delete a project, you need to go to the main landing page and click in the 3 vertical dots next to the name of the project. In the drop down menu, you will see the option "Delete Project"

Delete drop down

Then you will be asked to input the name of the project to prevent accidental deletions.

Warning

After the project has been confirmed for deletion, all resources will be deleted and there will be no way to restore them, including the data stored in the persistent volumes.

Project name dialog

After that, Rahti 2 will start to delete all the resources of the project. It could take only few seconds or up to a minute, it depends on the amount of resources the project had. After that, Rahti 2 will liberate the project name, and it will be possible to create an empty project with the same name.


Last update: March 26, 2024