The release of the free PaaS platform Cozystack 0.21.0, built on Kubernetes, is now available. The project aims to provide a ready-made platform for hosting providers and a framework for building private and public clouds. The platform installs directly on servers and covers all aspects of infrastructure preparation for delivering managed services. Cozystack allows the deployment and provisioning of Kubernetes clusters, databases, and virtual machines. The platform's code is available on GitHub and is distributed under the Apache-2.0 license.
The base technology stack uses Talos Linux and Flux CD. The images with the system, kernel, and necessary modules are pre-built and updated atomically, allowing for the avoidance of components such as dkms and package managers, while ensuring stable operation. A straightforward installation method is provided in an empty data center using PXE and the Debian-like installer talos-bootstrap.
The platform includes a free implementation of network infrastructure that is based on Kube-OVN and uses Cilium for organizing the service network, with MetalLB for announcing services externally. Storage is implemented on LINSTOR, which offers the use of ZFS as a base layer for storage and DRBD for replication. A pre-configured monitoring stack is based on VictoriaMetrics and Grafana. To launch of virtual machines KubeVirt technology is used, which allows for running traditional virtual machines directly in Kubernetes containers and already has all the necessary integrations with Cluster API for launching managed Kubernetes clusters within the 'bare-metal' Kubernetes cluster.
The new version features a completely redesigned Dashboard interface, which now interacts directly with the Cozystack API instead of with FluxCD resources. This change provides a graphical interface for end users and allows them to assign roles for deploying certain services according to the standard RBAC model in Kubernetes. Four groups are created by default for each tenant:
- view — for read-only access;
- use — for connecting to virtual machines and utilizing services;
- admin — for the ability to order core services (mysql, postgres, redis, kubernetes, virtual-machine, etc.);
- super-admin — for creating child tenants and launching service applications (monitoring, etcd, ingress, and seaweedfs).
Users included in the corresponding groups can access both through Kubernetes and through the Dashboard. Although Cozystack uses an API-oriented approach, the Dashboard is an important part of the platform, as it allows for quickly forming the necessary services through a graphical interface, then seeing how they are represented in the API, and only then describing them as code (IaC).
Key metrics in the Dashboard:
- Direct interaction with the Cozystack API is ensured.
- Prefixes for applications have been removed, as each application now uses its own Kind.
- Namespaces are filtered by the prefix 'tenant-', allowing only user namespaces to be displayed and excluding system namespaces.
- Icon display has been fixed when OIDC (OpenID Connect) is enabled.
- Cosmetic fixes have been added, including correct links to documentation.
Other changes:
- Authorization for Redis has been added.
- Refactoring of roles and role bindings for tenants has been completed, all permissions for HelmRelease resources have been removed, and the kubeapps-admin group has been deleted.
- Grafana launch fixed, and the URL for the VictoriaLogs plugin has been corrected.
- The OpenAPI specification for List resources in the Cozystack API has been updated.
- Talos Linux has been updated to version 1.8.4.
- Linstor-ha-controller has been updated to version 1.2.3, resolving the issue with virtual machine redundancy.
- Database size configuration for Grafana has been added.
- Additional resource management capabilities for VMCluster have been implemented.
Source: opennet.ru
