https://github.com/deepsquare-io/clusterfactory
Kubernetes-based infrastructure orchestration tool that automate the process of deploying, managing and monitoring compute-optimized clusters from bare metal servers to VMs and containers.
https://github.com/deepsquare-io/clusterfactory
argocd clusters helm k8s kubernetes
Last synced: 11 months ago
JSON representation
Kubernetes-based infrastructure orchestration tool that automate the process of deploying, managing and monitoring compute-optimized clusters from bare metal servers to VMs and containers.
- Host: GitHub
- URL: https://github.com/deepsquare-io/clusterfactory
- Owner: deepsquare-io
- License: apache-2.0
- Created: 2022-03-15T13:55:52.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-10-30T05:27:18.000Z (over 1 year ago)
- Last Synced: 2024-10-30T08:36:28.936Z (over 1 year ago)
- Topics: argocd, clusters, helm, k8s, kubernetes
- Language: HCL
- Homepage: https://docs.clusterfactory.io
- Size: 22.4 MB
- Stars: 31
- Watchers: 7
- Forks: 11
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# ClusterFactory
## Overview
This repository is where [SquareFactory](https://www.squarefactory.io) develops ClusterFactory, the Kubernetes-based infrastructure orchestrator together with the community. ClusterFactory brings together best-in-class solutions from the HPC, Cloud, and DevOps industries to manage a cluster in a declarative way in combination with the GitOps practice.
## Key features
- Production-ready vanilla upstream [Kubernetes](https://docs.clusterfactory.io/docs/main-concepts/k0s)
- Easy deploy, backup, restore, and update with [cfctl](https://docs.clusterfactory.io/docs/reference/cfctl)
- Scalable from single node to large, high-available clusters
- GitOps-enabled with [ArgoCD](https://docs.clusterfactory.io/docs/main-concepts/gitops/argocd) and [Sealed Secrets](https://docs.clusterfactory.io/docs/main-concepts/gitops/sealed-secrets)
- VM workloads with KubeVirt
- Bare-metal workloads with [Slurm](https://docs.clusterfactory.io/docs/main-concepts/apps/slurm)
- Bare-metal provisioning with [Grendel](https://docs.clusterfactory.io/docs/main-concepts/apps/grendel)
- Supports CNI plugins with [Multus CNI](https://docs.clusterfactory.io/docs/main-concepts/core-network/multus-cni)
- TLS/SSL certificates management with [cert-manager](https://docs.clusterfactory.io/docs/main-concepts/gitops/cert-manager)
- Mirror of DeepSquare's software library (end user software) by using [CVMFS Stratum 1](https://docs.clusterfactory.io/docs/main-concepts/apps/cvmfs)
- A web-based HPC user portal Open Ondemand
- Monitoring stack (Grafana, Prometheus with ready-to-use exporters)
- Easiest way to join the [DeepSquare](https://deepsquare.io) Grid
## Getting started
If you'd like to try ClusterFactory, you should start by reading our [Quick Start Guide](https://docs.clusterfactory.io/docs/getting-started/requirements-recommendations) and our [documentation](https://docs.clusterfactory.io/docs/overview/welcome)!
## Join the Community
- [Community Discord](https://discord.gg/zt4GF5HYHX) - Request for support and help from the ClusterFactory community.
- [GitHub Issues](https://github.com/deepsquare-io/ClusterFactory/issues) - Submit your issues and feature requests via GitHub.
We welcome your help in building ClusterFactory! If you are interested, we invite you to check
out the [Contributing Guide](./CONTRIBUTING.md).
## Motivation
ClusterFactory makes the process of deploying a full fledge HPC cluster and join the [DeepSquare](https://deepsquare.io) Grid fast and easy.
We believe that **flexibity**, **repeatability**, **availability** and **ease of use** should be prioritized
for managing and scaling HPC clusters.
ClusterFactory has been developed to be:
- **Performance-oriented**: Integrates a key-in-hand HPC stack including Slurm, MPI, DFS, etc.
- **Highly configurable**: With Helm, all configuration is done in a single `values.yaml` file.
- **Repeatable**: With Argo CD following GitOps practices, all states are specified declaratively and saved in a Git repository.
- **Highly available**: With Kubernetes, container scheduling is automatically ensured and easy to set up.
- **Simple**: A single descriptive YAML per application, with Argo CD to automatically updates the application.
- **Long-term maintainability**: Easy to deploy, update, backup and restore with K0s.
## Documentations to help you deploy
- [Kubernetes Documentation (not going to lie, you're gonna need it)](https://kubernetes.io/docs/concepts/)
- [Helm Values Files](https://helm.sh/docs/chart_template_guide/values_files/)
- [K0s Configuration](https://docs.k0sproject.io/v1.23.8+k0s.0/configuration/)
- [Cert-Manager Issuers Configuration](https://cert-manager.io/docs/configuration/)
- [Multus CNI Quickstart](https://github.com/k8snetworkplumbingwg/multus-cni/blob/master/docs/quickstart.md)
- [CNI Plugins Overview](https://www.cni.dev/plugins/current/)
- [KubeVirt User Guide](https://kubevirt.io/user-guide/)
- [Argo CD Application YAML](https://github.com/argoproj/argo-cd/blob/master/docs/operator-manual/application.yaml)
- [Traefik Ingress Routes](https://doc.traefik.io/traefik/routing/providers/kubernetes-crd/)
- [Traefik Ingress](https://doc.traefik.io/traefik/routing/providers/kubernetes-ingress/)
## LICENSE
See the [LICENSE file](./LICENSE).