Skip to main content
Version: 1.35.1

Requirements

Software Requirements

To install a SIGHUP Distribution kubernetes cluster, you first need to install furyctl, the command line companion to manage the full lifecycle of your SIGHUP Distribution clusters.

furyctl automates the usage of the components (installers and modules) of the SIGHUP Distribution to make the creation of clusters easier, straightforward and repeatable.

All the options for creating the cluster are defined in a single configuration file.

SD is a modular and composable system, so hardware requirements ultimately depend on the modules and configuration chosen. Having said that, for a production-grade cluster a good starting point would be:

A SD production grade cluster will be composed of 3 node pools:

  • Control Plane: 3 nodes in HA.
  • Infrastructure: 3 nodes dedicated to running the infrastructural components of SD (monitoring, logging, policy enforcement, etc., i.e. the modules).
  • Workers: where the application workload will run. This is up to you.
  • Load Balancers (optional): for on-premises installations, 2 load balancers in HA can be deployed to forward traffic to the control plane and the ingress controllers running in the infrastructure nodes.
warning

Support for the ARM platform is still in beta status, the Load Balancers managed by furyctl are not currently supported for RHEL and RHEL derivatives running on ARM.

Please use a different OS for the Load Balancers VMs (or disable them and create your own load balancer) if you want to use an ARM-based host.

Nodes minimum sizing

Node RoleApplicable ProvidersCPU (cores)RAM (GB)Disk (GB)Qty.
Control PlaneOnPremises28503
InfrastructureOnPremises, EKSCluster, KFDDistribution416503
Load BalancerOnPremises (optional)22502

Storage

Some modules rely on persistent storage via PersistentVolumeClaims, by default (but configurable) the following capacity will be used:

DescriptionSize (GB)
Prometheus (metrics storage)150
MinIO Monitoring (metrics storage, 20GBx6)120
MinIO Logging (logs storage, 20GBx6)120
OpenSearch (logs storage)30
MinIO Tracing (traces storage)120
Total540

Network Access

furyctl

furyctl downloads all the dependencies that it needs to work (binaries like kubectl, kustomize, helm, ansible, the distribution modules, the distribution installers, and the distribution itself) automatically for you.

To download these dependencies, the machine running furyctl needs to reach the following Internet endpoints:

Endpoint / KindEKSClusterKFDDistributionOnPremisesImmutable
ansible-galaxy-ng.s3.dualstack.us-east-1.amazonaws.com:443
api.github.com:443
dl.k8s.io:443
galaxy.ansible.com:443
get.helm.sh:443
github.com:443
mise-versions.jdx.dev:443
pypi.org:443
registry.opentofu.org:443
release-assets.githubusercontent.com:443
stable.release.sighup-prod.sighup.io:443
tuf-repo-cdn.sigstore.dev:443
tip

furyctl has a feature to download all the dependencies and create a .tar.gz file with them from an Internet-connected machine, that can be extracted on another air-gapped target machine where furyctl will be running and contacting the cluster nodes. Read more in the Air Gapped Bundle CLI reference.

Cluster Nodes

The cluster nodes will need access to the Internet to download additional software needed to run Kubernetes itself and container images for running all the distribution modules.

Endpoint / KindEKSClusterKFDDistributionOnPremisesImmutable
registry.sighup.io:443
OS packages repositories
stable.release.sighup-prod.sighup.io:443
api.github.com:443
github.com:443
tip

You can configure the cluster to use your own registry mirror, see the .spec.distribution.common.registry configuration parameter of your cluster Kind (EKSCluster, KFDDistribution, OnPremises) and the spec.kubernetes.advanced.registry parameter for OnPremises and Immutable.