Releases: devopscorner/golang-deployment
v4.1
Golang Deployment
Kubernetes Deployment for Simple Golang API
Available Tags
Alpine
Alpine (Depreciated)
Image name | Size |
---|---|
devopscorner/bookstore:go1.18-alpine3.15 |
|
devopscorner/bookstore:go1.18-alpine3.16 |
Changelog GO App
version 4.1
- All features in version 4.0
- Refactoring routes for endpoint login into LoginController (validate JSON Token & rendering result token)
- Refactoring folder
Repository Pattern
with View for rendering JSON parse response and Const for error response. ├── .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
- Added Const definition
config/const.go
--> Internationalization (i18n)ERR_INVALID_BOOK_ID = "Invalid book ID" ERR_INVALID_REQUEST_PAYLOAD = "Invalid request payload" ERR_INVALID_CREDENTIALS = "Invalid credentials" ERR_BOOK_NOT_FOUND = "Book not found!" ERR_UPDATE_BOOK = "Failed to update book" ERR_DELETE_BOOK = "Failed to delete book"
- Added Amazon CodeCatalyst workflow CI/CD in
.codecatalyst
folder - Refactoring middleware routes
- Added unit test Postman collection
version 4.0
-
All features in version 3.5
-
Refactoring folder
Repository Pattern
with multiple driver ORM. ├── config │ ├── config.go │ └── config_test.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 8 directories, 23 files
-
Refactoring default environment variable
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
-
Added multi driver database connection via ORM
DB_CONNECTION=sqlite --- Available for: - sqlite - mysql - postgres - dynamo
-
DynamoDB Connection
DB_CONNECTION=dynamo --- DB_DATABASE --> Dynamo Table DB_REGION --> Dynamo Region
v4.0
Golang Deployment
Kubernetes Deployment for Simple Golang API
Available Tags
Alpine
Alpine (Depreciated)
Image name | Size |
---|---|
devopscorner/bookstore:go1.18-alpine3.15 |
|
devopscorner/bookstore:go1.18-alpine3.16 |
Changelog GO App
version 4.0
-
All features in version 3.5
-
Refactoring folder
Repository Pattern
with multiple driver ORM. ├── config │ ├── config.go │ └── config_test.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 8 directories, 23 files
-
Refactoring default environment variable
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
-
Added multi driver database connection via ORM
DB_CONNECTION=sqlite --- Available for: - sqlite - mysql - postgres - dynamo
-
DynamoDB Connection
DB_CONNECTION=dynamo --- DB_DATABASE --> Dynamo Table DB_REGION --> Dynamo Region
version 3.5
- All features in version 3.4
- Refactoring all folders for MVC Repository Pattern
. ├── config │ ├── config.go │ └── config_test.go ├── controller │ ├── book_controller.go │ ├── book_controller_test.go │ ├── login_controller.go │ └── login_controller_test.go ├── driver │ └── 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 ├── model │ └── book.go ├── repository │ └── book_repository.go └── routes └── book_routes.go 7 directories, 18 files
- Added JWT Token for security authentification as Middleware
- Added Unit Test for Contoller, Repository & Main
- Added Default Environment Variables:
PORT=8080 DBNAME=go-bookstore.db GIN_MODE=release AUTH_USERNAME=devopscorner AUTH_PASSWORD=DevOpsCorner@2023 JWT_SECRET=s3cr3t
- Update Postman Collection for Automation Testing
- Setup .env to default entrypoint
- Added environment variable for docker-compose.yml
v3.5
Golang Deployment
Kubernetes Deployment for Simple Golang API
Available Tags
Alpine
Alpine (Depreciated)
Image name | Size |
---|---|
devopscorner/bookstore:go1.18-alpine3.15 |
|
devopscorner/bookstore:go1.18-alpine3.16 |
Changelog GO App
version 3.5
- All features in version 3.4
- Refactoring all folders for MVC Repository Pattern
. ├── config │ ├── config.go │ └── config_test.go ├── controller │ ├── book_controller.go │ ├── book_controller_test.go │ ├── login_controller.go │ └── login_controller_test.go ├── driver │ └── 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 ├── model │ └── book.go ├── repository │ └── book_repository.go └── routes └── book_routes.go 7 directories, 18 files
- Added JWT Token for security authentification as Middleware
- Added Unit Test for Contoller, Repository & Main
- Added Default Environment Variables:
PORT=8080 DBNAME=go-bookstore.db GIN_MODE=release AUTH_USERNAME=devopscorner AUTH_PASSWORD=DevOpsCorner@2023 JWT_SECRET=s3cr3t
- Update Postman Collection for Automation Testing
- Setup .env to default entrypoint
- Added environment variable for docker-compose.yml
version 3.4
- All features in version 3.3
- Added Terraform script:
- GitHub, AWS CodeBuild, AWS CodePipeline & Amazon SNS
- AWS CodeCommit, AWS CodeBuild, AWS CodePipeline & Amazon SNS
- Added CloudFormation script:
- GitHub, AWS CodeBuild, AWS CodePipeline & Amazon SNS
- AWS CodeCommit, AWS CodeBuild, AWS CodePipeline & Amazon SNS
version 3.3
- All features in version 3.2
- Deployment for CI/CD Pipeline:
- ArgoCD, detail here link
- AWS Developer Tools (AWS CodeCommit, AWS CodeBuild & AWS CodePipeline), detail here link
- Azure DevOps Pipeline, detail here link
- Bitbucket Pipeline, detail here link
- CircleCI Pipeline, detail here link
- DroneCI Pipeline, detail here link
- GitHub Action, detail here link
- GitLab CI/CD, detail here link
- Jenkins CI & Spinnaker CD, detail here link
- Jenkins CI/CD, detail here link
- OpenShift CI/CD, detail here link
- SemaphoreCI, detail here link
- Spinnaker CD, detail here link
- Terraform AWS CodeBuild, AWS CodePipeline & Amazon SNS, detail here link
- TravisCI, detail here link
v3.4
Golang Deployment
Kubernetes Deployment for Simple Golang API
Available Tags
Alpine
Alpine (Depreciated)
Image name | Size |
---|---|
devopscorner/bookstore:go1.18-alpine3.15 |
|
devopscorner/bookstore:go1.18-alpine3.16 |
Changelog GO App
version 3.4
- All features in version 3.3
- Added Terraform script:
- GitHub, AWS CodeBuild, AWS CodePipeline & Amazon SNS
- AWS CodeCommit, AWS CodeBuild, AWS CodePipeline & Amazon SNS
- Added CloudFormation script:
- GitHub, AWS CodeBuild, AWS CodePipeline & Amazon SNS
- AWS CodeCommit, AWS CodeBuild, AWS CodePipeline & Amazon SNS
version 3.3
- All features in version 3.2
- Deployment for CI/CD Pipeline:
- ArgoCD, detail here link
- AWS Developer Tools (AWS CodeCommit, AWS CodeBuild & AWS CodePipeline), detail here link
- Azure DevOps Pipeline, detail here link
- Bitbucket Pipeline, detail here link
- CircleCI Pipeline, detail here link
- DroneCI Pipeline, detail here link
- GitHub Action, detail here link
- GitLab CI/CD, detail here link
- Jenkins CI & Spinnaker CD, detail here link
- Jenkins CI/CD, detail here link
- OpenShift CI/CD, detail here link
- SemaphoreCI, detail here link
- Spinnaker CD, detail here link
- Terraform AWS CodeBuild, AWS CodePipeline & Amazon SNS, detail here link
- TravisCI, detail here link
v3.3
Golang Deployment
Kubernetes Deployment for Simple Golang API
Available Tags
Alpine
Alpine (Depreciated)
Image name | Size |
---|---|
devopscorner/bookstore:go1.18-alpine3.15 |
|
devopscorner/bookstore:go1.18-alpine3.16 |
Changelog GO App
version 3.3
- All features in version 3.2
- Deployment for CI/CD Pipeline:
- ArgoCD, detail here link
- AWS Developer Tools (AWS CodeCommit, AWS CodeBuild & AWS CodePipeline), detail here link
- Azure DevOps Pipeline, detail here link
- Bitbucket Pipeline, detail here link
- CircleCI Pipeline, detail here link
- DroneCI Pipeline, detail here link
- GitHub Action, detail here link
- GitLab CI/CD, detail here link
- Jenkins CI & Spinnaker CD, detail here link
- Jenkins CI/CD, detail here link
- OpenShift CI/CD, detail here link
- SemaphoreCI, detail here link
- Spinnaker CD, detail here link
- Terraform AWS CodeBuild, AWS CodePipeline & Amazon SNS, detail here link
- TravisCI, detail here link
version 3.2
- All features in version 3.1
- Added sample script CI/CD Pipeline with semantic version (semver) docker build images
- AWS CodePipeline (
cicd-aws-codepipeline.yml
) - Azure DevOps (
cicd-azure-devops.yml
) - Bitbucket (
cicd-bitbucket.yml
) - GitHub Action (
cicd-github.yml
) - GitLab (
cicd-gitlab.yml
) - Jenkins CI/CD (
cicd-jenkins.jenkinsfile
)
- AWS CodePipeline (
v3.2
Golang Deployment
Kubernetes Deployment for Simple Golang API
Available Tags
Alpine
Alpine (Depreciated)
Image name | Size |
---|---|
devopscorner/bookstore:go1.18-alpine3.15 |
|
devopscorner/bookstore:go1.18-alpine3.16 |
Changelog GO App
version 3.2
- All features in version 3.1
- Added sample script CI/CD Pipeline with semantic version (semver) docker build images
- AWS CodePipeline (
cicd-aws-codepipeline.yml
) - Azure DevOps (
cicd-azure-devops.yml
) - Bitbucket (
cicd-bitbucket.yml
) - GitHub Action (
cicd-github.yml
) - GitLab (
cicd-gitlab.yml
) - Jenkins CI/CD (
cicd-jenkins.jenkinsfile
)
- AWS CodePipeline (
version 3.1
- All features in version 3.0
- Upgrade golang version 1.19.5
- Update
Dockerfile.alpine-3.15
for using golang version 1.19.3 for alpine-3.15 (golang:1.19.3-alpine3.15
) - Update
Dockerfile.alpine-3.16
for using golang version 1.19.5 for alpine-3.16 (golang:1.19.5-alpine3.16
) - Added
Dockerfile.alpine-3.17
for using golang version 1.19.5 for alpine-3.17 (golang:1.19.5-alpine3.17
) - Upgrade dependencies golang
go.mod
&go.sum
- Refactoring pattern source code (moving) to path "src"
- Refactoring CI/CD pipeline with spesific grouping folder
- AWS CodePipeline (
.aws
) - Azure DevOps (
.azure-devops
) - Bitbucket (
.bitbucket
) - GitHub (
.github
) - GitLab (
.gitlab
) - Jenkins (
.jenkins
) CI/CD with Spinnaker CD
- AWS CodePipeline (
- Refactoring build, tag, push & pull script for DockerHub
- Refactoring build, tag, push & pull script for ECR
- Refactoring
makefile
script automation for build, tag, push & pull
v3.1
Golang Deployment
Kubernetes Deployment for Simple Golang API
Available Tags
Alpine
Alpine (Depreciated)
Image name | Size |
---|---|
devopscorner/bookstore:go1.18-alpine3.15 |
|
devopscorner/bookstore:go1.18-alpine3.16 |
Changelog GO App
version 3.1
- All features in version 3.0
- Upgrade golang version 1.19.5
- Update
Dockerfile.alpine-3.15
for using golang version 1.19.3 for alpine-3.15 (golang:1.19.3-alpine3.15
) - Update
Dockerfile.alpine-3.16
for using golang version 1.19.5 for alpine-3.16 (golang:1.19.5-alpine3.16
) - Added
Dockerfile.alpine-3.17
for using golang version 1.19.5 for alpine-3.17 (golang:1.19.5-alpine3.17
) - Upgrade dependencies golang
go.mod
&go.sum
- Refactoring pattern source code (moving) to path "src"
- Refactoring CI/CD pipeline with spesific grouping folder
- AWS CodePipeline (
.aws
) - Azure DevOps (
.azure-devops
) - Bitbucket (
.bitbucket
) - GitHub (
.github
) - GitLab (
.gitlab
) - Jenkins (
.jenkins
) CI/CD with Spinnaker CD
- AWS CodePipeline (
- Refactoring build, tag, push & pull script for DockerHub
- Refactoring build, tag, push & pull script for ECR
- Refactoring
makefile
script automation for build, tag, push & pull
version 3.0
- Upgrade golang version 1.19
- Update Dockerfile for using golang version 1.19 (
golang:1.19.2-alpine3.15
&golang:1.19.2-alpine3.16
) - Added docker-compose configuration & running script docker-compose
- Upgrade dependencies golang
go.mod
&go.sum
- Refactoring source code (moving) dependencies to
devopscorner/golang-deployment
- Update
gorm
model & sqlite connection driver
v3.0
Golang Deployment
Kubernetes Deployment for Simple Golang API
Features - v3.0
- Upgrade golang version 1.19
- Update Dockerfile for using golang version 1.19 (
golang:1.19.2-alpine3.15
&golang:1.19.2-alpine3.16
) - Added docker-compose configuration & running script docker-compose
- Upgrade dependencies golang
go.mod
&go.sum
- Refactoring source code (moving) dependencies to
devopscorner/golang-deployment
- Update
gorm
model & sqlite connection driver
Features - v2.3
- All features in version 2.2
- Refactoring path & references docs
Features - v2.2
- All features in version 2.1
- Add multiple container registry (DockerHub & ECR) deployment
- Update Golang version 1.18 for Alpine 3.15 & Alpine 3.16 container
- Refactoring makefile for added multiple container registry
- Add documentation for build, tag & push container image to DockerHub, go to this link
- Add documentation for build, tag & push container to Amazon ECR (Elastic Container Registry), go to this link
v2.3
v2.2
Golang Deployment
Kubernetes Deployment for Simple Golang API
Features - v2.2
- All features in version 2.1
- Add multiple container registry (DockerHub & ECR) deployment
- Update Golang version 1.18 for Alpine 3.15 & Alpine 3.16 container
- Refactoring makefile for added multiple container registry
- Add documentation for build, tag & push container image to DockerHub, go to this link
- Add documentation for build, tag & push container to Amazon ECR (Elastic Container Registry), go to this link
Features - v2.1
- Add Configuration Pipeline Synchronize for Mirroring Repository into AWS CodeCommit
- GitOps Flow
- GitOps DevSecOps Flow