diff --git a/docs/architecture.md b/docs/architecture.md index 0adabd4..002435c 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -1,9 +1,12 @@ # Architecture +## Project 2A System Architecture -Below is a diagram that provides an overview of how Project 2A works. +The following diagram provides a simplified architectural overview to help you visualize the flow of the key components: -## Architectural Overview +![2A architecture](assets/architecture.png){.architecture-light-mode} + +## Component Relationship Overview ```mermaid --- diff --git a/docs/assets/architecture.png b/docs/assets/architecture.png new file mode 100644 index 0000000..d6687f8 Binary files /dev/null and b/docs/assets/architecture.png differ diff --git a/docs/assets/architecture_dark.png b/docs/assets/architecture_dark.png new file mode 100644 index 0000000..747da81 Binary files /dev/null and b/docs/assets/architecture_dark.png differ diff --git a/docs/assets/architecture_light.png b/docs/assets/architecture_light.png new file mode 100644 index 0000000..c917fe5 Binary files /dev/null and b/docs/assets/architecture_light.png differ diff --git a/docs/quick-start/2a-installation.md b/docs/quick-start/2a-installation.md index 9dbc827..b91846f 100644 --- a/docs/quick-start/2a-installation.md +++ b/docs/quick-start/2a-installation.md @@ -1,38 +1,17 @@ -### Requirements - -Project 2A requires a Kubernetes cluster. It can be of any type and will become -the 2A _management cluster_. - -If you don't have a Kubernetes cluster yet, consider using -[k0s](https://docs.k0sproject.io/stable/install/). - -The following instructions assume: - -- Your `kubeconfig` points to the correct Kubernetes cluster. -- You have [Helm](https://helm.sh/docs/intro/install/) installed. -- You have [kubectl](https://kubernetes.io/docs/tasks/tools/) installed. - -#### Helpful Tools - -It may be helpful to have the following tools installed: - -- [clusterctl](https://cluster-api.sigs.k8s.io/user/quick-start.html?highlight=clusterctl#install-clusterctl) -- [Mirantis Lens](https://k8slens.dev/) -- [k9s](https://k9scli.io/) +## Quick Start ### Installation via Helm - +To begin the installation, use Helm to deploy 2A from the specified OCI registry: ```bash helm install hmc oci://ghcr.io/mirantis/hmc/charts/hmc --version 0.0.3 -n hmc-system --create-namespace ``` +> If you want to adjust the configuration, please check the [installation guide](../usage/installation.md). ### Verification -The installation takes a couple of minutes until 2A and its subcomponents are -fully installed and configured. +The installation process takes a few minutes to fully complete, as 2A and its subcomponents are installed and configured. -Verify the installation by checking all the pods in the `hmc-system` namespace -with the following command: +To verify that all components are up and running, check the status of the pods within the `hmc-system` namespace. Run the following command: ```bash kubectl get pods -n hmc-system @@ -61,8 +40,7 @@ source-controller-5f648d6f5d-7mhz5 1/1 Running If you have fewer pods, give 2A more time to reconcile all the pods. -As a second verification, check that the example `ClusterTemplate` objects have -been installed and are valid: +As a second verification, check that the example `ClusterTemplate` objects have been installed and are valid: ```bash kubectl get clustertemplate -n hmc-system @@ -90,8 +68,7 @@ vsphere-standalone-cp-0-0-2 true ### Next Step -Now you can configure your Infrastructure Provider of choice and create your -first Managed Cluster. +Now you can configure your Infrastructure Provider of choice and create your first Managed Cluster. Jump to any of the following Infrastructure Providers for specific instructions: diff --git a/docs/quick-start/prerequisites.md b/docs/quick-start/prerequisites.md new file mode 100644 index 0000000..7e013b1 --- /dev/null +++ b/docs/quick-start/prerequisites.md @@ -0,0 +1,38 @@ +## Requirements + +Project 2A requires a Kubernetes cluster. It can be of any type and will serve as the 2A _management cluster_. + +If you don't yet have a Kubernetes cluster, consider using [k0s](https://docs.k0sproject.io/stable/install/). + +The following instructions assume: + +- Your `kubeconfig` points to the correct Kubernetes cluster. +- You have [Helm](https://helm.sh/docs/intro/install/) installed. +- You have [kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl) installed. + +### Prerequisites + +Before starting, make sure to meet the following prerequisites for compatibility with Project 2A components: + +1. Kubernetes Version: + - The minimum supported Kubernetes version for Project 2A is 1.28.0. + - Using an older version (e.g., v1.26.2) will cause issues with some components, such as Flux, which require at least v1.28.0. + - For best results, confirm your cluster is running Kubernetes v1.28.0 or later. + +2. Cert-Manager Configuration: + + When installing the Helm chart, note that cert-manager will be installed automatically. + - If cert-manager already exists in your cluster, the installation may fail due to conflicting metadata labels and annotations. + To prevent this, ensure the existing cert-manager resources have the necessary metadata labels and annotations: + - Labels: app.kubernetes.io/managed-by set to "Helm" + - Annotations: + - meta.helm.sh/release-name set to "hmc" + - meta.helm.sh/release-namespace set to "hmc-system" + - Adjusting this metadata should allow for compatibility with the installation. + +### Helpful Tools + +It is helpful to have the following tools installed: + +- [clusterctl](https://cluster-api.sigs.k8s.io/user/quick-start.html?highlight=clusterctl#install-clusterctl) is the CLI for talking to ClusterAPI directly. +- [Mirantis Lens](https://k8slens.dev/) or [k9s](https://k9scli.io/) can be used for simplified management of Kubernetes objects. \ No newline at end of file diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index 0e155ce..b9e074a 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -41,3 +41,13 @@ .md-typeset h3 { font-weight: 200; } + +/* Image for Light Mode */ +img.architecture-light-mode { + content: url('../assets/architecture_light.png'); +} + +/* Image for Dark Mode */ +[data-md-color-scheme="slate"] img.architecture-light-mode { + content: url('../assets/architecture_dark.png'); +} \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index bacd9af..4525d29 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -49,6 +49,7 @@ extra_css: plugins: - search - mermaid2 + - glightbox #extra: # generator: false @@ -56,6 +57,7 @@ plugins: # Page tree markdown_extensions: + - attr_list - callouts - tables - pymdownx.details @@ -70,6 +72,7 @@ markdown_extensions: nav: - Home: index.md - Quick Start: + - Prerequisites: quick-start/prerequisites.md - 2A Installation: quick-start/2a-installation.md - AWS: quick-start/aws.md - Azure: quick-start/azure.md