Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
224 changes: 132 additions & 92 deletions docs/.vitepress/config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,51 @@ import { withMermaid } from "vitepress-plugin-mermaid";
import { generateSidebar } from 'vitepress-sidebar';
import { fileURLToPath, URL } from 'node:url'

function storageSidebar() {
const generated = generateSidebar([{
documentRootPath: '/docs/',
scanStartPath: 'storage',
resolvePath: '/storage/',
capitalizeFirst: false,
useTitleFromFrontmatter: true,
useFolderLinkFromIndexFile: true,
useFolderTitleFromIndexFile: true,
sortMenusByFrontmatterOrder: true,
excludePattern: ['observability/**'],
}]);
const items = generated['/storage/'].items.filter((i: any) => i.link !== 'index.md');
return {
'/storage/': {
base: '/storage/',
items: [
{ text: 'Storage', items: [{ text: 'Overview', link: 'index.md' }, ...items] },
],
},
};
}

function observabilitySidebar() {
const generated = generateSidebar([{
documentRootPath: '/docs/',
scanStartPath: 'observability',
resolvePath: '/observability/',
capitalizeFirst: false,
useTitleFromFrontmatter: true,
useFolderLinkFromIndexFile: true,
useFolderTitleFromIndexFile: true,
sortMenusByFrontmatterOrder: true,
}]);
const items = generated['/observability/'].items.filter((i: any) => i.link !== 'index.md');
return {
'/observability/': {
base: '/observability/',
items: [
{ text: 'Observability', items: [{ text: 'Overview', link: 'index.md' }, ...items] },
],
},
};
}

// https://vitepress.dev/reference/site-config
export default withMermaid({
title: "CobaltCore",
Expand Down Expand Up @@ -34,6 +79,7 @@ export default withMermaid({
{ text: 'OpenStack', link: '/openstack/' },
{ text: 'Storage', link: '/storage/' },
{ text: 'Networking', link: '/networking/' },
{ text: 'Observability', link: '/observability/' },
{ text: 'Management', link: '/management/' },
{ text: 'API Reference', link: '/api/' },
],
Expand All @@ -56,98 +102,92 @@ export default withMermaid({
provider: 'local'
},

sidebar: generateSidebar([
{
documentRootPath: '/docs/',
scanStartPath: 'overview',
resolvePath: '/overview/',
capitalizeFirst: false,
useTitleFromFrontmatter: true,
useFolderLinkFromIndexFile: true,
useFolderTitleFromIndexFile: true,
sortMenusByFrontmatterOrder: true,
},
{
documentRootPath: '/docs/',
scanStartPath: 'getting-started',
resolvePath: '/getting-started/',
capitalizeFirst: false,
useTitleFromFrontmatter: true,
useFolderLinkFromIndexFile: true,
useFolderTitleFromIndexFile: true,
sortMenusByFrontmatterOrder: true,
},
{
documentRootPath: '/docs/',
scanStartPath: 'platform',
resolvePath: '/platform/',
capitalizeFirst: false,
useTitleFromFrontmatter: true,
useFolderLinkFromIndexFile: true,
useFolderTitleFromIndexFile: true,
sortMenusByFrontmatterOrder: true,
},
{
documentRootPath: '/docs/',
scanStartPath: 'compute',
resolvePath: '/compute/',
capitalizeFirst: false,
useTitleFromFrontmatter: true,
useFolderLinkFromIndexFile: true,
useFolderTitleFromIndexFile: true,
sortMenusByFrontmatterOrder: true,
},
{
documentRootPath: '/docs/',
scanStartPath: 'openstack',
resolvePath: '/openstack/',
capitalizeFirst: false,
useTitleFromFrontmatter: true,
useFolderLinkFromIndexFile: true,
useFolderTitleFromIndexFile: true,
sortMenusByFrontmatterOrder: true,
},
{
documentRootPath: '/docs/',
scanStartPath: 'storage',
resolvePath: '/storage/',
capitalizeFirst: false,
useTitleFromFrontmatter: true,
useFolderLinkFromIndexFile: true,
useFolderTitleFromIndexFile: true,
sortMenusByFrontmatterOrder: true,
},
{
documentRootPath: '/docs/',
scanStartPath: 'networking',
resolvePath: '/networking/',
capitalizeFirst: false,
useTitleFromFrontmatter: true,
useFolderLinkFromIndexFile: true,
useFolderTitleFromIndexFile: true,
sortMenusByFrontmatterOrder: true,
},
{
documentRootPath: '/docs/',
scanStartPath: 'management',
resolvePath: '/management/',
capitalizeFirst: false,
useTitleFromFrontmatter: true,
useFolderLinkFromIndexFile: true,
useFolderTitleFromIndexFile: true,
sortMenusByFrontmatterOrder: true,
},
{
documentRootPath: '/docs/',
scanStartPath: 'community',
resolvePath: '/community/',
capitalizeFirst: false,
useTitleFromFrontmatter: true,
useFolderLinkFromIndexFile: true,
useFolderTitleFromIndexFile: true,
sortMenusByFrontmatterOrder: true,
},
]),
sidebar: {
...generateSidebar([
{
documentRootPath: '/docs/',
scanStartPath: 'overview',
resolvePath: '/overview/',
capitalizeFirst: false,
useTitleFromFrontmatter: true,
useFolderLinkFromIndexFile: true,
useFolderTitleFromIndexFile: true,
sortMenusByFrontmatterOrder: true,
},
{
documentRootPath: '/docs/',
scanStartPath: 'getting-started',
resolvePath: '/getting-started/',
capitalizeFirst: false,
useTitleFromFrontmatter: true,
useFolderLinkFromIndexFile: true,
useFolderTitleFromIndexFile: true,
sortMenusByFrontmatterOrder: true,
},
{
documentRootPath: '/docs/',
scanStartPath: 'platform',
resolvePath: '/platform/',
capitalizeFirst: false,
useTitleFromFrontmatter: true,
useFolderLinkFromIndexFile: true,
useFolderTitleFromIndexFile: true,
sortMenusByFrontmatterOrder: true,
},
{
documentRootPath: '/docs/',
scanStartPath: 'compute',
resolvePath: '/compute/',
capitalizeFirst: false,
useTitleFromFrontmatter: true,
useFolderLinkFromIndexFile: true,
useFolderTitleFromIndexFile: true,
sortMenusByFrontmatterOrder: true,
},
{
documentRootPath: '/docs/',
scanStartPath: 'openstack',
resolvePath: '/openstack/',
capitalizeFirst: false,
useTitleFromFrontmatter: true,
useFolderLinkFromIndexFile: true,
useFolderTitleFromIndexFile: true,
sortMenusByFrontmatterOrder: true,
},
{
documentRootPath: '/docs/',
scanStartPath: 'networking',
resolvePath: '/networking/',
capitalizeFirst: false,
useTitleFromFrontmatter: true,
useFolderLinkFromIndexFile: true,
useFolderTitleFromIndexFile: true,
sortMenusByFrontmatterOrder: true,
},
{
documentRootPath: '/docs/',
scanStartPath: 'management',
resolvePath: '/management/',
capitalizeFirst: false,
useTitleFromFrontmatter: true,
useFolderLinkFromIndexFile: true,
useFolderTitleFromIndexFile: true,
sortMenusByFrontmatterOrder: true,
},
{
documentRootPath: '/docs/',
scanStartPath: 'community',
resolvePath: '/community/',
capitalizeFirst: false,
useTitleFromFrontmatter: true,
useFolderLinkFromIndexFile: true,
useFolderTitleFromIndexFile: true,
sortMenusByFrontmatterOrder: true,
},
]),
...storageSidebar(),
...observabilitySidebar(),
},

socialLinks: [
{ icon: 'github', link: 'https://github.com/cobaltcore-dev' }
Expand Down
6 changes: 3 additions & 3 deletions docs/getting-started/full-deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,9 @@ Follow the [Minimal Environment](/getting-started/minimal) guide first to unders

### Observability layer

- [ ] Prysm deployed and collecting events - see [Observability - Prysm](/storage/observability/prysm)
- [ ] Prometheus scraping all targets - see [Observability - Prometheus](/storage/observability/prometheus)
- [ ] Perses dashboards deployed - see [Observability - Perses](/storage/observability/perses)
- [ ] Prysm deployed and collecting events - see [Observability - Prysm](/observability/prysm)
- [ ] Prometheus scraping all targets - see [Observability - Prometheus](/observability/prometheus)
- [ ] Perses dashboards deployed - see [Observability - Perses](/observability/perses)
- [ ] Alerting rules configured and routing verified

### Management layer
Expand Down
2 changes: 1 addition & 1 deletion docs/management/greenhouse.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ Greenhouse aggregates operational views from multiple tools - Prometheus, Perses

- [Greenhouse documentation](https://cloudoperators.github.io/greenhouse/)
- [Greenhouse GitHub](https://github.com/cloudoperators/greenhouse)
- [Observability](/storage/observability/) - Prometheus and Perses, which Greenhouse surfaces
- [Observability](/observability/) - Prometheus and Perses, which Greenhouse surfaces
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
title: Observability & Audit
order: 80
title: Overview
order: 1
outline: deep
---

# Observability & Audit
# Observability

CobaltCore's observability stack provides real-time visibility into every layer - compute, storage, networking, and OpenStack services. It combines Prometheus for metrics, Perses for dashboards, and Prysm for storage-specific monitoring and audit.

Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -63,4 +63,4 @@ Prysm supports three output modes:
## See also

- [Observability - Prometheus](./prometheus)
- [Storage - Ceph](../ceph)
- [Storage - Ceph](/storage/ceph)
6 changes: 3 additions & 3 deletions docs/overview/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ The infrastructure data plane - the raw execution environment for virtual machin

## Observability

Cross-cutting. [Prysm](/storage/observability/prysm) collects audit and operational
events. [Prometheus](/storage/observability/prometheus) scrapes metrics from all
layers. [Perses](/storage/observability/perses) provides dashboards.
Cross-cutting. [Prysm](/observability/prysm) collects audit and operational
events. [Prometheus](/observability/prometheus) scrapes metrics from all
layers. [Perses](/observability/perses) provides dashboards.

## OpenStack

Expand Down
2 changes: 1 addition & 1 deletion docs/overview/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,4 @@ CobaltCore is for teams that:
- **[Architecture](/overview/architecture)** - understand how the layers fit together
- **[Why CobaltCore](/overview/why)** - the reasoning behind the design decisions
- **[Showroom](/showroom/)** - live examples and demos of CobaltCore in action
- Layer sections (**Platform**, **Compute**, **OpenStack**, **Storage**, **Networking**, **Management**) - deep-dive reference for each part of the stack. Storage includes the observability documentation.
- Layer sections (**Platform**, **Compute**, **OpenStack**, **Storage**, **Networking**, **Observability**, **Management**) - deep-dive reference for each part of the stack.
10 changes: 4 additions & 6 deletions docs/storage/index.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
---
title: Storage
title: Overview
order: 1
outline: deep
---

# Storage
# Storage Overview

CobaltCore's cloud storage layer is built on [Ceph](./ceph.md), a distributed storage system that delivers object, block, and file storage in a single unified platform. The surrounding components handle lifecycle automation, data replication, high-availability quorum, observability, and quota and usage metering - each with a focused responsibility.

## Architecture

The storage stack is organized into three layers, with observability providing
cross-cutting metrics, dashboards, alerting, and audit across them:
The storage stack is organized into three layers. See [Observability & Audit](/observability/) for metrics, dashboards, and alerting across the stack.

**Foundation** - Ceph provides the core distributed storage engine. All other components either operate it, extend it, or observe it.

Expand All @@ -28,7 +27,6 @@ cross-cutting metrics, dashboards, alerting, and audit across them:
| [Arbiter](./arbiter.md) | Operations | External Ceph monitors for quorum in stretched clusters |
| [Chorus](./chorus.md) | Data Services | Zero-downtime object storage replication and migration |
| [Liquid-Ceph](./liquid-ceph.md) | Data Services | Limes integration for RGW quota, capacity, and usage metering |
| [Observability & Audit](./observability/) | Cross-cutting | Metrics, dashboards, alerting, and audit - Prometheus, Perses, Prysm |

## Storage Interfaces

Expand Down Expand Up @@ -75,4 +73,4 @@ Ceph achieves HA through monitor quorum (typically 3 or 5 monitors), OSD replica

- [Ceph Upstream Architecture Docs](https://docs.ceph.com/en/latest/architecture/)
- [Rook Documentation](https://rook.io/docs/rook/latest-release/Getting-Started/intro/)
- [Observability & Audit](./observability/) - Prometheus metrics, Perses dashboards, and Prysm CLI for the storage stack
- [Observability & Audit](/observability/) - Prometheus metrics, Perses dashboards, and Prysm CLI for the storage stack
Loading