Code Monkey home page Code Monkey logo

workspace's Introduction

Workspace Building Block

Note

Status: initialized docs from template

workspace's People

Contributors

achtsnits avatar

Watchers

Angelos Tzotsos avatar Stephan Meißl avatar Fabian Schindler avatar Fabrice Brito avatar Garin avatar

workspace's Issues

Storage Layer UI

Offer end-users a consistent and comprehensive view of their storage space as exposed via Storage Layer API specification.

Based on fork of https://github.com/filebrowser/filebrowser.

  • adapt sharing logic incl. presigned urls
  • create custom branding
  • reflect read-only mode for content in UI
  • connect to Storage Controller for dynamically build root with connected workspace buckets (injected via config)
  • bundle together with Storage Layer microservice

Storage Layer API implementation

Implement Storage Layer API specification.

Based on fork of https://github.com/filebrowser/filebrowser.

  • replace local filesystem with s3 filesystem
  • dynamically build root with connected workspace buckets (injected via config)
  • bootstrap setup enabling read-only mode for content
  • use proxy-header auth method for above bootstrap setup
  • provide presigned url for selected content instead of proxying content as download
  • adapt sharing capabilities to receive temporary link pointing to selected content
  • create helm chart packaging bootstrap setup as additional init-container
  • manually deploy on eoepca demo cluster with static setup for sign-off

Workspace CRD

Define Workspace CRD specification allowing the Workspace controller to:

  • Establish a dedicated namespace for each project/user in the Host Kubernetes cluster.
  • Apply Kubernetes policies such as ResourceQuota, LimitRange, and NetworkPolicy to the namespace.
  • Deploy a vCluster with best-practice configurations within the namespace.
  • Create a new Git repository (or a folder in an existing Git repository, depending on the global setup) to store the desired manifests for - Workspace Services to be reconciled through Flux GitOps principles.
  • Connect Flux to reconcile the Git repository (or folder) with the vCluster.
  • Implement Kubernetes Validating Webhooks to enforce bucket creation policies, such as maximum number and size, and naming pattern conventions, within the namespace.

Storage Layer API specification

Define facade API facilitating a logical view on all physical storage and also the management of data itself.

Physical storage may either be dynamically provisioned (see Storage CRDs) or linked to existing.

Allow users to search and browse through the content of the storage buckets connected to a given workspace using directory-based file system semantics.

Allow sharing of specific content via pre-signed URLs, enabling direct HTTP access without requiring user authentication.

Workspace Controller

Reconcile Workspace CRDs and expose:

  • vCluster credentials for direct “virtual” Kubernetes cluster access,
  • Git settings used for Flux,
  • The current reconciliation state.

Storage CRD

Define Storage CRD specification allowing the Storage controller to:

  • Establish a dedicated bucket or connect a federated bucket.
  • Configure bucket access and CORS policies for the bucket.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.