Skip to content
Domenic Gosein edited this page Jul 13, 2023 · 16 revisions

CERN VRE Technical Documentation

cern-vre-logo

The following is the technical documentation of the CERN Virtual Research Environment, including CERN-specific matters, which are marked accordingly.

TL;TR

In order to create or interact with this cluster you'll need: kubectl, terraform, helm and kubeseal installed locally.

Further, you'll need the OpenStack RC configuration and the kubeconfig (once the cluster has been created).

Development Workflow

Changes are developed and tested in the cern-vre-dev cluster and later transferred to the cern-vre production cluster, following the below workflow:

---
title: CERN VRE Dev Workflow
---
flowchart LR
    cern-vre-dev --> cbd(Create brach)
    cbd --> cd(commit changes)
    cd --> prd(push and open pr)
    prd --> ad(review and approval)
    ad --> md(merge)
    md --> cern-vre-dev
    cern-vre-dev --> cern-vre
    cern-vre --> cb(Create brach)
    cb --> c(commit changes)
    c --> pr(push and open pr)
    pr --> a(review and approval)
    a --> m(merge)

    class cbd,cd,prd,ad,md,cern-vre-dev someclass;
    classDef someclass fill:#99f,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
Loading

Repository Structure

The repo is designed to be a Monorepo, containing all relevant files to this project:

  • .github: Workflows
  • containers: automated build of Docker images for operations of the VRE cluster.
  • infrastructure:
    • cluster
      • flux-v2: Flux files. The main software is applied to the cluster via flux in a standard gitops way. Whenever a commit is done on the main branch of this repository, the changes are automatically deployed and propagated to the VE cluster.
      • manual: initial manual deployment to test
      • tf: Terraform files. Some VRE utilities are applied with Terraform, such as the cluster creation.
    • scripts: bash scripts to create the cluster, to create secrets, to validate flux, etc.
    • secrets: all secrets encrypted with sealed secrets
Clone this wiki locally