Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release/2024.2.0 #71

Merged
merged 29 commits into from
Sep 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
ca70267
nautible/issues#157
ogis-yamanaka Jun 11, 2024
bae50ba
nautible/issues#157
ogis-yamanaka Jun 11, 2024
879039c
nautible/issues#157
ogis-yamanaka Jun 12, 2024
1c2fcc6
Merge pull request #67 from nautible/feature/upgrade_db
SaitoMunenori Jun 12, 2024
01e2e8e
未使用output削除
ogis-yamanaka Sep 6, 2024
53e776e
pod-identity対応
ogis-yamanaka Sep 6, 2024
7a48660
未使用output削除
ogis-yamanaka Sep 6, 2024
06715d3
albcのsgはoutputに残す
ogis-yamanaka Sep 6, 2024
550ab1b
ドキュメント更新
ogis-yamanaka Sep 9, 2024
7ae2a47
Merge pull request #69 from nautible/feature/podidentity
SaitoMunenori Sep 11, 2024
cee857c
initの構成見直し
ogis-yamanaka Sep 12, 2024
032ebd3
initのgitignoreを分離(azureとあわせる)
ogis-yamanaka Sep 12, 2024
fb7d730
ap-northeast-1bを除外
ogis-yamanaka Sep 12, 2024
08b886f
変数名変更
ogis-yamanaka Sep 12, 2024
4d8179d
リファクタリング
ogis-yamanaka Sep 12, 2024
51d2d63
いったん戻す
ogis-yamanaka Sep 17, 2024
0cc5dff
add exclude_names
ogis-yamanaka Sep 17, 2024
a93e77c
depends_onを明示
ogis-yamanaka Sep 17, 2024
070c613
platformのバックエンドの指定はデフォルトで自身のバケット、リージョンを利用
ogis-yamanaka Sep 17, 2024
2d4d942
platformのバックエンドの指定はデフォルトで自身のバケット、リージョンを利用
ogis-yamanaka Sep 17, 2024
49d9d16
コメントアウトでdefaultを残す
ogis-yamanaka Sep 17, 2024
ff6c403
backupのリファクタリング
ogis-yamanaka Sep 17, 2024
5dd3bad
ドキュメント更新
ogis-yamanaka Sep 17, 2024
6302846
ドキュメント修正
ogis-yamanaka Sep 17, 2024
b793fc3
ドキュメント修正
ogis-yamanaka Sep 17, 2024
7cf11d1
ドキュメント修正
ogis-yamanaka Sep 17, 2024
0d119db
ドキュメント修正
ogis-yamanaka Sep 17, 2024
23ece8b
comment
ogis-yamanaka Sep 17, 2024
31072d7
Merge pull request #70 from nautible/feature/issues160
SaitoMunenori Sep 17, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
**/.terraform
**/.terraform.lock.hcl

16 changes: 7 additions & 9 deletions aws/app-examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,14 @@ app-examples

AWS-S3
└─nautible-dev-app-examples-tf-ap-northeast-1 ・・・Terraformを管理するためのS3バケット。バージョニング有効。
└─nautible-dev-app-examples.tfstate ・・・Terraformのtfstate
└─{プロジェクト名}-{環境名}-tf-{リージョン} ・・・Terraformを管理するためのS3バケット。バージョニング有効。
└─nautible-dev-app-examples.tfstate ・・・Terraformのtfstate

※プロジェクト名、環境名、リージョンはinit実行時に指定

AWS-Dynamodb
└─nautible-dev-app-examples-tfstate-lock ・・・teffaromのtfstateのlockテーブル
└─nautible-dev-tfstate-lock ・・・teffaromのtfstateのlockテーブル
```

※各module配下のファイルは記載を割愛
Expand All @@ -54,14 +56,10 @@ AWS-Dynamodb
### 環境構築手順

* AWSの接続プロファイルを環境変数に設定する「export AWS_PROFILE=profile_name」
* tfstate管理用のS3バケットの作成(管理者が一度だけ実行。Terraformで作成するのはアンチパターンですが、nautibleを簡単に試せるようにするため用意しています)
* app-examples/modules/initのmain.tfとvariables.tfをファイル内のコメントを参考に用途にあわせて修正
* app-examples/modules/initディレクトリで「terraform init」の実行
* app-examples/modules/initディレクトリで「terraform plan」の実行と内容の確認
* app-examples/modules/initディレクトリで「terraform apply」の実行
* AWS環境の構築
* app-examples/env/devのmain.tfとvariables.tfをファイル内のコメントを参考に用途にあわせて修正
* app-examples/env/devディレクトリで「terraform init」の実行
* app-examples/env/devディレクトリで「terraform init -backend-config="bucket=<initで作成したバケット名>"」の実行
* initの作成については[platformの構築手順](../platform/README.md)を参照
* app-examples/env/devディレクトリで「terraform plan」の実行と内容の確認
* app-examples/env/devディレクトリで「terraform apply」の実行

Expand Down
5 changes: 2 additions & 3 deletions aws/app-examples/env/dev/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,17 @@ provider "aws" {
terraform {
# fix folloing value
backend "s3" {
bucket = "nautible-dev-app-examples-tf-ap-northeast-1"
region = "ap-northeast-1"
key = "nautible-dev-app-examples.tfstate"
encrypt = true
# if you don't need to dynamodb tfstate lock, comment out this line.
dynamodb_table = "nautible-dev-app-examples-tfstate-lock"
dynamodb_table = "nautible-dev-tfstate-lock"
}

required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 4.8.0"
version = "~> 5.66.0"
}
}
}
Expand Down
59 changes: 0 additions & 59 deletions aws/app-examples/modules/init/main.tf

This file was deleted.

14 changes: 0 additions & 14 deletions aws/app-examples/modules/init/variables.tf

This file was deleted.

20 changes: 9 additions & 11 deletions aws/app-ms/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,19 @@ app-ms
├─order ・・・注文のリソースのmodule
├─stock ・・・在庫のリソースのmodule
├─stockbatch ・・・在庫(バッチ)のリソースのmodule
├─init ・・・このTerraformリソース全体の初期化用のmodule。tfstate管理のS3バケット作成など。
├─payment ・・・決済のリソースのmodule
└─customer ・・・顧客のリソースのmodule

AWS-S3
└─nautible-dev-app-ms-tf-ap-northeast-1 ・・・Terraformを管理するためのS3バケット。バージョニング有効。
│ nautible-dev-app-ms.tfstate ・・・Terraformのtfstate
└─{プロジェクト名}-{環境名}-tf-{リージョン} ・・・Terraformを管理するためのS3バケット。バージョニング有効。
└─nautible-dev-app-ms.tfstate ・・・Terraformのtfstate

※プロジェクト名、環境名、リージョンはinit実行時に指定

AWS-Dynamodb
└─nautible-dev-app-ms-tfstate-lock
・・・teffaromのtfstateのlockテーブル
└─nautible-dev-tfstate-lock ・・・teffaromのtfstateのlockテーブル
```

※各module配下のファイルは記載を割愛
Expand All @@ -60,14 +61,11 @@ AWS-Dynamodb
### 環境構築手順

* AWSの接続プロファイルを環境変数に設定する「export AWS_PROFILE=profile_name」
* tfstate管理用のS3バケットの作成(管理者が一度だけ実行。Terraformで作成するのはアンチパターンですが、nautibleを簡単に試せるようにするため用意しています)
* app-ms/modules/initのmain.tfとvariables.tfをファイル内のコメントを参考に用途にあわせて修正
* app-ms/modules/initディレクトリで「terraform init」の実行
* app-ms/modules/initディレクトリで「terraform plan」の実行と内容の確認
* app-ms/modules/initディレクトリで「terraform apply」の実行
* AWS環境の構築
* app-ms/env/devのmain.tfとvariables.tfをファイル内のコメントを参考に用途にあわせて修正
* app-ms/env/devディレクトリで「terraform init」の実行
* projectはvariables.tfでdefaultを指定しない場合、planおよびapply実行時に入力が促されます
* app-examples/env/devディレクトリで「terraform init -backend-config="bucket=<initで作成したバケット名>"」の実行
* initの作成については[platformの構築手順](../platform/README.md)を参照
* app-ms/env/devディレクトリで「terraform plan」の実行と内容の確認
* app-ms/env/devディレクトリで「terraform apply」の実行

Expand Down
21 changes: 12 additions & 9 deletions aws/app-ms/env/dev/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,17 @@ provider "aws" {
terraform {
# fix folloing value
backend "s3" {
bucket = "nautible-dev-app-ms-tf-ap-northeast-1"
region = "ap-northeast-1"
key = "nautible-dev-app-ms.tfstate"
encrypt = true
# if you don't need to dynamodb tfstate lock, comment out this line.
dynamodb_table = "nautible-dev-app-ms-tfstate-lock"
dynamodb_table = "nautible-dev-tfstate-lock"
}

required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.30.0"
version = "~> 5.66.0"
}
}
}
Expand All @@ -29,7 +28,8 @@ locals {

module "nautible_aws_app" {
source = "../../"
pjname = var.pjname
project = var.project
environment = var.environment
region = var.region
platform_pjname = data.terraform_remote_state.nautible_aws_platform.outputs.pjname
vpc = {
Expand All @@ -39,15 +39,18 @@ module "nautible_aws_app" {
private_zone_id = data.terraform_remote_state.nautible_aws_platform.outputs.route53.private_zone_id
private_zone_name = data.terraform_remote_state.nautible_aws_platform.outputs.route53.private_zone_name
}
eks = local.target_eks
order = var.order
eks = local.target_eks
order = var.order
product = var.product
}

data "terraform_remote_state" "nautible_aws_platform" {
backend = "s3"
config = {
bucket = var.platform_tfstate.bucket
region = var.platform_tfstate.region
key = var.platform_tfstate.key
# デフォルトではplatformと同じバケットを使用しているので、自身のバケット、リージョンを指定する
# 異なるバックエンドを利用する場合は個別に指定してください
bucket = local.backend_config.backend.config.bucket
region = local.backend_config.backend.config.region
key = var.platform_tfstate
}
}
107 changes: 88 additions & 19 deletions aws/app-ms/env/dev/variables.tf
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
# Project name
variable "pjname" {
default = "nautible-app-dev"
variable "project" {
description = "プロジェクト名称 ex) nautible"
}

variable "environment" {
description = "環境名定義"
default = "dev"
}

# AWS region
variable "region" {
default = "ap-northeast-1"
Expand All @@ -10,19 +16,11 @@ variable "region" {
# platform tfstate
variable "platform_tfstate" {
description = "platform tfstate設定"
type = object({
bucket = string
region = string
key = string
})
default = {
# platform tfstate bucket
bucket = "nautible-dev-platform-tf-ap-northeast-1"
# platform tfstate region
region = "ap-northeast-1"
# platform tfstate key
key = "nautible-dev-platform.tfstate"
}
default = "nautible-dev-platform.tfstate"
}

locals {
backend_config = jsondecode(file(".terraform/terraform.tfstate"))
}

# EKS
Expand All @@ -36,7 +34,6 @@ variable "eks" {
}
}


# ORDER
variable "order" {
description = "ORDER設定"
Expand All @@ -52,13 +49,85 @@ variable "order" {
# elasticache
elasticache = {
# engine version
engine_version = "6.x"
engine_version = "7.1"
# node type
node_type = "cache.t2.micro"
node_type = "cache.t4g.micro"
# parameter group name
parameter_group_name = "default.redis6.x"
parameter_group_name = "default.redis7"
# port
port = 6379
}
}
}

# Product
variable "product" {
description = "商品DB用RDS設定"
type = object({
mysql = object({
engine_version = string
instance_class = string
option_group_name = string
storage_type = string
allocated_storage = number
parameter_group = object({
family = string
parameters = list(object({
name = string
value = string
}))
})
})
})
default = {
mysql = {
engine_version = "8.0.36"
instance_class = "db.t3.micro"
option_group_name = "default:mysql-8-0"
storage_type = "gp2"
allocated_storage = 5
parameter_group = {
family = "mysql8.0"
parameters = [
{
name = "character_set_client"
value = "utf8mb4"
},
{
name = "character_set_connection"
value = "utf8mb4"
},
{
name = "character_set_database"
value = "utf8mb4"
},
{
name = "character_set_filesystem"
value = "utf8mb4"
},
{
name = "character_set_results"
value = "utf8mb4"
},
{
name = "character_set_server"
value = "utf8mb4"
},
{
name = "collation_connection"
value = "utf8mb4_general_ci"
},
{
name = "collation_server"
value = "utf8mb4_general_ci"
},
{
name = "time_zone"
value = "Asia/Tokyo"
}
]
}
}
}
}

Loading