Guides
Guides

Crafting Express

Crafting Express edition is a self-serving installable version of the Crafting system with most of the features, aimed for quick trial. Because the full featured Crafting system is designed for Enterprise use, the installation/operation is complicated due to high standard of reliability, scalability, security etc., Crafting Express edition is specially packaged for quick trial on existing Kubernetes clusters with almost no dependencies outside the cluster.

🚧

Not for Production Use

Crafting Express is for trial only. It's not designed for high availability, scalability and product-grade security requirements. The performance is not guaranteed as it's related to the Kubernetes cluster provided by the user.

For production use, please seek for either Crafting SaaS or Crafting Self-hosted.

Hosting

Crafting Express edition can be installed and self-contained in a single Kubernetes namespace without requiring cluster-scoped permissions or access. It doesn't use other resources from a cloud provider, including Kubernetes Ingress or Load Balancer Service.

During the installation process, it will register the installation on Crafting Express Proxy (a service hosted and operated by Crafting), so the user can use dedicated DNS domains to access the system without tackling the complexity of managing DNS domains, TLS certificates, etc.

The Crafting system heavily rely on the performance of the nodes in the Kubernetes cluster to provide good development experience. During the installation process, it will performance certain level of performance evaluation to help you understand whether your cluster is able to provide reasonable experience.

Crafting recommends GKE or EKS clusters.

Prerequisites

As Crafting demands high performance of the underlying Kubernetes cluster, it requires dedicated nodes for Crafting Control Plane, Workspaces, and Dependencies + Containers. The nodes in the cluster must be prepared and labeled:

  • Min 2 nodes with 2 vCPUs and 8GB memory or more for Crafting Control Plane, labeled with
    • schedule.sandbox/ctl=allow
  • 1 node or more (prefer 2 or more) with 4 vCPUs and 16GB memory or more for Dependencies + Containers, labeled with
    • schedule.sandbox/user=allow
    • schedule.sandbox/svc=allow
  • 1 node or more (prefer 2 or more) with 8 fast CPUs and 32GB memory or more for Workspaces, labeled with
    • schedule.sandbox/user=allow
    • schedule.sandbox/ws=allow
  • At least 1 StorageClass that supports attaching and re-attaching persisted volumes across different nodes and with allowVolumeExpansion = true;
  • Outbound Internet access;
  • Tools kubectl and helm configured and ready to use during installation.

Notes for GKE

  • Version 1.22 or later;
  • Minimum 2 x e2-standard-2 for control plane;
  • Minimum 2 x e2-standard-8 for dependencies and containers;
  • Minimum 2 x c2-standard-8 for workspaces;
  • Use StorageClass standard-rwo which is 4-8x faster than the default standard;

Notes for EKS

  • Version 1.22 or later;
  • Minimum 2 x t3.large for control plane;
  • Minimum 2 x t3.xlarge for dependencies and containers;
  • Minimum 2 x m6i.2xlarge for workspaces;
  • The default gp2 storage class has allowVolumeExpansion disabled. It can be enabled by simply edit the storage class, e.g. kubectl edit storageclass gp2. However, creating a gp3 based storage class using EBS CSI Driver is highly recommended;
  • Make sure all the nodes have EBS optimized enabled (unfortunately, it's disabled by default in most cases) as it will significantly increase disk I/O performance.

Region

It's recommended using us-west region for lower latency as it's closest to the Crafting Express Proxy.

Installation

First, install the Crafting Admin CLI (csctl):

curl -sSfL https://sandboxes.cloud/sh/install-csctl | bash

Use one command to install (make sure kubectl and helm are ready):

csctl express install

The command will guide through the whole process, during which, it will ask for a name to register and this name will be used to derive the base DNS of the installation. Once completed, the WebConsole URL will be printed, and login with the admin user's email used during the registration process.