Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
a8b76d4
add chart name
Apr 8, 2025
9cd2a7a
prototype chart yaml
Apr 8, 2025
0d51000
modified
Apr 28, 2025
6484c13
modified
Apr 28, 2025
9ae5e23
add ci
Apr 28, 2025
17102f7
no hard-coded namespace
Apr 28, 2025
422a1b5
adapted reana
Apr 28, 2025
994bddf
adapted reana
Apr 28, 2025
6b687ae
adapted version
Apr 28, 2025
263a13b
adapted version
Apr 28, 2025
e646340
adapted version
Apr 28, 2025
73b2af3
Update README.md
volodymyrss Jun 16, 2025
c5f8f41
Update README.md
volodymyrss Jun 16, 2025
0ae47b1
values custom
Jun 24, 2025
b524464
change email
Jul 7, 2025
b5a8071
change email
Jul 7, 2025
e1b3112
rename iam
Jul 7, 2025
51214b5
rename db
Jul 7, 2025
b508a1c
add todo for bootstrap
Jul 7, 2025
ec8043a
add monitoring
Jul 7, 2025
232ec9e
add monitoring
Jul 7, 2025
8b8de6b
chart
Jul 14, 2025
06d7b82
set some values
Jul 14, 2025
635d83f
set some values
Jul 14, 2025
78f23db
Update vre/templates/reana-ingress.yaml
volodymyrss Jul 14, 2025
3617ba7
move provisioner
Jul 14, 2025
5cd257e
move provisioner, add chart version
Jul 14, 2025
0f35038
move provisioner, add chart version
Jul 14, 2025
b6c6eb9
change rucio base url
Jul 14, 2025
7d8f02a
change rucio base url
Jul 14, 2025
04213f9
disable admin
Jul 14, 2025
d85529f
set grafana
Jul 14, 2025
638a471
set grafana
Jul 14, 2025
5c08af4
change defaults
Jul 14, 2025
5d5d525
use custom reana
Jul 21, 2025
6fa246d
bump version
Jul 21, 2025
24145ce
bump version
Jul 21, 2025
e09e69f
bump version
Jul 21, 2025
43bdacf
improve backup
Jul 21, 2025
260f17b
bump version
Jul 21, 2025
0a56fec
bump chart
Jul 21, 2025
fbe2335
bump chart
Jul 21, 2025
58f908c
update readme a bit
Aug 4, 2025
7a0502f
remove hook
Aug 5, 2025
1cd5a9b
move to older reana
Sep 8, 2025
196afe1
bump chart version
Sep 15, 2025
bcc9927
Revert "move to older reana"
Sep 15, 2025
cc0ad3f
bump reana and chart
Sep 15, 2025
32decf0
bump reana and chart
Sep 15, 2025
e0ee31f
adjust reana version
Sep 15, 2025
1f2f475
increase chart version
Sep 15, 2025
fefb6e9
add dev reana
Sep 15, 2025
4a99571
add dev reana
Sep 15, 2025
c12d566
reverse debug in reana
Sep 15, 2025
96974fe
bump version
Sep 15, 2025
6f1db36
bump version
Sep 15, 2025
66c48f7
bump version
Sep 15, 2025
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
38 changes: 38 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Skaffold
on:
push:
paths:
- src/**
- .github/workflows/ci.yml
- action.yml
jobs:
pipeline:
name: Skaffold Pipeline
runs-on: ubuntu-20.04
steps:
- name: Checkout sources
uses: actions/checkout@v3

- name: Setup Minikube
uses: hiberbee/[email protected]

- name: Setup Helm
uses: hiberbee/[email protected]
with:
repository-config: test/repositories.yaml

# - name: Login to Docker Hub
# uses: docker/login-action@v1
# with:
# registry: ${{ secrets.DOCKER_REGISTRY }}
# username: ${{ secrets.DOCKER_USERNAME }}
# password: ${{ secrets.DOCKER_PASSWORD }}

- name: Run Skaffold pipeline as action
uses: hiberbee/[email protected]
with:
command: run
repository: ghcr.io/${{ github.repository }}

- name: Get Helm releases
run: helm list
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
vre/Chart.lock
vre/charts
vre/values-custom.yaml
16 changes: 16 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
repos:
- repo: https://github.com/codespell-project/codespell
rev: v2.3.0
hooks:
- id: codespell
additional_dependencies:
- tomli

- repo: https://github.com/norwoodj/helm-docs
rev: "v1.14.2"
hooks:
- id: helm-docs-built
args:
- "--chart-search-root=./vre"

#TODO: add kubeconform
15 changes: 15 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
up:
skaffold run

create-cluster:
kind create cluster --config=dev/kind-config.yaml


ingress:
kubectl apply -f https://kind.sigs.k8s.io/examples/ingress/deploy-ingress-nginx.yaml
kubectl wait --namespace ingress-nginx \
--for=condition=ready pod \
--selector=app.kubernetes.io/component=controller \
--timeout=90s

.PHONY: create-cluster ingress
51 changes: 49 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,49 @@
# helm-charts
VRE Helm charts repository
# VRE Helm charts repository

## Testing locally


### Setting up cluster


#### Create a cluster

We recommend using [kind](https://kind.sigs.k8s.io/) to test the charts locally. Chart operations are done using [Skaffold](https://skaffold.dev/):

```
$ kind create cluster --config dev/kind-config.yaml
```

#### Install an ingress controller

The easiest and production-like way to access local VRE deployment is by installing a simple ingress controller. Production clusters will almost always have only already included.

```
$ kubectl apply -f https://kind.sigs.k8s.io/examples/ingress/deploy-ingress-nginx.yaml
```

#### Customize local values

Even in a local cluster, you may want to use a real IAM instance. To do that, you will need to customize some secret values. You can do it by copying provided example:

```
$ cp vre/values-custom-example.yaml vre/values-custom.yaml
```

#### Deploy VRE

```
$ skaffold run
```


## Configuration

For complete list of helm chart values, see chart [doc](vre/README.md). These values give a lot of flexibility allow to customize the chart.

Some values almost certainly need to be set in every particular deployment. These values are provided in [vre/values-custom.yaml](vre/values-custom-example.yaml).

## Known issues

* rucio token expires before login to jupyterlab. It means that sometimes it is possible to access jupyterhub but not start session (which relies on token exchange). If you find yourself in this situation, try to relogin to jupyterhub, it is likely to fix the issue.

12 changes: 12 additions & 0 deletions TODO
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
add kind cluster


sync db from postgres

to postinstall:

./scripts/create-admin-user.sh etap cern-vre [email protected] tsdasdasd

set vre-admin-access-token

rucio token expires before auth is gone. need to renew it
11 changes: 11 additions & 0 deletions dev/kind-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
extraPortMappings:
- containerPort: 80
hostPort: 80
protocol: TCP
- containerPort: 443
hostPort: 443
protocol: TCP
14 changes: 14 additions & 0 deletions skaffold.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
apiVersion: skaffold/v4beta12
kind: Config
metadata:
name: cern-vre
deploy:
helm:
releases:
- name: cern-vre

Choose a reason for hiding this comment

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

maybe "escape-vre" is better, or even "my-escape-vre" as a default release name. Whatever this thing is, it won't actually be the CERN VRE :)

Copy link
Collaborator Author

@volodymyrss volodymyrss Jul 14, 2025

Choose a reason for hiding this comment

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

I see, interesting question.

For me, "VRE" is a generic term which I see throughout the related domains. So I assumed that name of the software product is "CERN VRE". Since it is a particular kind of a Virtual Research Environment, the kind made by CERN. See also the logo:

image.

It also coincides with the name of the CERN instance.

However, we have now ESCAPE VRE, CERN VRE, ETAP VRE, and I wonder.

@garciagenrique @Soap2G what do you think? Should "CERN" be anywhere in the name of the generic VRE chart?

Copy link
Member

Choose a reason for hiding this comment

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

Thanks for raising this point.
IMO, each VRE deployment should keep their institution or "brand". In the way I imagine things, we should aim for a common "helm base layer" (let's call it vre or escape-vre). Then, each of the specific installations (CERN, ET, etc) could name their respective inherited chart as they want :)

Copy link
Member

Choose a reason for hiding this comment

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

With respect to the logo @Soap2G was the master mind behind the design. If you like it, we can create an ET VRE one, or feel free to create one based on the cern-vre one :)

Choose a reason for hiding this comment

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

Suggested change
- name: cern-vre
- name: cern-vre # DO NOT CHANGE!

chartPath: vre
valuesFiles:
- vre/values.yaml
# copy vre/values-custom-copy.yaml to vre/values-custom.yaml, set the necessary values, and uncomment this line

Choose a reason for hiding this comment

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

Suggested change
# copy vre/values-custom-copy.yaml to vre/values-custom.yaml, set the necessary values, and uncomment this line
# copy vre/values-custom-example.yaml to vre/values-custom.yaml, set the necessary values, and uncomment this line

- vre/values-custom.yaml
version: 0.1.0-dev0
1 change: 1 addition & 0 deletions vre/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
values-custom.yaml
70 changes: 70 additions & 0 deletions vre/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
apiVersion: v2
name: cern-vre
version: 0.1.0-dev23
description: The Virtual Research Environment developed at CERN.>
keywords:
- jupyterhub
- rucio
- reana
home: https://vre-hub.github.io
sources:
- https://github.com/vre-hub/vre

dependencies:
- name: jupyterhub
version: 3.3.7
repository: https://hub.jupyter.org/helm-chart
condition: jupyterhub.enabled

- name: reana
#version: 0.95.0-alpha.2-6-g970d4b7
#version: 0.95.0-alpha.2
#version: 0.9.4
version: 0.9.4-1-gcd7dcb3
repository: https://volodymyrss.github.io/reana
#repository: https://reanahub.github.io/reana
condition: reana.enabled

- name: nfs-server-provisioner
condition: nfs-server-provisioner.enabled
version: 1.8.0
repository: https://kubernetes-sigs.github.io/nfs-ganesha-server-and-external-provisioner

# TODO: add prometheus and grafana

- name: grafana
condition: grafana.enabled
version: 9.2.2
repository: https://grafana.github.io/helm-charts

- name: prometheus
condition: prometheus.enabled
version: 27.20.0
repository: https://prometheus-community.github.io/helm-charts

- name: loki
condition: loki.enabled
version: 6.30.1
repository: https://grafana.github.io/helm-charts

- name: fluent-bit
version: 0.48.9
condition: fluent-bit.enabled
repository: https://fluent.github.io/helm-charts

# TODO: eventually add an integrated rucio chart, https://github.com/rucio/helm-charts/pull/217
# - name: rucio
# version:
# repository:
# condition: rucio.enabled
#
#


maintainers:
- name: The maintainer name (required for each maintainer)
email: [email protected]
url: A URL for the maintainer (optional for each maintainer)

icon: https://vre-hub.github.io/img/favicon.ico
appVersion: 0.1.0
Loading