https://github.com/devopscorner/laravel-eks-deployment
Laravel Kubernetes (EKS ver-1.23) Deployment Tools with Helm
https://github.com/devopscorner/laravel-eks-deployment
alpine alpine-phpfpm aws aws-eks cicd devopscorner docker docker-compose eks eks-cluster helm helmfile kubernetes laravel laravel-framework phpfpm terraform
Last synced: 2 months ago
JSON representation
Laravel Kubernetes (EKS ver-1.23) Deployment Tools with Helm
- Host: GitHub
- URL: https://github.com/devopscorner/laravel-eks-deployment
- Owner: devopscorner
- License: apache-2.0
- Created: 2021-11-02T09:59:36.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T12:17:54.000Z (8 months ago)
- Last Synced: 2024-10-29T14:47:08.608Z (8 months ago)
- Topics: alpine, alpine-phpfpm, aws, aws-eks, cicd, devopscorner, docker, docker-compose, eks, eks-cluster, helm, helmfile, kubernetes, laravel, laravel-framework, phpfpm, terraform
- Language: HCL
- Homepage: https://devopscorner.id
- Size: 10.9 MB
- Stars: 25
- Watchers: 4
- Forks: 3
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Infra Laravel Deployment
Laravel Kubernetes (EKS) Deployment Tools










[](https://img.shields.io/github/license/devopscorner/laravel-eks-deployment)---
## Available Tags
| Containers | Pulls |
|-------------|-------|
| Container `devopscorner/phpfpm` [Tags](docs/README-PHPFpm.md) | [](https://hub.docker.com/r/devopscorner/phpfpm/) |
| Container `devopscorner/laravel` [Tags](docs/README-Laravel.md) | [](https://hub.docker.com/r/devopscorner/laravel/) |---
## Prerequirements
- [Docker](https://www.docker.com)
- [Docker-Compose](https://github.com/docker/compose/releases)
- [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html)
- [Helm](https://helm.sh)
- [Terraform](https://www.terraform.io)
- [Terraform Provider AWS](https://registry.terraform.io/providers/hashicorp/aws/latest/docs)
- [Kubectx](https://github.com/ahmetb/kubectx/releases)## Folder Structure
### **docs**
Index Documentation, see [here](docs/README.md) for detail
### **compose**
Docker Compose for Build Image, eg:
- Ubuntu (Bastion SSH)
- Nginx
- PHPFpm (Laravel App)
- _etc_### **helm**
HelmChart, Template, Helmfile Values:
- charts
- stateful
- mariadb
- mysql
- postgresql
- redis
- _etc_
- others
- fluentd
- grafana
- jenkins
- kibana
- nginx
- phpfpm
- _etc_
- helmfile
- laravel-template.yml
- laravel-values.yml
- manifest-laravel-secret.yml
- mariadb-values.yml
- templates
- api
- backend
- configmap
- frontend
- secretref
- stateful
- svcrole
- helm-pack-lab.sh
- helm-push-lab.sh### **terraform/environment**
Teraform AWS Providers, eg:
- Core
- TFState
- Resources
- Budget
- EKS
- RDS### **terraform/modules (Terraform Submodules)**
- Official Repositories
```
./get-official.sh
-- or --
make sub-official
```- Community Repositories
```
./get-community.sh
-- or --
make sub-community
```## How-to-Use
- Clone this repository
```
git clone [email protected]:devopscorner/laravel-eks-deployment.git
```- Get all Terraform modules
```
make sub-all
```- Assume Role for Terraform command
```
aws sts assume-role --role-arn arn-role-to-assume --role-session-name AWSCLI
```- Terraform Execution
```
terraform init
terraform plan
terraform apply
```- Terraform Cleanup (Remove ALL)
```
terraform destroy
---
Notes: PLEASE BEWARE TO USE THIS !!!
```## Deploy HelmChart
- Set Context to Your Environment
```
kubectl config use-context [YOUR_K8S_CONTEXT]
-- or --
kubectx [YOUR_K8S_CONTEXT]
```
- Create Namespace `larave-app`
```
kubectl create namespace laravel-app
```
- Deploy Stateful HelmChart
```
make helmchart-stateful [CHART_NAME]
---
eg:
make helmchart-stateful mariadb
```
- Deploy Others HelmChart
```
make helmchart-others [CHART_NAME]
---
eg:
make helmchart-others nginx
make helmchart-others laravel
```## Cleanup Installation HelmChart
- Set Context to Your Environment
```
kubectl config use-context [YOUR_K8S_CONTEXT]
-- or --
kubectx [YOUR_K8S_CONTEXT]
```
- Cleanup Stateful HelmChart
```
make remove-helmchart-stateful [CHART_NAME]
---
eg:
make remove-helmchart-stateful mariadb
```
- Cleanup Others HelmChart
```
make remove-helmchart-others [CHART_NAME]
---
eg:
make remove-helmchart-others nginx
make remove-helmchart-others laravel
```## Tested Environment
### Versioning
- Docker version
```
docker -v
---
Docker version 20.10.17-rd, build c2e4e01docker version
---
Client:
Version: 20.10.17-rd
API version: 1.41
Go version: go1.17.11
Git commit: c2e4e01
Built: Fri Jul 22 18:31:17 2022
OS/Arch: darwin/amd64
Context: default
Experimental: trueServer: Docker Desktop 4.14.1 (91661)
Engine:
Version: 20.10.21
API version: 1.41 (minimum version 1.12)
Go version: go9.7
Git commit: 3056208
Built: Tue Oct 25 18:00:19 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.9
GitCommit: 1c90a442489720eec95342e1789ee8a5e1b9536f
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0
```- Docker-Compose version
```
docker-compose -v
---
Docker Compose version v2.11.1
```- AWS Cli
```
aws --version
---
laravel/2.8.7 Python/3.9.11 Darwin/21.6.0 exe/x86_64 prompt/off
```- Terraform Cli
```
terraform version
---
Terraform v1.3.5
on darwin_amd64
- provider registry.terraform.io/hashicorp/aws v3.74.3
- provider registry.terraform.io/hashicorp/local v2.1.0
- provider registry.terraform.io/hashicorp/null v3.1.0
- provider registry.terraform.io/hashicorp/random v3.1.0
- provider registry.terraform.io/hashicorp/time v0.7.2
```- Terraform Environment Cli
```
tfenv -v
---
tfenv 2.2.2
```## Copyright
- Author: **Dwi Fahni Denni (@zeroc0d3)**
- License: **Apache v2**