4825ad1495
- Added terraform-mcp - Added S3 storage to gitea - Changed context size for windows LLMs - Changed number of cores for VMs, added P2000 support
215 lines
4.9 KiB
Terraform
215 lines
4.9 KiB
Terraform
resource "scaleway_object_bucket" "infra_assets" {
|
|
name = "a13labs-infra-${var.bucket_suffix}"
|
|
project_id = var.scaleway_project_id
|
|
region = "fr-par"
|
|
}
|
|
|
|
resource "scaleway_object_bucket_policy" "policy" {
|
|
bucket = scaleway_object_bucket.infra_assets.name
|
|
policy = jsonencode({
|
|
Version = "2023-04-17",
|
|
Id = "AllowMachineDownload",
|
|
Statement = [
|
|
{
|
|
Effect = "Allow"
|
|
Action = [
|
|
"s3:ListBucket",
|
|
"s3:GetObject",
|
|
]
|
|
Principal = "*"
|
|
Resource = [
|
|
scaleway_object_bucket.infra_assets.name,
|
|
"${scaleway_object_bucket.infra_assets.name}/*",
|
|
]
|
|
Condition = {
|
|
IpAddress = {
|
|
"aws:SourceIp" = local.instance_ips
|
|
}
|
|
},
|
|
},
|
|
{
|
|
Effect = "Allow"
|
|
Action = [
|
|
"s3:*",
|
|
]
|
|
Principal = {
|
|
SCW = "user_id:${var.scaleway_user_id}"
|
|
}
|
|
Resource = [
|
|
scaleway_object_bucket.infra_assets.name,
|
|
"${scaleway_object_bucket.infra_assets.name}/*",
|
|
]
|
|
},
|
|
]
|
|
})
|
|
}
|
|
|
|
resource "random_string" "bucket_suffix" {
|
|
length = 8
|
|
lower = true
|
|
upper = false
|
|
special = false
|
|
}
|
|
|
|
resource "scaleway_object_bucket" "backup" {
|
|
name = "a13labs-backup-${random_string.bucket_suffix.result}"
|
|
project_id = var.scaleway_project_id
|
|
region = "fr-par"
|
|
|
|
lifecycle_rule {
|
|
id = "gitea-clean"
|
|
prefix = "gitea-backup/"
|
|
enabled = true
|
|
|
|
expiration {
|
|
days = local.cloud_backup_retention_days
|
|
}
|
|
}
|
|
|
|
lifecycle_rule {
|
|
id = "mail-clean"
|
|
prefix = "mail-backup/"
|
|
enabled = true
|
|
|
|
expiration {
|
|
days = local.cloud_backup_retention_days
|
|
}
|
|
}
|
|
}
|
|
|
|
resource "scaleway_object_bucket_policy" "backup" {
|
|
bucket = scaleway_object_bucket.backup.name
|
|
policy = jsonencode({
|
|
Version = "2023-04-17",
|
|
Id = "AllowAccess",
|
|
Statement = [
|
|
{
|
|
Effect = "Allow"
|
|
Action = [
|
|
"s3:*",
|
|
]
|
|
Principal = {
|
|
SCW = "user_id:${var.scaleway_user_id}"
|
|
}
|
|
Resource = [
|
|
scaleway_object_bucket.backup.name,
|
|
"${scaleway_object_bucket.backup.name}/*",
|
|
]
|
|
},
|
|
{
|
|
Effect = "Allow"
|
|
Action = [
|
|
"s3:*",
|
|
]
|
|
Principal = {
|
|
SCW = "application_id:${scaleway_iam_application.backup_app.id}"
|
|
}
|
|
Resource = [
|
|
scaleway_object_bucket.backup.name,
|
|
"${scaleway_object_bucket.backup.name}/*",
|
|
],
|
|
Condition = {
|
|
IpAddress = {
|
|
"aws:SourceIp" = local.instance_ips
|
|
}
|
|
},
|
|
},
|
|
]
|
|
})
|
|
}
|
|
|
|
resource "scaleway_object_bucket" "sftpgo" {
|
|
name = "a13labs-sftpgo-${random_string.bucket_suffix.result}"
|
|
project_id = var.scaleway_project_id
|
|
region = "fr-par"
|
|
}
|
|
|
|
resource "scaleway_object_bucket_policy" "sftpgo" {
|
|
bucket = scaleway_object_bucket.sftpgo.name
|
|
policy = jsonencode({
|
|
Version = "2023-04-17",
|
|
Id = "AllowAccess",
|
|
Statement = [
|
|
{
|
|
Effect = "Allow"
|
|
Action = [
|
|
"s3:*",
|
|
]
|
|
Principal = {
|
|
SCW = "user_id:${var.scaleway_user_id}"
|
|
}
|
|
Resource = [
|
|
scaleway_object_bucket.sftpgo.name,
|
|
"${scaleway_object_bucket.sftpgo.name}/*",
|
|
]
|
|
},
|
|
{
|
|
Effect = "Allow"
|
|
Action = [
|
|
"s3:*",
|
|
]
|
|
Principal = {
|
|
SCW = "application_id:${scaleway_iam_application.sftpgo_app.id}"
|
|
}
|
|
Resource = [
|
|
scaleway_object_bucket.sftpgo.name,
|
|
"${scaleway_object_bucket.sftpgo.name}/*",
|
|
],
|
|
Condition = {
|
|
IpAddress = {
|
|
"aws:SourceIp" = local.instance_ips
|
|
}
|
|
},
|
|
},
|
|
]
|
|
})
|
|
}
|
|
|
|
resource "scaleway_object_bucket" "gitea" {
|
|
name = "a13labs-gitea-packages-${random_string.bucket_suffix.result}"
|
|
project_id = var.scaleway_project_id
|
|
region = "fr-par"
|
|
}
|
|
|
|
resource "scaleway_object_bucket_policy" "gitea" {
|
|
bucket = scaleway_object_bucket.gitea.name
|
|
policy = jsonencode({
|
|
Version = "2023-04-17",
|
|
Id = "AllowAccess",
|
|
Statement = [
|
|
{
|
|
Effect = "Allow"
|
|
Action = [
|
|
"s3:*",
|
|
]
|
|
Principal = {
|
|
SCW = "user_id:${var.scaleway_user_id}"
|
|
}
|
|
Resource = [
|
|
scaleway_object_bucket.gitea.name,
|
|
"${scaleway_object_bucket.gitea.name}/*",
|
|
]
|
|
},
|
|
{
|
|
Effect = "Allow"
|
|
Action = [
|
|
"s3:*",
|
|
]
|
|
Principal = {
|
|
SCW = "application_id:${scaleway_iam_application.gitea_app.id}"
|
|
}
|
|
Resource = [
|
|
scaleway_object_bucket.gitea.name,
|
|
"${scaleway_object_bucket.gitea.name}/*",
|
|
],
|
|
Condition = {
|
|
IpAddress = {
|
|
"aws:SourceIp" = local.instance_ips
|
|
}
|
|
},
|
|
},
|
|
]
|
|
})
|
|
}
|
|
|