Skip to content

Commit

Permalink
Update README.md (#22)
Browse files Browse the repository at this point in the history
* Update README.md

* Update README.md
  • Loading branch information
VladyslavKurmaz authored Jul 31, 2023
1 parent 6b8a914 commit ae7e570
Showing 1 changed file with 46 additions and 13 deletions.
59 changes: 46 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,63 @@
# Description
Cloud agnostic, enterprise grade, bulletproof, battle tested IaC skeleton for SaaS solutions.
Cloud agnostic IaC based SaaS skeleton.
![Infrastructure Instance](ii.png)

## Features
Framework:
* supports AWS, Azure, GCP, Digitalocean provider
* provides Multi-tenancy feature via layers architecture
* implements nested configurations for Infrastructure Instance and Environments
Framework
* supports AWS, DO (Azure, GCP - in progress)
* provides Multi-tenancy feature via layers architecture (provider, network, managed, appl, tenant)
* implements easy-to-construct multiple environment approach (single env var)
* is based on IaC (Terraform)
* includes support of multiple backend providers - Local, Cloud, Remote, PG, S3
* supports of multiple backend providers - Local, Cloud (PG, S3 - in progress)

## Quick start
* Install [tln](https://www.npmjs.com/package/tln-cli)
* Goto **projects** and clone repository
* Goto **projects** folder from tln-cli installation above and clone repository
```
git clone [email protected]:project-talan/tln-clouds.git
git clone --depth 1 --branch v23.7.0 [email protected]:project-talan/tln-clouds.git
```
* Use **.env.template** files as an examples and fill it with actual values (create .env file at repository root level and inside every provider: do, aws, azure, gcp folders)
* NOTE. Commands below assume that Terraform Cloud is used as a storage for states
* Commands below will guide you to configure k8s infrastructure usign DO. By replacing <do> with <aws> you can have AWS based infrastructure
* Use **.env.template** file as an examples and fill it with actual values
* root .env
```
TF_VAR_org_id=project-talan
TF_VAR_project_id=tln-clouds
TF_VAR_env_id=dev
#TF_VAR_tenant_id=
TF_TOKEN_app_terraform_io=<your_token>
```
* do/.env
```
DIGITALOCEAN_TOKEN=<your_token>
TF_VAR_do_region=nyc3
TF_VAR_do_k8s_version=1.27.4-do.0
TF_VAR_do_k8s_nodes_min=1
TF_VAR_do_k8s_nodes_max=2
TF_VAR_do_k8s_nodes_size=s-2vcpu-2gb
```
* aws/.env
```
AWS_ACCESS_KEY_ID=<your_token>
AWS_SECRET_ACCESS_KEY=<your_token>
AWS_SESSION_TOKEN=
AWS_DEFAULT_REGION=eu-central-1
TF_VAR_aws_k8s_version=1.27
TF_VAR_aws_k8s_nodes_min=1
TF_VAR_aws_k8s_nodes_desired=2
TF_VAR_aws_k8s_nodes_max=3
TF_VAR_aws_k8s_nodes_size=t3a.medium
TF_VAR_aws_k8s_nodes_disk=50
```
* NOTE. Commands below assume that Terraform Cloud is used as a storage for states
* Next commands will guide you to configure k8s infrastructure usign DO. By replacing **do** with **aws** you can have AWS based infrastructure
* Install dependencies
```
tln install do --depends
```
* Construct DO Dev infrastructure i
* Construct DO Dev infrastructure instance
```
tln construct do -- --backend cloud --init --plan --apply
```
Expand All @@ -49,5 +82,5 @@ Framework:
```
* Deconstruct DO Dev infrastructure instance
```
tln deconstruct do -- --backend cloud --init --plan --apply
tln deconstruct do -- --backend cloud --plan --apply
```

0 comments on commit ae7e570

Please sign in to comment.