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
25 changes: 25 additions & 0 deletions docs/architecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Architecture

## Summary

A detailed view of decentralized control plane outlining major functions is provided below:

![Components](/components.png)

The DCP performs three functions:

- Application management - responsible for local and global application management making sure that application is running in the current zone
- Mesh management - responsible for peer state synchronisation across clusters making sure that application state is synchronised
- Optimal decision making - responsible for optimal execution of workload and decision making

The optimization/decision part is extensible and multiple factors can be taken into account. At the moment the placement controller considers only the classical request/limits for applications pods.

## Details

Detailed documentation regarding each component is available via Deep Wiki:

AnyApplication Controller [DeepWiki](https://deepwiki.com/HIRO-MicroDataCenters-BV/anyapplication-controller)

Placement Controller [DeepWiki](https://deepwiki.com/HIRO-MicroDataCenters-BV/placement-controller)

Mesh Controller [DeepWiki](https://deepwiki.com/HIRO-MicroDataCenters-BV/mesh-controller)
4 changes: 2 additions & 2 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Decentralised Control Plane for Containerised Applications

# Overview
## Overview

Decentralized Control Plane for kubernetes applications enables application deployment into a mesh of disjoint kubernetes clusters with intelligent orchestration that considers various optimization criteria - such as application energy consumption, dynamic energy prices, data security zones etc.

Expand All @@ -12,7 +12,7 @@ Each DCP zone is an autonomous peer that replicates entire state and its updates

The intelligent orchestration enables zone-local decisions taking into account global state in all zones. The orchestration system is extensible with a variety of decision making algorithms.

# Features
## Features

- Application orchestration in a mesh of disjoint kubernetes clusters
- Optimal application placement decision and continuous decision review
Expand Down
Binary file added docs/public/components.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
44 changes: 44 additions & 0 deletions docs/usage/installation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Installation

## **Dependencies**

Requirements:

- Kubernetes cluster ≥ 1.32
- Cilium or Calico networking with BGP peering (or exposing services externally via LoadBalancers)

## Install Guide

1. Generate multi cluster configuration using script [here](https://github.com/HIRO-MicroDataCenters-BV/anyapplication-controller/tree/main/config/generator)

2. Execute install scripts for all clusters

TBD

## Application Deployment

The application is deployed via Kubernetes Resource where the application is referenced by its helm chart.

```json
---
apiVersion: dcp.hiro.io/v1
kind: AnyApplication
metadata:
name: my-app
namespace: default
spec:
source:
helm:
repository: https://helm.app.com/stable
chart: my-app
version: 1.0.0
namespace: default
values: |-
# values overrides
zones: 1
placementStrategy:
strategy: Global
recoverStrategy:
tolerance: 1
maxRetries: 3
```
Loading