Skip to content

Commit

Permalink
Merge pull request #23 from ksctl/feat-add-versioning-based-docs
Browse files Browse the repository at this point in the history
proposal: added versioning
  • Loading branch information
dipankardas011 authored Jul 12, 2024
2 parents 01763cf + 39275d5 commit c387563
Show file tree
Hide file tree
Showing 63 changed files with 1,120 additions and 3 deletions.
2 changes: 1 addition & 1 deletion content/en/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ title: Ksctl Docs
<a class="btn btn-lg btn-primary me-3 mb-4" href="docs/">
Learn More <i class="fas fa-arrow-alt-circle-right ms-2"></i>
</a>
<a class="btn btn-lg btn-secondary me-3 mb-4" href="docs/getting-started/">
<a class="btn btn-lg btn-secondary me-3 mb-4" href="docs/stable/getting-started/">
Getting Started <i class="fab fa-github ms-2 "></i>
</a>

Expand Down
2 changes: 1 addition & 1 deletion content/en/docs/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ weight: 20
---

{{% pageinfo %}}
This section is where the user documentation for your project lives
This is the `main` branch documentation
{{% /pageinfo %}}
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
10 changes: 10 additions & 0 deletions content/en/docs/develop/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
title: Develop Documentation
linkTitle: Develop
description: develop branch documentation
weight: 20
---

{{% pageinfo %}}
This is the `main` branch documentation
{{% /pageinfo %}}
File renamed without changes.
9 changes: 9 additions & 0 deletions content/en/docs/stable/Cloud Providers/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: Cloud Provider
weight: 4
description: >
Info about the cloud providers available
---
{{% pageinfo %}}
This Page includes more info about different cloud providers
{{% /pageinfo %}}
15 changes: 15 additions & 0 deletions content/en/docs/stable/Cloud Providers/aws.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
title: Amazon Web Services
description: >
Amazon Web Services
categories: [Cloud Provider]
tags: [aws, ha, managed, core]
---
{{% pageinfo %}}
Aws support for HA and Managed Clusters
{{% /pageinfo %}}

Support for aws provider is added.
Supported functionality
- [ ] Managed EKS
- [x] Self-managed HA cluster with k3s and kubeadm
143 changes: 143 additions & 0 deletions content/en/docs/stable/Cloud Providers/azure.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
---
title: Azure
description: >
Azure Cloud Provider
categories: [Cloud Provider]
tags: [azure, ha, managed, core]
---

{{% pageinfo %}}
Azure support for HA and Managed Clusters
{{% /pageinfo %}}


{{% alert color="warning" title="Caution" %}}
we need credentials to access clusters

these are confidential information so shouldn't be shared with anyone
{{% /alert %}}


### Azure Subscription ID

subscription id using your subscription

![azure-subscription](/img/azure/azure-subs-id.png)


### Azure Tenant ID

#### Azure Dashboard

Azure Dashboard contains all the credentials required


![azure-dashboard](/img/azure/azure-dashboard.png)

lets get the tenant id from the Azure

![](/img/azure/azure-tenantid.png)



### Azure Client ID

it represents the id of app created


![](/img/azure/azure-app-reg.png)

![](/img/azure/azure-create-app-reg.png)

![](/img/azure/azure-clientid.png)



### Azure Client Secret

it represents the secret associated with the app in order to use it

![create app secret](/img/azure/azure-client-secret1.png)


![after-click](/img/azure/azure-client-secret.png)


![copy-secret](/img/azure/azure-client-secret2.png)

### Assign Role to your app

head over to subscriptions page and click **Access Control (IAM)**
select the **Role Assignment** and then click **Add > Add Role Assignment**
create a new role and when selecting the identity specify the name of the app
Here you can customize the role this app has

![role-assign-app](/img/azure/azure-role-app.png)


## How these credentials are used by ksctl


1. Environment Variables

```bash
export AZURE_TENANT_ID=""
export AZURE_SUBSCRIPTION_ID=""
export AZURE_CLIENT_ID=""
export AZURE_CLIENT_SECRET=""
```

2. Using command line

```bash
ksctl cred
```

## Current Features

### Cluster features
#### Highly Available cluster
clusters which are managed by the user not by cloud provider

using K3s kubernetes distribution which is lightweight

custom components being used
- Etcd database VM
- HAProxy loadbalancer VM for controlplane nodes
- controlplane VMs
- workerplane VMs

#### Managed Cluster
clusters which are managed by the cloud provider

### Other capabilities

#### Create, Update, Delete, Switch

{{% alert title="Update the cluster infrastructure" %}}

**Managed cluster**: till now it's not supported

**HA cluster**
- addition and deletion of new workerplane node
- SSH access to each cluster node (DB, LB, Controplane, WorkerPlane) _Public Access_, secured by private key

{{% /alert %}}

{{% alert color="success" title="Managed Cluster" %}}

<video width="360" height="202" controls>
<source src="/videos/ksctl-azure-managed.mp4" type="video/mp4" />
Your browser does not support the video tag.
</video>
{{% /alert %}}


{{% alert color="success" title="Highly Available Cluster" %}}

<video width="360" height="202" controls>
<source src="/videos/ksctl-azure-ha.mp4" type="video/mp4" />
Your browser does not support the video tag.
</video>
{{% /alert %}}

90 changes: 90 additions & 0 deletions content/en/docs/stable/Cloud Providers/civo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
---
title: Civo
description: >
Civo Cloud Provider
categories: [Cloud Provider]
tags: [civo, ha, managed, core]
---

{{% pageinfo %}}
Civo support for HA and Managed Clusters
{{% /pageinfo %}}

{{% alert color="warning" title="Caution" %}}
we need credentials to access clusters

these are confidential information so shouldn't be shared with anyone
{{% /alert %}}


## Getting credentials

### under settings look for the profile
![](/img/civo/civo-settings.png)
![](/img/civo/profile.png)

### copy the credentials
![](/img/civo/security-api.png)

## How to add credentials to ksctl

1. Environment Variables

```bash
export CIVO_TOKEN=""
```

2. Using command line

```bash
ksctl cred
```

## Current Features

### Cluster features
#### Highly Available cluster
clusters which are managed by the user not by cloud provider

> using K3s kubernetes distribution which is lightweight
custom components being used
- Etcd database VM
- HAProxy loadbalancer instance for controlplane nodes
- controlplane instances
- workerplane instances

#### Managed Cluster
clusters which are managed by the cloud provider

### Other capabilities

#### Create, Update, Delete, Switch

{{% alert title="Update the cluster infrastructure" %}}

**Managed cluster**: till now it's not supported

**HA cluster**
- addition and deletion of new workerplane node
- SSH access to each cluster node (DB, LB, Controplane) _Public Access_, secured by private key
- SSH access to each workplane _Private Access_ via local network, secured by private key
{{% /alert %}}

{{% alert color="success" title="Managed Cluster" %}}

<video width="360" height="202" controls>
<source src="/videos/ksctl-civo-managed.mp4" type="video/mp4" />
Your browser does not support the video tag.
</video>
{{% /alert %}}


{{% alert color="success" title="Highly Available Cluster" %}}

<video width="360" height="202" controls>
<source src="/videos/ksctl-civo-ha.mp4" type="video/mp4" />
Your browser does not support the video tag.
</video>
{{% /alert %}}

17 changes: 17 additions & 0 deletions content/en/docs/stable/Cloud Providers/gcp.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
title: Google Cloud Platform
description: >
Google Cloud Platform
categories: [Cloud Provider]
tags: [aws, ha, managed, core]
---

{{% pageinfo %}}
Gcp support for HA and Managed Clusters
{{% /pageinfo %}}

{{% alert color="warning" title="Caution" %}}
we need credentials to access clusters

these are confidential information so shouldn't be shared with anyone
{{% /alert %}}
20 changes: 20 additions & 0 deletions content/en/docs/stable/Cloud Providers/local.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
title: Local
description: >
Local Provider
categories: [Cloud Provider]
tags: [docker, kind, managed,core]
---

{{% pageinfo %}}
It creates cluster on the host machine utilizing kind
{{% /pageinfo %}}

{{% alert title="Note" %}}**Prequisites**: Docker{{% /alert %}}


## Current features

currently using Kind `Kubernetes in Docker`

{{< alert color="warning" title="About HA Cluster" >}}local system are constrained to fewer CPUs and memory so no HA cluster{{< /alert >}}
43 changes: 43 additions & 0 deletions content/en/docs/stable/Concepts/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---
title: Concepts
description: >
Concepts around ksctl core
---

{{% pageinfo %}}
This section will help you to learn about the underlying system of Ksctl. It will help you to obtain a deeper understanding of how Ksctl works.
{{% /pageinfo %}}

## Sequence diagrams for 2 major operations

### Create Cloud-Managed Clusters
```mermaid
sequenceDiagram
participant cm as Manager Cluster Managed
participant cc as Cloud Controller
participant kc as Ksctl Kubernetes Controller
cm->>cc: transfers specs from user or machine
cc->>cc: to create the cloud infra (network, subnet, firewall, cluster)
cc->>cm: 'kubeconfig' and other cluster access to the state
cm->>kc: shares 'kubeconfig'
kc->>kc: installs kubectl agent, stateimporter and controllers
kc->>cm: status of creation
```

### Create Self-Managed HA clusters
```mermaid
sequenceDiagram
participant csm as Manager Cluster Self-Managed
participant cc as Cloud Controller
participant bc as Bootstrap Controller
participant kc as Ksctl Kubernetes Controller
csm->>cc: transfers specs from user or machine
cc->>cc: to create the cloud infra (network, subnet, firewall, vms)
cc->>csm: return state to be used by BootstrapController
csm->>bc: transfers infra state like ssh key, pub IPs, etc
bc->>bc: bootstrap the infra by either (k3s or kubeadm)
bc->>csm: 'kubeconfig' and other cluster access to the state
csm->>kc: shares 'kubeconfig'
kc->>kc: installs kubectl agent, stateimporter and controllers
kc->>csm: status of creation
```
10 changes: 10 additions & 0 deletions content/en/docs/stable/Concepts/ksctl cloud controller.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
title: Cloud Controller
description: >
The Component of Ksctl responsible for creating and managing clusters for different Cloud platforms.
categories: [Examples]
---

{{% pageinfo %}}
It is responsible for controlling the sequence of tasks for every cloud provider to be executed
{{% /pageinfo %}}
11 changes: 11 additions & 0 deletions content/en/docs/stable/Concepts/ksctl distro controller.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
title: Distribution Controller
description: >
The Component of Ksctl responsible for selecting the type of Bootstrap solution (Kubeadm or K3s).
categories: [Examples]
---


{{% pageinfo %}}
It is responsible for controlling the execution sequence for configuring Cloud Resources wrt to the Kubernetes distribution choosen
{{% /pageinfo %}}
Loading

0 comments on commit c387563

Please sign in to comment.