Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Sandbox] Cozystack #322

Open
2 tasks done
tym83 opened this issue Jan 9, 2025 · 0 comments
Open
2 tasks done

[Sandbox] Cozystack #322

tym83 opened this issue Jan 9, 2025 · 0 comments
Labels
New New Application

Comments

@tym83
Copy link

tym83 commented Jan 9, 2025

Application contact emails

[email protected], [email protected], [email protected]

Project Summary

Cloud platform and framework (PaaS) for providing internal and external users with managed K8s, databases and services on bare metal

Project Description

Cozystack is a lightweight and fully functional platform for building private clouds in medium and large enterprises, as well as providing Platform as a Service (PaaS) solutions for hosting providers on bare-metal. It helps to provide managed applications, K8s and databases for internal and external customers or users. Cozystack is a software product based on the best Open Source components from cloud native ecosystem most liked by engineers (Kubernetes, FluxCD, CNPG, KubeVirt, Cilium, Grafana, MetalLB, etc. Cozystack significantly reduces time to market and provide an exciting developer experience.

This is one of our community users feedback:

"Cozystack has done a great job at marrying applications with the rest of the K8s stack. Before, every time I installed Kubernetes I basically didn't know what to do with it after that. There's a ton of ways to install K8s quickly - but then what? For me, Cozy solves the "then what?" part. After installing it I've got a usable system."

Cozystack provides a fast and easy way to build cloud infrastructure using the latest open-source cloud-native components on either rented or self-owned hardware. Cozystack not only simplifies the deployment process but also ensures the stable operation and seamless updates of all platform components. This allows users to focus on leveraging the cloud-native ecosystem to its fullest potential rather than dealing with the complexities of selecting and integrating individual components.

Cozystack is built on best practices that our engineering team has honed over many years, essentially crystallizing our extensive experience with Kubernetes from its earliest public versions. We believe that CNCF would benefit from more platform projects that enable users to adopt good practices and easily integrate solutions from the CNCF portfolio out of the box.

We’ve shared some of our thoughts on the importance of creating an open-source cloud platform in our article.

Our previous application: #87

Org repo URL (provide if all repos under the org are in scope of the application)

https://github.com/aenix-io

Project repo URL in scope of application

https://github.com/aenix-io/cozystack/

Additional repos in scope of the application

https://github.com/aenix-io/etcd-operator
https://github.com/aenix-io/talm
https://github.com/aenix-io/talos-bootstrap
https://github.com/aenix-io/kubernetes-in-kubernetes
https://github.com/aenix-io/kubefarm

BTW we also contribute in projects like KubeVirt, Kamaji, Cilium, etc.

Website URL

https://cozystack.io

Roadmap

https://cozystack.io/docs/roadmap/

Roadmap context

The core idea behind our roadmap is the addition of GPU support to enable the platform for ML needs, a more comprehensive user dashboard, the ability to easily and reliably install the platform on popular Linux distributions, automatic updates, a plugin system for extending functionality and allowing users to easily add new applications, API stabilization (our article in Kubernetes blog), the inclusion of telemetry in accordance with Linux Foundation policy, and numerous enhancements to existing features.

Contributing Guide

https://github.com/aenix-io/cozystack/blob/main/CONTRIBUTING.md

Code of Conduct (CoC)

https://github.com/aenix-io/cozystack/blob/main/CODE_OF_CONDUCT.md

Adopters

https://github.com/aenix-io/cozystack/blob/main/ADOPTERS.md

Contributing or Sponsoring Org

https://aenix.io, https://gohost.kz, https://hidora.io, https://kubeone.cloud

Maintainers file

https://github.com/aenix-io/cozystack/blob/main/MAINTAINERS.md

IP Policy

  • If the project is accepted, I agree the project will follow the CNCF IP Policy

Trademark and accounts

  • If the project is accepted, I agree to donate all project trademarks and accounts to the CNCF

Why CNCF?

We are open-source enthusiasts who deeply value Kubernetes and open-source. We have used open-source projects extensively in our work and now want to give back to the community by sharing our developments, repaying the debt we have accumulated over the years. Additionally, we believe that having truly open platforms managed and coordinated by CNCF, rather than controlled by individual vendors, will positively impact the entire cloud computing and container market. We want to be among the pioneers on this path and ensure that Cozystack remains open and independent from the whims of a single company, especially considering the numerous cases where other vendors have switched open-source licenses to closed ones.

We're startup and group of entusiasts which decided to go by the way of standardization. Our platform is based on many other CNCF projects and provides a turn-key solution which is easy to install and use. We want to keep this standardization as much as possible, we believe that open-source is the only way to achieve this.

Being a CNCF member, will allow us to show people our intention to remain standard and always free. We adopt Kubernetes, Talos Linux, KubeVirt, Kamaji, FluxCD, Cluster API, Cert-Manager, Piraeus, Kube-OVN, Cilium, MetalLB, among others. We contribute a lot to these projects. We are keen to collaborate closely with them. It would be nice to join a common ecosystem build by CNCF.

Benefit to the Landscape

One of our motos: "Collaborate, not compete"

We are proud of our community and closely interact with projects around it. Thus if a feature being developed for the platform could be useful to a upstream project, it should be contributed to upstream project, rather than being implemented within the platform.

Being a CNCF member will help users of other CNCF projects with adoption of their technologies as they could provide a ready product and real-world example how it can be used.

Also we can organize a people to make a beatiful things together, for example etcd-operator is one of this community-driven project

Cloud Native 'Fit'

We believe that our project will help various cloud-providers to build their infrastructure based on modern cloud-native principles.

The project goal is that you can manage your bare-metal infrastracture using cloud native approaches:

You can bootstrap your physical server using the declarative way, just by applying an Yaml file on it.
You can use beatiful Kubernetes API instead of dificult assincronious APIs on OpenStack.

Cloud Native 'Integration'

We use a lot of CNCF projects and build a single ecosystem around them:

Kubernetes and etcd
Kubernetes has already become a kind of de facto standard for managing server workloads.

Our platform is Kubernetes-based and provides managed Kubernetes service that allows you to create full-featured Kubernetes clusters on demand. For each cluster, a separate managed control-plane and virtual compute nodes are created.

The control-plane is powered by Kamaji project and separate etcd cluster for backend. We utilize Cluster API for spawnging tenant Kubernetes clusters.

KubeVirt
KubeVirt is a project started by global industry leaders with a common vision to unify Kubernetes and a desire to introduce it to the world of virtualization. KubeVirt extends the capabilities of Kubernetes by providing convenient abstractions for launching and managing virtual machines, as well the all related entities such as snapshots, presets, virtual volumes, and more.

Helm and FluxCD
Each package in the platform consists of a set of YAML files combined into Helm chart. Therefore, anyone with some familiarity with Kubernetes primitives can modify or expand the platform. Delivery of packages to the system is handled by FluxCD, a well-known and widely used tool in the community.

FluxCD is the main system used to build distribution. FluxCD is used for three different cases:

  • to deliver and setup basic system platform components
  • to let users setup their applications into the platform
  • to deliver and install components into user's Kubernetes clusters

Kube-OVN
Kube-OVN is a free implementation of virtual network fabric for Kubernetes based on Open vSwitch technology. With OVN, you get a robust and functional virtual network that ensures reliable isolation between tenants and provides floating addresses for virtual machines.

This enables seamless integration with other clusters and customer network services.

Cilium
Utilizing Cilium in conjunction with OVN enables the most efficient and flexible network policies, along with a productive services network in Kubernetes, leveraging an offloaded Linux network stack featuring the cutting-edge eBPF technology.

MetalLB
MetalLB is the default load balancer for Cozystack; with its help, the services obtain public addresses that are accessible from outside the cluster network.

Piraeus
DRBD is the fastest replication block storage running right in the Linux kernel. When DRBD only deals with data replication, time-tested technologies such as LVM or ZFS are used for securely store the data. The DRBD kernel module is included in the mainline Linux kernel and has been used to build fault-tolerant systems for over a decade.

DRBD is managed by LINSTOR privided by piraeus-operator. It provides an orchestation system integrated to Kubernetes which provides the management layer for creating virtual volumes based on DRBD.

CloudNativePG
Nowadays PostgreSQL is the most popular relational database. Its platform-side implementation involves a self-healing replicated cluster, managed with the increasingly popular CloudNativePG operator within the community.

Strimzi
Strimzi provides a way to run an Apache Kafka® cluster on Kubernetes or OpenShift in various deployment configurations. See our website for more details about the project.

Cloud Native Overlap

We did not find any direct overlaps.

Similar projects

VMware Tanzu
VMware Tanzu is a proprietary solution for creating Kubernetes clusters.
Our platform, however, is fully based on open-source and free technologies.

Additionally, to launch control planes, you don't need separate VMs, and we offer more services.

Rancher
Rancher can offer similar functionality but operates within its own ecosystem, offering a different value proposition.
While Rancher is more of a Kubernetes distribution, Cozystack is akin to a cloud platform.

Harvester

Openstack

AWS, Google Cloud, Microsoft Azure

Nutanix

Landscape

Yes, we are: https://landscape.cncf.io/?item=platform--certified-kubernetes-installer--cozystack

Business Product or Service to Project separation

We are building our own product based on Cozystack under a different name, and there will be no issues separating Cozystack from the project's main sponsor.

Ænix supervises the development and provides paid support. This paid support includes all types of assistance, including consultations, development of missing features, design, assistance with installation, and integration.

Project Domain Technical Review

We submitted the application earlier: #87

CNCF Contacts

Here is a discussion about us: #87

Additional information

We had a few requests from CNCF members which we had to solve:

- Separation of the OSS project from business. We have no issue separating the project from the business. Our products and services are based on Cozystack but are named differently: Ænix Platform, Ænix Cloud. The company and open-source project websites are also separate, and there will be no issues with transferring trademarks to CNCF.
- More adopters. We have several dozen adopters from the community and around fifteen paying clients to whom we sell technical support for the platform. The issue is that only a few, due to their companies' policies, are willing to be listed in the adopters' file, and we haven't implemented telemetry in the product yet. Therefore, we can only provide observational data and insights from community interactions, not verified data.
- Better maintainer & contribution diversity. We have built a team of maintainers, including members from the community. Additionally, we have around 10 contributors who actively make changes to the project. While the majority of the work is currently done by maintainers from Ænix, we have significantly improved the maintainer structure. Furthermore, the etcd-operator project, which is part of Cozystack and was created by our founder Andrei Kvapil, is entirely community-driven without any doubt.
- Improved governance. We have maintainers assigned to different components of the project, a dedicated person focusing on community engagement, and developer advocates, including members from the community. We host open weekly meetings with contributors, where we transparently discuss the platform's development roadmap and the technical implementation of various features and components. All meeting recordings are uploaded to a dedicated YouTube channel for the platform, accompanied by links to a Google document containing the agenda and decisions made during the meeting.

What do we did since our first application:

  • Alert system based on the open-source tool Alerta, with the ability to configure notifications directly to different messengers and receive alerts from k8s-prometheus stack
  • Virtual Machine Chart Configuration
  • e2e testing
  • log collection system based on VictoriaLogs and fluentbit
  • VM application has been reworked so that all virtual machines are now created with bridge binding and on block devices without an additional file system layer. This significantly improves performance and enables live migration for virtual machines
  • Opencost Integration, an Open Source project from the Cloud Native ecosystem for monitoring and allocating costs of cloud infrastructure and containers
  • password generation for FerretDB, PostgreSQL, and Clickhouse
  • Virtual Machine app has been split into two separate apps: vm-disk and vm-instance. vm-disk (Virtual Machine Disk) has been separated from the virtual machine application, now supporting image uploads from HTTP or local sources. When creating a disk, you can specify the source and type of image—CD-ROM or classic. vm-instance (Virtual Machine Instance) allows you to launch a virtual machine from created disks.
  • Windows Virtual Machine Support
  • Web Interface for S3 Buckets
  • Public API for Cozystackm (see more: https://www.youtube.com/watch?v=yn1ryGRtTGE, https://kubernetes.io/blog/2024/11/21/dynamic-kubernetes-api-server-for-cozystack/, )
  • Configuring Metrics and Logs Collection from Tenant Clusters
  • OIDC support based on Keycloak
  • Terraform support for interacting with Cozystack API
  • Completely reworked users dashboard
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
New New Application
Projects
Status: 📋 New
Development

No branches or pull requests

1 participant