From 6ab71402bd4f78a76e499af61262b86a98cd912b Mon Sep 17 00:00:00 2001 From: vishesh92 Date: Tue, 15 Jul 2025 18:34:39 +0530 Subject: [PATCH] Move CSIUG 2025 to past events and minor fixups --- src/components/Events/index.tsx | 11 ++++++++- src/css/custom.css | 14 +++++++----- src/pages/integrations.js | 35 ++++++++++++++++------------- static/img/chef-logo.png | Bin 4564 -> 6496 bytes static/img/vmware_vsphere_logo.png | Bin 0 -> 52902 bytes 5 files changed, 38 insertions(+), 22 deletions(-) create mode 100644 static/img/vmware_vsphere_logo.png diff --git a/src/components/Events/index.tsx b/src/components/Events/index.tsx index 133470f137..d2a0acdb8b 100644 --- a/src/components/Events/index.tsx +++ b/src/components/Events/index.tsx @@ -25,7 +25,7 @@ involved with the community.
-

CloudStack European User Group Autumn 2025

+

Autumn Edition: CloudStack European User Group 2025

London, UK

September 18th, 2025

@@ -63,6 +63,15 @@ involved with the community.
Past Events:
+
+ +

CloudStack India User Group 2025

+

Greater Noida, India

+

July 11th, 2025

+
+
+ Read More +

CloudStack European User Group 2025

diff --git a/src/css/custom.css b/src/css/custom.css index cebdf43f05..a75ff6e3d7 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -524,8 +524,8 @@ iframe { .tab-box img { width: auto; height: auto; - max-width: 100%; - max-height: 100%; + max-width: 50%; + max-height: 50%; object-fit: contain; } .box-blue { @@ -555,9 +555,6 @@ iframe { background-image: url(img/ansible_bkg.png); background-size: 100%; } -.box-chef { - background-color: #3F5364; -} .box-acronis { background-color: #060F28; } @@ -592,6 +589,13 @@ iframe { .box-nutanix { background-color: #A8CB3A; } +.box-cloudstack { + background-color: #FFFFFF; +} +.box-cloudstack img { + height: 50%; + width: 50%; +} .box-cloudian { background-image: url(img/cloudian_bkg.png); background-size: 100%; diff --git a/src/pages/integrations.js b/src/pages/integrations.js index 2d372b108e..812fcbc678 100644 --- a/src/pages/integrations.js +++ b/src/pages/integrations.js @@ -212,7 +212,7 @@ export default function CloudStackIntegrations() { { key: "terraform", title: "Terraform", - description: "Terraform is an open-source infrastructure-as-code (IaC) tool developed by HashiCorp that enables organizations to automate the provisioning and management of their IT infrastructure. It uses a declarative configuration language called HashiCorp Configuration Language (HCL) to describe the desired state of infrastructure, allowing for consistent and repeatable deployments across various environments.\n\nApache CloudStack integrates with Terraform through the official CloudStack Terraform Provider, facilitating seamless automation of cloud infrastructure tasks. This provider acts as a bridge between Terraform and CloudStack, leveraging CloudStack's APIs to manage resources such as virtual machines, networks, templates, volumes, and more. Administrators can define infrastructure components in HCL, and Terraform will handle the creation, modification, and deletion of these resources to match the desired state.\n\nThe integration supports a wide range of CloudStack resources and features, including provisioning and management of virtual machines with specified service offerings and templates, creation and configuration of isolated networks, VPCs, and associated network offerings, management of storage resources including volumes and templates, assignment of public IP addresses and configuration of firewall rules, and support for advanced configurations such as UEFI boot, vApp properties, and Kubernetes cluster creation.\n\nThe CloudStack Terraform Provider is maintained under the Apache License 2.0 and is available through the Terraform Registry. Recent releases have introduced enhancements like support for Kubernetes cluster creation, new data sources, and improved resource management capabilities. This integration empowers organizations to adopt infrastructure-as-code practices within their CloudStack environments, promoting automation, consistency, and efficiency in cloud infrastructure management.", + description: "Terraform is an open-source infrastructure-as-code (IaC) tool developed by HashiCorp that enables organizations to automate the provisioning and management of their IT infrastructure. It uses a declarative configuration language called HashiCorp Configuration Language (HCL) to describe the desired state of infrastructure, allowing for consistent and repeatable deployments across various environments.\n\nApache CloudStack integrates with Terraform through the official CloudStack Terraform Provider, facilitating seamless automation of cloud infrastructure tasks. This provider acts as a bridge between Terraform and CloudStack, leveraging CloudStack's APIs to manage resources such as virtual machines, networks, templates, volumes, and more. Administrators can define infrastructure components in HCL, and Terraform will handle the creation, modification, and deletion of these resources to match the desired state.\n\nThe integration supports a wide range of CloudStack resources and features, including provisioning and management of virtual machines with specified service offerings and templates, creation an d configuration of isolated networks, VPCs, and associated network offerings, management of storage resources including volumes and templates, assignment of public IP addresses and configuration of firewall rules, and support for advanced configurations such as UEFI boot, vApp properties, and Kubernetes cluster creation.\n\nThe CloudStack Terraform Provider is maintained under the Apache License 2.0 and is available through the Terraform Registry. Recent releases have introduced enhancements like support for Kubernetes cluster creation, new data sources, and improved resource management capabilities. This integration empowers organizations to adopt infrastructure-as-code practices within their CloudStack environments, promoting automation, consistency, and efficiency in cloud infrastructure management.", className: "box-terraform box192", imageSrc: "/img/terraform_logo.svg", altText: "terraform", @@ -233,7 +233,7 @@ export default function CloudStackIntegrations() { key: "chef", title: "Chef", description: "Chef users can reliably manage CloudStack infrastructure by combining knife-cloudstack-fog and kitchen-cloudstack. The knife‑cloudstack‑fog plugin acts as a command-line bridge between Chef workflows and CloudStack APIs, supporting VM provisioning, network and storage orchestration, and resource cleanup. On the testing side, kitchen‑cloudstack integrates CloudStack into Test Kitchen to spin up actual instances, apply cookbooks, run validation tests, and destroy environments—all driven by declarative .kitchen.yml configurations. Together, these projects provide full lifecycle automation and test-driven infrastructure management for CloudStack environments, fitting seamlessly into Chef-based CI/CD pipelines.", - className: "box-chef box192", + className: "box-white box192", imageSrc: "/img/chef-logo.png", altText: "chef", colClass: "col-md-6", @@ -273,10 +273,10 @@ export default function CloudStackIntegrations() { iconColor: "dark" }, { - key: "cloudstack", + key: "cloudstack-b-and-r", title: "NAS B&R", description: "Apache CloudStack's Backup and Recovery (B&R) framework, introduced in version 4.14, provides a standardized and extensible approach to integrating backup solutions within the CloudStack ecosystem. Expanding upon this framework, version 4.20 introduced the NAS Backup and Recovery Plugin, a native solution designed specifically for KVM hypervisors. This plugin enables administrators to perform full instance backups to shared Network Attached Storage (NAS) systems, such as NFS, without relying on third-party backup software.\n\nThe NAS B&R Plugin operates using libvirt's push backup mode, capturing full disk images in the qcow2 format. To utilize this functionality, KVM hosts must be equipped with libvirt version 7.2.0 or higher and QEMU version 4.2 or higher. Administrators configure backup repositories by specifying NAS details, including type (currently supporting NFS), address, and mount options. These repositories are then associated with backup offerings, which can be assigned to virtual machines to facilitate scheduled or ad-hoc backups. Backup operations are managed directly through the CloudStack UI or API, streamlining the backup process within the existing cloud management workflow.\n\nWhile the NAS B&R Plugin currently supports full backups and restoration to NFS and local primary storage, it lays the groundwork for future enhancements, such as incremental backups and broader storage compatibility. This native integration offers a cost-effective and straightforward backup solution for organizations utilizing KVM within their CloudStack environments.", - className: "box-white box192", + className: "box-cloudstack box192", imageSrc: "/img/ACS_logo.svg", altText: "cloudstack", colClass: "col-md-6", @@ -318,7 +318,7 @@ export default function CloudStackIntegrations() { title: "VMware vSphere", description: "VMware vSphere is an enterprise-grade virtualization platform that combines the ESXi hypervisor and vCenter Server to provide a robust foundation for virtualized data centers. It offers advanced features such as live migration (vMotion), distributed resource scheduling (DRS), high availability (HA), fault tolerance (FT), and storage management capabilities like Storage vMotion and snapshot support. These features enable efficient resource utilization, minimal downtime, and streamlined operations in virtual environments.\n\nApache CloudStack integrates seamlessly with VMware vSphere, allowing administrators to manage vSphere resources through CloudStack's unified interface. This integration supports comprehensive VM lifecycle management, including provisioning, scaling, and decommissioning of virtual machines. CloudStack leverages vSphere's capabilities to orchestrate complex operations such as automated load balancing via DRS, rapid recovery with HA, and dynamic resource allocation.\n\nBy incorporating VMware vSphere into CloudStack deployments, organizations can achieve a cohesive and scalable cloud infrastructure that benefits from vSphere's mature virtualization features and CloudStack's flexible orchestration capabilities. This combination is ideal for enterprises seeking to maintain high performance, reliability, and operational efficiency in their cloud environments.", className: "box-white box131", - imageSrc: "/img/VM_ware_logo.svg", + imageSrc: "/img/vmware_vsphere_logo.png", altText: "vmware", colClass: "col-md-6", iconColor: "dark" // dark icon for light vmware logo @@ -348,7 +348,8 @@ export default function CloudStackIntegrations() { className: "box-lgray box131", imageSrc: "/img/XCP-ng_logo.png", altText: "XCP-ng", - colClass: "col-md-6" + colClass: "col-md-6", + iconColor: "dark" } ] }, @@ -364,7 +365,8 @@ export default function CloudStackIntegrations() { className: "box-veeam box192", imageSrc: "/img/veeam_logo.svg", altText: "veeam", - colClass: "col" + colClass: "col-md-12", + iconColor: "dark" } ] }, @@ -393,7 +395,7 @@ export default function CloudStackIntegrations() { { key: "vmware-nsx", title: "Vmware NSX", - description: "VMware NSX is a software-defined networking (SDN) and security platform that delivers virtualized networking services, including distributed firewalls, logical routing, and microsegmentation. By abstracting network functionality from hardware and embedding it into the hypervisor, NSX enables a flexible, programmable infrastructure for modern cloud and data center environments.
Apache CloudStack integrates with VMware NSX through an official plugin introduced in version 4.20. This plugin allows administrators to define isolated networks in CloudStack, which are then backed by NSX-managed logical switches and routers. Features such as distributed routing, source NAT, static NAT, port forwarding, load balancing, and network ACLs are automatically provisioned and managed through NSX. The plugin translates CloudStack virtual networking models into NSX constructs and handles the lifecycle of NSX logical components such as Tier-1 routers and segments, ensuring consistency between the orchestration layer and the SDN fabric.
This integration supports VMware vSphere as the underlying hypervisor platform. NSX-T resources are directly mapped to CloudStack constructs, enabling full network lifecycle automation and policy enforcement within vSphere environments. By combining VMware NSX with Apache CloudStack, organizations gain scalable, automated networking capabilities that align with modern cloud infrastructure and hybrid cloud strategies.", + description: "VMware NSX is a software-defined networking (SDN) and security platform that delivers virtualized networking services, including distributed firewalls, logical routing, and microsegmentation. By abstracting network functionality from hardware and embedding it into the hypervisor, NSX enables a flexible, programmable infrastructure for modern cloud and data center environments.\n\nApache CloudStack integrates with VMware NSX through an official plugin introduced in version 4.20. This plugin allows administrators to define isolated networks in CloudStack, which are then backed by NSX-managed logical switches and routers. Features such as distributed routing, source NAT, static NAT, port forwarding, load balancing, and network ACLs are automatically provisioned and managed through NSX. The plugin translates CloudStack virtual networking models into NSX constructs and handles the lifecycle of NSX logical components such as Tier-1 routers and segments, ensuring consistency between the orchestration layer and the SDN fabric.\n\nThis integration supports VMware vSphere as the underlying hypervisor platform. NSX-T resources are directly mapped to CloudStack constructs, enabling full network lifecycle automation and policy enforcement within vSphere environments. By combining VMware NSX with Apache CloudStack, organizations gain scalable, automated networking capabilities that align with modern cloud infrastructure and hybrid cloud strategies.", className: "box-white box192", imageSrc: "/img/vmware_nsx_logo.jpg", altText: "VMware NSX", @@ -410,16 +412,17 @@ export default function CloudStackIntegrations() { { key: "storpool", title: "StorPool", - description: "StorPool is a distributed block storage system optimized for high performance, low latency, and linear scalability. It aggregates local SSDs or NVMe drives across a cluster of standard servers into a single, resilient storage pool. The integration with Apache CloudStack allows StorPool to function as a primary storage backend, supporting advanced features such as instant volume provisioning, live migration, thin provisioning, and rapid snapshot creation and restoration.
The CloudStack driver for StorPool exposes full storage functionality via the CloudStack UI and API, enabling per-volume Quality of Service (QoS) policies, cloning of volumes and templates, and live updates to data placement settings. This native integration removes the need to manage the storage system directly, as all interactions are fully automated and orchestrated by CloudStack.
StorPool is suitable for both private and public cloud environments where performance, reliability, and operational efficiency are critical. Its architecture ensures high availability and fault tolerance, making it a robust solution for production-grade cloud deployments.", + description: "StorPool is a distributed block storage system optimized for high performance, low latency, and linear scalability. It aggregates local SSDs or NVMe drives across a cluster of standard servers into a single, resilient storage pool. The integration with Apache CloudStack allows StorPool to function as a primary storage backend, supporting advanced features such as instant volume provisioning, live migration, thin provisioning, and rapid snapshot creation and restoration.\n\nThe CloudStack driver for StorPool exposes full storage functionality via the CloudStack UI and API, enabling per-volume Quality of Service (QoS) policies, cloning of volumes and templates, and live updates to data placement settings. This native integration removes the need to manage the storage system directly, as all interactions are fully automated and orchestrated by CloudStack.\n\nStorPool is suitable for both private and public cloud environments where performance, reliability, and operational efficiency are critical. Its architecture ensures high availability and fault tolerance, making it a robust solution for production-grade cloud deployments.", className: "box-white box131", imageSrc: "/img/storpool_logo.svg", altText: "storpool", - colClass: "col-md-6" + colClass: "col-md-6", + iconColor: "dark" }, { key: "linbit", title: "LinBit SDS", - description: "LINBIT SDS is an open-source software-defined storage solution that combines DRBD® (Distributed Replicated Block Device) and LINSTOR® to provide high-performance, resilient block storage for Linux-based environments. DRBD ensures real-time data replication between nodes, offering high availability and disaster recovery capabilities, while LINSTOR manages the provisioning and orchestration of storage resources across clusters.
Apache CloudStack integrates seamlessly with LINBIT SDS, enabling administrators to leverage its advanced storage features within CloudStack-managed infrastructures. This integration supports operations such as provisioning, thin provisioning, snapshots, storage live migration, high availability, and redundancy. Quality of Service (QoS) aspects are also addressed, allowing control over storage hardware allocation to specific primary storage pools and limiting IOPS on designated volumes or volume classes to mitigate the \"noisy neighbor\" problem.
The integration is particularly optimized for KVM hypervisors, where LINBIT SDS provides block devices via a native driver in the operating system, facilitating efficient storage management. Administrators can manage storage functions like snapshots and migrations through CloudStack's API, ensuring a streamlined and unified management experience.
By combining LINBIT SDS with Apache CloudStack, organizations can build scalable, high-performance, and resilient cloud infrastructures, benefiting from the flexibility and reliability of open-source technologies.", + description: "LINBIT SDS is an open-source software-defined storage solution that combines DRBD® (Distributed Replicated Block Device) and LINSTOR® to provide high-performance, resilient block storage for Linux-based environments. DRBD ensures real-time data replication between nodes, offering high availability and disaster recovery capabilities, while LINSTOR manages the provisioning and orchestration of storage resources across clusters.\n\nApache CloudStack integrates seamlessly with LINBIT SDS, enabling administrators to leverage its advanced storage features within CloudStack-managed infrastructures. This integration supports operations such as provisioning, thin provisioning, snapshots, storage live migration, high availability, and redundancy. Quality of Service (QoS) aspects are also addressed, allowing control over storage hardware allocation to specific primary storage pools and limiting IOPS on designated volumes or volume classes to mitigate the \"noisy neighbor\" problem.\n\nThe integration is particularly optimized for KVM hypervisors, where LINBIT SDS provides block devices via a native driver in the operating system, facilitating efficient storage management. Administrators can manage storage functions like snapshots and migrations through CloudStack's API, ensuring a streamlined and unified management experience.\n\nBy combining LINBIT SDS with Apache CloudStack, organizations can build scalable, high-performance, and resilient cloud infrastructures, benefiting from the flexibility and reliability of open-source technologies.", className: "box-linbit box131", imageSrc: "/img/linbit_sds_logo.svg", altText: "linbit", @@ -442,7 +445,7 @@ export default function CloudStackIntegrations() { { key: "ceph", title: "Ceph", - description: "Ceph is an open-source, software-defined storage platform that provides scalable and resilient block storage through its RADOS Block Device (RBD) interface. Designed for high-performance and fault-tolerant environments, Ceph distributes data across multiple nodes, ensuring redundancy and eliminating single points of failure. Its architecture supports features like thin provisioning, snapshots, and cloning, making it suitable for dynamic and demanding cloud infrastructures.
Apache CloudStack integrates seamlessly with Ceph RBD, allowing administrators to configure Ceph as primary storage within CloudStack deployments. This integration enables the provisioning and management of virtual machine (VM) volumes directly on Ceph, leveraging its distributed storage capabilities. Administrators can define storage pools in Ceph, create corresponding disk offerings in CloudStack, and manage VM disk operations such as creation, deletion, and snapshotting through CloudStack's interface.
By combining Ceph's robust storage features with CloudStack's orchestration capabilities, organizations can deploy a flexible and resilient cloud infrastructure that meets diverse workload requirements.", + description: "Ceph is an open-source, software-defined storage platform that provides scalable and resilient block storage through its RADOS Block Device (RBD) interface. Designed for high-performance and fault-tolerant environments, Ceph distributes data across multiple nodes, ensuring redundancy and eliminating single points of failure. Its architecture supports features like thin provisioning, snapshots, and cloning, making it suitable for dynamic and demanding cloud infrastructures.\n\nApache CloudStack integrates seamlessly with Ceph RBD, allowing administrators to configure Ceph as primary storage within CloudStack deployments. This integration enables the provisioning and management of virtual machine (VM) volumes directly on Ceph, leveraging its distributed storage capabilities. Administrators can define storage pools in Ceph, create corresponding disk offerings in CloudStack, and manage VM disk operations such as creation, deletion, and snapshotting through CloudStack's interface.\n\nBy combining Ceph's robust storage features with CloudStack's orchestration capabilities, organizations can deploy a flexible and resilient cloud infrastructure that meets diverse workload requirements.", className: "box-ceph box131", imageSrc: "/img/ceph_logo.svg", altText: "ceph", @@ -465,7 +468,7 @@ export default function CloudStackIntegrations() { { key: "powerflex", title: "PowerFlex", - description: "Dell PowerFlex is a software-defined storage (SDS) platform that delivers high-performance, scalable, and resilient block storage by aggregating local storage resources across standard x86 servers. Designed for modern data centers, PowerFlex transforms direct-attached storage into a unified, shared storage pool, providing flexibility and efficiency for various workloads.
Apache CloudStack integrates natively with Dell PowerFlex, enabling it to function as managed primary storage within CloudStack environments utilizing the KVM hypervisor. This integration allows administrators to configure PowerFlex storage pools at the zone or cluster level through CloudStack's UI or API. Key features supported include dynamic volume provisioning, disk-only snapshots, thin provisioning, per-volume Quality of Service (QoS) parameters such as bandwidth and IOPS limits, and live volume migration within and across PowerFlex storage pools.
Recent enhancements to the PowerFlex plugin in CloudStack versions 4.18 and above include support for volume encryption, improved management of Storage Data Client (SDC) connections, and dynamic control of client connections on KVM hosts. These features enhance data security, performance, and operational efficiency.
By leveraging Dell PowerFlex's robust storage capabilities within Apache CloudStack, organizations can build flexible, high-performance cloud infrastructures that meet diverse workload requirements.", + description: "Dell PowerFlex is a software-defined storage (SDS) platform that delivers high-performance, scalable, and resilient block storage by aggregating local storage resources across standard x86 servers. Designed for modern data centers, PowerFlex transforms direct-attached storage into a unified, shared storage pool, providing flexibility and efficiency for various workloads. \n\nApache CloudStack integrates natively with Dell PowerFlex, enabling it to function as managed primary storage within CloudStack environments utilizing the KVM hypervisor. This integration allows administrators to configure PowerFlex storage pools at the zone or cluster level through CloudStack's UI or API. Key features supported include dynamic volume provisioning, disk-only snapshots, thin provisioning, per-volume Quality of Service (QoS) parameters such as bandwidth and IOPS limits, and live volume migration within and across PowerFlex storage pools.\n\nRecent enhancements to the PowerFlex plugin in CloudStack versions 4.18 and above include support for volume encryption, improved management of Storage Data Client (SDC) connections, and dynamic control of client connections on KVM hosts. These features enhance data security, performance, and operational efficiency.\n\nBy leveraging Dell PowerFlex's robust storage capabilities within Apache CloudStack, organizations can build flexible, high-performance cloud infrastructures that meet diverse workload requirements.", className: "box-dell box131", imageSrc: "/img/dell_logo.svg", altText: "dell", @@ -481,7 +484,7 @@ export default function CloudStackIntegrations() { { key: "cloudian", title: "Cloudian Object Storage", - description: "Cloudian HyperStore is an enterprise-grade, S3-compatible object storage platform designed for scalability, durability, and multi-tenancy. It offers a distributed architecture that ensures high availability and fault tolerance, making it suitable for diverse workloads such as backups, archives, media content, and unstructured data.
Apache CloudStack integrates with Cloudian HyperStore through a native plugin, enabling its use as secondary storage within CloudStack environments. This integration allows administrators to store templates, ISO images, and snapshots directly in Cloudian's object storage, facilitating efficient resource management and scalability. The plugin supports single sign-on (SSO), providing seamless access to the Cloudian Management Console (CMC) from the CloudStack UI. Additionally, CloudStack domains and accounts are mapped to Cloudian groups and users, respectively, with automatic provisioning and deprovisioning based on CloudStack's account lifecycle.
By combining Cloudian HyperStore's robust object storage capabilities with CloudStack's orchestration features, organizations can deploy a flexible and resilient cloud infrastructure that meets diverse workload requirements.", + description: "Cloudian HyperStore is an enterprise-grade, S3-compatible object storage platform designed for scalability, durability, and multi-tenancy. It offers a distributed architecture that ensures high availability and fault tolerance, making it suitable for diverse workloads such as backups, archives, media content, and unstructured data.\n\nApache CloudStack integrates with Cloudian HyperStore through a native plugin, enabling its use as secondary storage within CloudStack environments. This integration allows administrators to store templates, ISO images, and snapshots directly in Cloudian's object storage, facilitating efficient resource management and scalability. The plugin supports single sign-on (SSO), providing seamless access to the Cloudian Management Console (CMC) from the CloudStack UI. Additionally, CloudStack domains and accounts are mapped to Cloudian groups and users, respectively, with automatic provisioning and deprovisioning based on CloudStack's account lifecycle.\n\nBy combining Cloudian HyperStore's robust object storage capabilities with CloudStack's orchestration features, organizations can deploy a flexible and resilient cloud infrastructure that meets diverse workload requirements.", className: "box-cloudian box192", imageSrc: "/img/cloudian_logo.svg", altText: "cloudian", @@ -490,7 +493,7 @@ export default function CloudStackIntegrations() { { key: "minio", title: "MinIO Object Storage", - description: "MinIO is a high-performance, S3-compatible object storage system built for cloud-native environments. It is optimized for speed, simplicity, and massive scalability, making it suitable for storing a wide range of unstructured data including media files, logs, and application artifacts.
Apache CloudStack integrates with MinIO through its Object Storage Plugin framework, introduced in version 4.18. This integration allows CloudStack administrators to configure MinIO as an Object Storage Pool that is exposed to tenants as a self-service storage option. Tenants can create buckets, upload and manage objects, and interact with storage via S3-compatible APIs.
Unlike traditional secondary storage in CloudStack, MinIO serves as a dedicated object storage service for tenant applications and workloads, enabling use cases such as backup targets, data lakes, and application artifact storage. The integration is fully decoupled from CloudStack's internal template and snapshot systems, focusing instead on providing tenant-facing, scalable, and API-driven Object Storage as a Service (OSaaS).", + description: "MinIO is a high-performance, S3-compatible object storage system built for cloud-native environments. It is optimized for speed, simplicity, and massive scalability, making it suitable for storing a wide range of unstructured data including media files, logs, and application artifacts.\n\nApache CloudStack integrates with MinIO through its Object Storage Plugin framework, introduced in version 4.18. This integration allows CloudStack administrators to configure MinIO as an Object Storage Pool that is exposed to tenants as a self-service storage option. Tenants can create buckets, upload and manage objects, and interact with storage via S3-compatible APIs.\n\nUnlike traditional secondary storage in CloudStack, MinIO serves as a dedicated object storage service for tenant applications and workloads, enabling use cases such as backup targets, data lakes, and application artifact storage. The integration is fully decoupled from CloudStack's internal template and snapshot systems, focusing instead on providing tenant-facing, scalable, and API-driven Object Storage as a Service (OSaaS).", className: "box-white box192", imageSrc: "/img/minio_logo.svg", altText: "minio", @@ -500,7 +503,7 @@ export default function CloudStackIntegrations() { { key: "ceph-radosgw", title: "Ceph RADOSGW", - description: "Ceph is a leading open-source distributed storage platform that provides unified object, block, and file storage within a single cluster. Its object storage component, the RADOS Gateway (radosgw), offers a RESTful interface fully compatible with Amazon S3 and OpenStack Swift APIs. This compatibility enables scalable, multi-tenant, and secure object storage, making it ideal for cloud-native applications, backups, media files, and logs—all supported by Ceph's self-healing and self-managing architecture.
Apache CloudStack integrates with radosgw through its Object Storage Plugin framework, introduced in version 4.18 and enhanced in version 4.20. This integration allows administrators to register Ceph RGW endpoints as Object Storage Pools, enabling tenants to create and manage S3-compatible buckets, upload and retrieve objects via API keys and signed URLs, and consume Object Storage as a Service (OSaaS) directly within their CloudStack environment. This integration focuses on providing tenant-facing object storage for application and data use, rather than managing internal CloudStack artifacts.
By combining Ceph's robust object storage capabilities with CloudStack's orchestration, organizations can offer scalable and secure object storage services within their cloud infrastructure.", + description: "Ceph is a leading open-source distributed storage platform that provides unified object, block, and file storage within a single cluster. Its object storage component, the RADOS Gateway (radosgw), offers a RESTful interface fully compatible with Amazon S3 and OpenStack Swift APIs. This compatibility enables scalable, multi-tenant, and secure object storage, making it ideal for cloud-native applications, backups, media files, and logs—all supported by Ceph's self-healing and self-managing architecture.\n\nApache CloudStack integrates with radosgw through its Object Storage Plugin framework, introduced in version 4.18 and enhanced in version 4.20. This integration allows administrators to register Ceph RGW endpoints as Object Storage Pools, enabling tenants to create and manage S3-compatible buckets, upload and retrieve objects via API keys and signed URLs, and consume Object Storage as a Service (OSaaS) directly within their CloudStack environment. This integration focuses on providing tenant-facing object storage for application and data use, rather than managing internal CloudStack artifacts.\n\nBy combining Ceph's robust object storage capabilities with CloudStack's orchestration, organizations can offer scalable and secure object storage services within their cloud infrastructure.", className: "box-ceph box192", imageSrc: "/img/ceph_logo.svg", altText: "ceph", diff --git a/static/img/chef-logo.png b/static/img/chef-logo.png index 47e91a41fb4872a10a97a66b2dd5ea56f792f0e6..54d33047e4707ee90875996b31f67b6c14951fc6 100644 GIT binary patch literal 6496 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 literal 4564 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 ZiK2H7eO+TbO!y0Ew&&1R^+>XU literal 0 HcmV?d00001