Kubernetes Deployment for Simple Golang API (Bookstore) --- Mirror Repository from GitHub, GitLab, BitBucket, Azure DevOps to AWS CodeCommit --- GO Repository Pattern
APACHE-2.0 License
Kubernetes Deployment for Simple Golang API
Folder Structure
.
├── .env
├── .env.example
├── config
│ ├── config.go
│ ├── config_test.go
│ └── const.go
├── controller
│ ├── book_controller.go
│ ├── book_controller_test.go
│ ├── login_controller.go
│ └── login_controller_test.go
├── driver
│ ├── db.go
│ ├── dynamo.go
│ ├── mysql.go
│ ├── psql.go
│ └── sqlite.go
├── go-bookstore.db
├── go.mod
├── go.sum
├── main.go
├── main_test.go
├── middleware
│ ├── auth_middleware.go
│ └── auth_middleware_test.go
├── migrate_book.go.example
├── migrate_book_dynamo.go.example
├── model
│ └── book.go
├── repository
│ └── book_repository.go
├── routes
│ └── book_routes.go
└── view
├── book_view.go
├── error_view.go
└── login_view.go
9 directories, 29 files
Environment Variables (Default)
GIN_MODE=release
APP_URL=http://localhost
APP_PORT=8080
DB_CONNECTION=sqlite
DB_REGION=ap-southeast-1
DB_HOST=localhost
DB_PORT=
DB_DATABASE=go-bookstore.db
DB_USERNAME=root
DB_PASSWORD=
JWT_AUTH_USERNAME=devopscorner
JWT_AUTH_PASSWORD=DevOpsCorner@2023
JWT_SECRET=s3cr3t
Multi Driver Connection
DB_CONNECTION=sqlite
---
Available for:
- sqlite
- mysql
- postgres
- dynamo
DynamoDB Connection
DB_CONNECTION=dynamo
---
DB_DATABASE --> Dynamo Table
DB_REGION --> Dynamo Region
Docker version
docker version
Client:
Cloud integration: v1.0.22
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: true
Docker-Compose version
docker-compose -v
---
Docker Compose version v2.11.1
AWS Cli
aws --version
---
aws-cli/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
Golang Version Manager (GVM)
gvm version
---
Go Version Manager v1.0.22 installed at /Users/devopscorner/.gvm
Golang Version
go version
---
go version go1.19.6 darwin/arm64
Make sure that you didn't push sensitive information in this repository