diff --git a/docs/architecture.md b/docs/architecture.md new file mode 100644 index 0000000..78550f4 --- /dev/null +++ b/docs/architecture.md @@ -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) \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index 4d51d33..2b6fe81 100644 --- a/docs/index.md +++ b/docs/index.md @@ -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. @@ -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 diff --git a/docs/public/components.png b/docs/public/components.png new file mode 100644 index 0000000..dbaec15 Binary files /dev/null and b/docs/public/components.png differ diff --git a/docs/usage/installation.md b/docs/usage/installation.md index e69de29..d604808 100644 --- a/docs/usage/installation.md +++ b/docs/usage/installation.md @@ -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 +``` \ No newline at end of file