Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add prerequisites, adjust quick start installation & add architecture diagram #38

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
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
7 changes: 5 additions & 2 deletions docs/architecture.md
Original file line number Diff line number Diff line change
@@ -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
---
Expand Down
Binary file added docs/assets/architecture.png
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you provide the source of this? so we can update it whenever needed?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In which format would you like the diagram? I can export it EPS or SVG. I've created it via Sketch. So, can be a sketch document as well.
Where is there best place to save the source?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In which format would you like the diagram? I can export it EPS or SVG. I've created it via Sketch. So, can be a sketch document as well.
yea let's upload the sketch file, so we have something that can be actually edited if needed by other people.

Where is there best place to save the source?

I would say also in the assets folder were the PNG lies

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In which format would you like the diagram? Only PNG?

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/architecture_dark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/architecture_light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
37 changes: 7 additions & 30 deletions docs/quick-start/2a-installation.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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:

Expand Down
38 changes: 38 additions & 0 deletions docs/quick-start/prerequisites.md
Original file line number Diff line number Diff line change
@@ -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.

Comment on lines +1 to +12
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure I'm a big fan of moving the requirements away from the Quickstart, this will require a first time user to go through 3 pages of documentation to have a cluster up and running (PreRequisites, General Quickstart and Infra specific Quickstart).
Could we leave the Requirements in the General Quickstart page, and reference to the additional prerequisites page?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, sure. I can pull the latest and work your feedback in.

### 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.
10 changes: 10 additions & 0 deletions docs/stylesheets/extra.css
Original file line number Diff line number Diff line change
Expand Up @@ -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');
}
3 changes: 3 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,13 +49,15 @@ extra_css:
plugins:
- search
- mermaid2
- glightbox

#extra:
# generator: false

# Page tree

markdown_extensions:
- attr_list
- callouts
- tables
- pymdownx.details
Expand All @@ -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
Expand Down