Skip to content

Deployment Status

Giulio V edited this page Dec 19, 2025 · 3 revisions

Deployment Status

This page provides a comprehensive overview of the deployment status for all LINDAS components across the three environments (Test, Integration, Production).

For CI/CD pipeline details, see CI/CD Mechanisms.


Environment URLs

Environment LINDAS Portal Cube Creator Cube Validator LD Widget
Test https://test.lindas.admin.ch https://test.cube-creator.lindas.admin.ch - -
Integration https://int.lindas.admin.ch https://int.cube-creator.lindas.admin.ch - -
Production https://lindas.admin.ch https://cube-creator.lindas.admin.ch https://cube-validator.lindas.admin.ch https://widget.lindas.admin.ch

Additional Production Domains

The production environment serves the following specialized domains:

  • ld.admin.ch - Main Linked Data portal
  • schema.ld.admin.ch - Schema definitions
  • culture.ld.admin.ch - Cultural data
  • energy.ld.admin.ch - Energy data
  • education.ld.admin.ch - Education data
  • agriculture.ld.admin.ch - Agricultural data
  • environment.ld.admin.ch - Environmental data
  • finance.ld.admin.ch - Financial data
  • register.ld.admin.ch - Register data
  • politics.ld.admin.ch - Political data
  • health.ld.admin.ch - Health data
  • communication.ld.admin.ch - Communication data
  • transport.ld.admin.ch - Transport data
  • population.ld.admin.ch - Population data
  • ld.zh.ch - Canton Zurich data

Architecture Diagrams

Deployment Overview

This diagram shows the overall deployment architecture from GitHub repositories to Kubernetes clusters.

Deployment Overview

View Mermaid Source
flowchart TB
    subgraph GITHUB["GitHub Repositories"]
        direction TB
        CC["lindas-cube-creator"]
        AC["lindas-admin-ch"]
        CV["lindas-cube-validator"]
        LW["lindas-ld-widget"]
        VP["lindas-varnish-post"]
        CSC["lindas-clear-sparql-cache"]
        SL["lindas-stack-libraries"]
        B59["lindas-barnard59"]
        TF["lindas-trifid"]
        CL["lindas-cube-link"]
    end

    subgraph CICD["GitHub Actions CI/CD"]
        direction TB
        BUILD["Build & Test"]
        DOCKER["Docker Build"]
        NPM["NPM Publish"]
    end

    subgraph REGISTRIES["Container Registries"]
        direction TB
        GHCR["ghcr.io/swissfederalarchives"]
        ZAZUKO["ghcr.io/zazuko"]
        GITLAB["registry.ldbar.ch"]
    end

    subgraph GITOPS["GitOps - FluxCD"]
        direction TB
        GITOPSREPO["gitops-main"]
        FLUX["FluxCD Controllers"]
    end

    subgraph K8S["Kubernetes Clusters"]
        direction TB
        subgraph SBAR["sbar cluster"]
            TEST["zazuko-test"]
            INT["zazuko-int"]
            PROD["zazuko-prod"]
        end
        subgraph PROD1["c-sbar-prod1 cluster"]
            CVNS["cube-validator"]
            LDWNS["ld-widget"]
            SD["stardog-*"]
        end
    end

    GITHUB --> CICD
    CICD --> BUILD
    BUILD --> DOCKER
    BUILD --> NPM
    DOCKER --> REGISTRIES
    NPM -->|"@lindas/* packages"| NPMREG["npm registry"]
    REGISTRIES --> GITOPS
    GITOPS --> FLUX
    FLUX --> K8S
Loading

CI/CD Pipeline Flow

This diagram illustrates the CI/CD pipeline stages from code commit to deployment.

CI/CD Pipeline Flow

View Mermaid Source
flowchart LR
    subgraph TRIGGER["Trigger"]
        PUSH["Push to Branch"]
        PR["Pull Request"]
        TAG["Git Tag"]
    end

    subgraph LINT["Code Quality"]
        ESLINT["ESLint"]
        TYPECHECK["TypeScript Check"]
        AUDIT["npm audit"]
    end

    subgraph TEST["Testing"]
        UNIT["Unit Tests"]
        E2E["E2E Tests"]
        INTEG["Integration Tests"]
    end

    subgraph BUILD["Build"]
        COMPILE["Compile/Bundle"]
        DOCKERBUILD["Docker Build"]
        SIGN["Image Signing"]
    end

    subgraph PUBLISH["Publish"]
        GHCR["Push to GHCR"]
        NPMREG["npm publish"]
        SENTRY["Sentry Release"]
    end

    subgraph DEPLOY["Deploy via GitOps"]
        IRC["Image Reflector"]
        IAC["Image Automation"]
        SYNC["Flux Sync"]
    end

    TRIGGER --> LINT
    LINT --> TEST
    TEST --> BUILD
    BUILD --> PUBLISH
    PUBLISH --> DEPLOY

    PUSH -->|"develop/main"| LINT
    PR -->|"feature/*"| LINT
    TAG -->|"v*.*.*"| BUILD
Loading

GitOps Deployment Flow

This diagram shows how FluxCD manages deployments from container registries to Kubernetes environments.

GitOps Flow

View Mermaid Source
flowchart TB
    subgraph GHCR["Container Registry (GHCR)"]
        IMG_TEST["test_* images"]
        IMG_INT["pipeline-* images"]
        IMG_PROD["prod_* / v*.*.* images"]
    end

    subgraph FLUX["FluxCD Controllers"]
        IRC["Image Reflector Controller<br/>Polls every 5 min"]
        IAC["Image Automation Controller"]
        SC["Source Controller"]
        KC["Kustomize Controller"]
        HC["Helm Controller"]
    end

    subgraph GITOPS["GitOps Repository"]
        YAML["Deployment YAMLs"]
        HELM["Helm Releases"]
        SECRETS["Sealed Secrets"]
    end

    subgraph K8S_TEST["TEST Environment"]
        TRIFID_T["Trifid"]
        CC_T["Cube Creator"]
        VARNISH_T["Varnish"]
    end

    subgraph K8S_INT["INT Environment"]
        TRIFID_I["Trifid"]
        CC_I["Cube Creator"]
        VARNISH_I["Varnish"]
    end

    subgraph K8S_PROD["PROD Environment"]
        TRIFID_P["Trifid"]
        CC_P["Cube Creator"]
        VARNISH_P["Varnish"]
        CV_P["Cube Validator"]
        LDW_P["LD Widget"]
    end

    GHCR --> IRC
    IRC -->|"Detect new images"| IAC
    IAC -->|"Update image tags"| GITOPS
    GITOPS --> SC
    SC --> KC
    SC --> HC
    KC --> K8S_TEST
    KC --> K8S_INT
    KC --> K8S_PROD
    HC --> K8S_PROD

    IMG_TEST -.->|"Auto-update"| K8S_TEST
    IMG_INT -.->|"Auto-update"| K8S_INT
    IMG_PROD -.->|"Manual update"| K8S_PROD
Loading

Image Promotion Flow

This diagram shows how container images are promoted across environments.

Image Promotion

View Mermaid Source
flowchart LR
    subgraph DEV["Development"]
        CODE["Code Changes"]
        PR["Pull Request"]
        MERGE["Merge to main"]
    end

    subgraph TEST_ENV["TEST Environment"]
        TEST_IMG["latest tag<br/>imagePullPolicy: Always"]
        TEST_DEPLOY["Auto-deploy<br/>on every push"]
    end

    subgraph INT_ENV["INT Environment"]
        INT_IMG["pipeline-master-*<br/>imagePullPolicy: IfNotPresent"]
        INT_DEPLOY["Auto-deploy<br/>via FluxCD"]
    end

    subgraph PROD_ENV["PROD Environment"]
        PROD_IMG["v*.*.* or prod_*<br/>imagePullPolicy: IfNotPresent"]
        PROD_DEPLOY["Manual deploy<br/>Git commit required"]
    end

    CODE --> PR
    PR -->|"Tests pass"| MERGE
    MERGE -->|"Build & Push"| TEST_IMG
    TEST_IMG --> TEST_DEPLOY

    MERGE -->|"Tagged build"| INT_IMG
    INT_IMG --> INT_DEPLOY

    INT_DEPLOY -->|"QA Approved"| PROD_IMG
    PROD_IMG -->|"Manual promotion"| PROD_DEPLOY
Loading

Data Pipeline Integration

This diagram shows how data pipelines interact with the CI/CD process and deployed services.

Data Pipeline CI/CD

View Mermaid Source
flowchart TB
    subgraph USER["User Interaction"]
        UPLOAD["Upload CSV/Data"]
        CONFIG["Configure Mapping"]
        TRIGGER["Trigger Pipeline"]
    end

    subgraph CC_UI["Cube Creator UI"]
        PROJ["Create Project"]
        MAP["Define Mappings"]
        PREVIEW["Preview Data"]
    end

    subgraph CC_API["Cube Creator API"]
        STORE["Store to S3/MinIO"]
        GITLAB_TRIGGER["Trigger GitLab CI"]
        STATUS["Monitor Status"]
    end

    subgraph GITLAB["GitLab CI Pipeline"]
        FETCH["Fetch Data from S3"]
        TRANSFORM["barnard59 Transform<br/>CSV to RDF"]
        VALIDATE["SHACL Validation"]
        PUBLISH["Publish to Stardog"]
    end

    subgraph STARDOG["Stardog Triplestore"]
        SD_TEST["stardog-test"]
        SD_INT["stardog-int"]
        SD_PROD["stardog-prod"]
    end

    subgraph CACHE["Cache Layer"]
        PURGE["clear-sparql-cache<br/>CronJob every 2min"]
        VARNISH["Varnish Cache"]
    end

    subgraph TRIFID["Trifid Portal"]
        QUERY["SPARQL Queries"]
        BROWSE["Browse Entities"]
    end

    USER --> CC_UI
    CC_UI --> CC_API
    CC_API --> GITLAB
    GITLAB --> STARDOG
    STARDOG --> CACHE
    CACHE --> TRIFID

    PUBLISH -->|"INT"| SD_INT
    PUBLISH -->|"PROD"| SD_PROD
    PUBLISH -->|"TEST"| SD_TEST

    PURGE -->|"Detect changes"| VARNISH
Loading

Deployed Services

lindas-admin-ch (Trifid)

LINDAS portal based on Trifid for browsing and querying linked data.

Environment Image Repository Image Tag Helm Chart
Test ghcr.io/swissfederalarchives/lindas-admin-ch test_2025-12-15_102219 trifid 2.0.2
Integration ghcr.io/swissfederalarchives/lindas-admin-ch int_2025-10-14_112922 trifid 2.0.2
Production ghcr.io/swissfederalarchives/lindas-admin-ch prod_2025-10-14_112954 trifid 2.0.2

Local Package Version: 0.14.0

Key Dependencies:

  • @lindas/trifid ^6.0.2
  • @lindas/trifid-core ^6.0.0
  • Various trifid plugins (entity-renderer, ckan, graph-explorer, yasgui, etc.)

GitOps Location: gitops-main/clusters/sbar/zazuko/{env}/lindas/release.yaml


lindas-cube-creator

Web application for creating and managing RDF data cubes.

API Component

Environment Image Repository Image Tag Replicas
Test ghcr.io/swissfederalarchives/lindas-cube-creator-api latest 3
Integration ghcr.io/swissfederalarchives/lindas-cube-creator-api pipeline-master-19136902977 3
Production ghcr.io/zazuko/cube-creator-api v2.4.2 3

App Component (UI)

Environment Image Repository Image Tag Replicas
Test ghcr.io/swissfederalarchives/lindas-cube-creator-app latest 3
Integration ghcr.io/swissfederalarchives/lindas-cube-creator-app pipeline-master-19136902971 3
Production ghcr.io/zazuko/cube-creator-app v1.15.0 3

Note: Test and Integration use LINDAS fork images, while Production uses original Zazuko images.

GitOps Location: gitops-main/clusters/sbar/zazuko/{env}/cube-creator/{api,app}/deployment.yaml


lindas-cube-validator

Angular-based web application for validating RDF data cubes against SHACL shapes.

Cluster Image Repository Image Tag
sbar (Production) registry.ldbar.ch/zazuko/cube-validator branch-main-20240701220857
c-sbar-prod1 (Production) registry.ldbar.ch/zazuko/cube-validator branch-main-20240701220857

Key Dependencies:

  • Angular 19.x
  • @lindas/env ^3.0.4
  • @lindas/formats-lazy ^1.0.2
  • @lindas/shacl-playground ^3.0.1

Note: Cube Validator is deployed only to production environments on both clusters.

GitOps Location:

  • gitops-main/clusters/sbar/zazuko/cube-validator/deployment.yaml
  • gitops-main/clusters/c-sbar-prod1/zazuko/cube-validator/deployment.yaml

lindas-varnish-post (Cache Layer)

Varnish-based HTTP cache for LINDAS SPARQL endpoints.

Environment Image Repository Image Tag Cache Size
Test ghcr.io/swissfederalarchives/lindas-varnish-post v2.8.0 9GB
Integration ghcr.io/zazuko/varnish-post v2.8.0 9GB
Production ghcr.io/zazuko/varnish-post v2.8.0 39GB

Local Package Version: 2.8.0

Configuration:

  • Backend timeout: 600s
  • Cache TTL: 23h
  • Error caching disabled (30s TTL for errors)
  • Prometheus metrics enabled on port 9131

GitOps Location: gitops-main/clusters/sbar/zazuko/{env}/varnish/deployment.yaml


lindas-ld-widget

Embeddable widget for displaying linked data.

Cluster Image Repository Image Tag
sbar ghcr.io/zazuko/ld-widget pipeline-main-8245427970
c-sbar-prod1 ghcr.io/zazuko/ld-widget pipeline-main-8245427970

Note: LD Widget is deployed only to production on both clusters.

GitOps Location:

  • gitops-main/clusters/sbar/zazuko/ld-widget/deployment.yaml
  • gitops-main/clusters/c-sbar-prod1/zazuko/ld-widget/deployment.yaml

clear-sparql-cache-endpoint (CronJob)

Automated cache purging service that runs as a CronJob.

Environment Image Schedule
Test ghcr.io/zazuko/clear-sparql-cache-endpoint:v0.3.2 Every 2 minutes
Integration ghcr.io/zazuko/clear-sparql-cache-endpoint:v0.3.2 Every 2 minutes
Production ghcr.io/zazuko/clear-sparql-cache-endpoint:v0.3.2 Every 2 minutes

Local Package Version: 0.3.2

Purpose: Monitors SPARQL endpoint for data changes and triggers Varnish cache purge when needed.

GitOps Location: gitops-main/clusters/sbar/zazuko/{env}/varnish/purge.yaml


NPM Package Libraries (Not Deployed as Services)

These repositories contain NPM packages that are used as dependencies by the deployed services.

lindas-stack-libraries

Monorepo containing core RDF libraries for the LINDAS stack.

Property Value
Root Version 0.0.4
Package Count 23 packages
Build System Turbo

Packages:

  • @lindas/clownface - RDF graph traversal
  • @lindas/env, @lindas/env-core, @lindas/env-node - Environment utilities
  • @lindas/formats-lazy - Lazy RDF format loading
  • @lindas/prefixes, @lindas/rdf-vocabularies - RDF vocabulary helpers
  • @lindas/shacl-playground, @lindas/shacl-test - SHACL validation tools
  • @lindas/yasgui, @lindas/yasqe, @lindas/yasr - SPARQL query UI components
  • And more...

lindas-barnard59

Monorepo for Linked Data pipeline tools.

Property Value
Root Version 1.1.4
Package Count 15 packages

Packages:

  • @lindas/barnard59 - Main CLI
  • @lindas/barnard59-core, @lindas/barnard59-base - Core pipeline functionality
  • @lindas/barnard59-cube - Cube creation operations
  • @lindas/barnard59-csvw - CSV to RDF transformation
  • @lindas/barnard59-sparql - SPARQL operations
  • @lindas/barnard59-http, @lindas/barnard59-s3, @lindas/barnard59-ftp - I/O operations
  • @lindas/barnard59-shacl, @lindas/barnard59-validation - Validation tools
  • And more...

lindas-trifid

Monorepo for Trifid Linked Data browser and its plugins.

Property Value
Package Count 12 packages

Packages:

  • @lindas/trifid - Main Trifid application
  • @lindas/trifid-core - Core framework
  • @lindas/trifid-entity-renderer - Entity display
  • @lindas/trifid-plugin-ckan - CKAN integration
  • @lindas/trifid-plugin-graph-explorer - Graph visualization
  • @lindas/trifid-plugin-yasgui - SPARQL query interface
  • @lindas/trifid-plugin-sparql-proxy - SPARQL proxy with caching
  • @lindas/trifid-plugin-spex - SPARQL explorer
  • And more...

lindas-cube-link

SHACL validation schemas for LINDAS cubes.

Property Value
Package Name lindas-cube-link
Current Version 0.2.4
Repository https://github.com/SwissFederalArchives/lindas-cube-link
Type NPM Package (private)

Key Dependencies:

  • @lindas/trifid ^6.0.1
  • Various @lindas/barnard59-* packages for testing

Cluster Infrastructure

Clusters

Cluster Purpose Components
sbar Main application cluster Trifid, Cube Creator, Varnish, LD Widget, Cube Validator
c-sbar-prod1 Production infrastructure Cube Validator, LD Widget, Stardog instances

Namespaces

Namespace Environment Components
zazuko-test Test Trifid, Cube Creator, Varnish, Cache Purge
zazuko-int Integration Trifid, Cube Creator, Varnish, Cache Purge
zazuko-prod Production Trifid, Cube Creator, Varnish, Cache Purge
zazuko-cube-validator Production Cube Validator
zazuko-ld-widget Production LD Widget

Stardog Instances

Instance Namespace Purpose
stardog-test stardog-test Test environment triplestore
stardog-int stardog-int Integration environment triplestore
stardog-prod stardog-prod Production environment triplestore

Deployment Process

All deployments are managed via FluxCD GitOps. See CI/CD Mechanisms for detailed pipeline information.

Image Policies

Environment Strategy Pull Policy
Test latest tag Always
Integration Pipeline-generated tags (pipeline-master-{buildId}) IfNotPresent
Production Semantic versions (v2.4.2) or dated tags (prod_YYYY-MM-DD) IfNotPresent

Image Automation

  • Image Reflector Controller: Polls container registries every 5 minutes
  • Image Automation Controller: Updates Git with new image tags
  • INT/TEST: Automatic updates enabled
  • PROD: Manual updates via Git commits (automation suspended)

Resource Allocation

Cube Creator

Component CPU Request CPU Limit Memory Request Memory Limit
API 200m 500m 500Mi 1000Mi
App 100m 200m 50Mi 100Mi

Varnish Cache

Component CPU Request CPU Limit Memory Request Memory Limit
Varnish 200m 400m 256Mi 1Gi
HAProxy Purge 100m 200m 128Mi 256Mi

Cube Validator / LD Widget

Component CPU Request CPU Limit Memory Request Memory Limit
Validator 200m 200m 256Mi 256Mi
LD Widget 200m 200m 256Mi 256Mi

Monitoring

  • Prometheus: Metrics collection from Varnish (port 9131) and other services
  • Grafana: Dashboard visualization (available on sbar cluster)
  • Graylog: Log aggregation (see Graylog Guide)

Related Documentation

Clone this wiki locally