Add minio to terraform
This commit is contained in:
		
							parent
							
								
									4264017641
								
							
						
					
					
						commit
						37a304d161
					
				
					 9 changed files with 130 additions and 0 deletions
				
			
		
							
								
								
									
										56
									
								
								modules/services/minio.tf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								modules/services/minio.tf
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,56 @@
 | 
			
		|||
# Create a user first
 | 
			
		||||
resource "minio_iam_user" "service_users" {
 | 
			
		||||
  for_each = local.services_s3
 | 
			
		||||
  name = each.key
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
resource "minio_accesskey" "service_access_keys" {
 | 
			
		||||
  for_each = local.services_s3
 | 
			
		||||
  user = minio_iam_user.service_users[each.key].name
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
resource "minio_s3_bucket" "service_buckets" {
 | 
			
		||||
  for_each = local.buckets_s3
 | 
			
		||||
  bucket = replace("${each.key}.serguzim.me", "_", "-")
 | 
			
		||||
  lifecycle {
 | 
			
		||||
    prevent_destroy = true
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
resource "minio_iam_policy" "service_bucket_policies" {
 | 
			
		||||
  for_each = local.buckets_s3
 | 
			
		||||
  name     = each.key
 | 
			
		||||
  policy   = jsonencode({
 | 
			
		||||
    Version = "2012-10-17",
 | 
			
		||||
    Statement = [
 | 
			
		||||
      {
 | 
			
		||||
        Sid = "${each.key} statement"
 | 
			
		||||
        Effect = "Allow",
 | 
			
		||||
        Action = ["s3:*"],
 | 
			
		||||
        Principal = "*",
 | 
			
		||||
        Resource = "${minio_s3_bucket.service_buckets[each.key].arn}/*"
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
resource "minio_iam_user_policy_attachment" "service_bucket_policy_attachments" {
 | 
			
		||||
  for_each    = local.buckets_s3
 | 
			
		||||
  user_name   = minio_iam_user.service_users[each.value].id
 | 
			
		||||
  policy_name = minio_iam_policy.service_bucket_policies[each.key].id
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//resource "minio_iam_service_account" "service_accounts" {
 | 
			
		||||
//  for_each = minio_iam_user.service_users
 | 
			
		||||
//  target_user = each.value.name
 | 
			
		||||
//  policy = jsonencode({
 | 
			
		||||
//    Version = "2012-10-17",
 | 
			
		||||
//    Statement = [{
 | 
			
		||||
//      Action = [
 | 
			
		||||
//        "s3:*",
 | 
			
		||||
//      ],
 | 
			
		||||
//      "Effect": "Allow",
 | 
			
		||||
//      "Resource": []
 | 
			
		||||
//    }]
 | 
			
		||||
//  })
 | 
			
		||||
//}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue