From 2bf6a8dce7fb8b62e1a9458a9bf1899e058e5ad6 Mon Sep 17 00:00:00 2001 From: Mauritz Uphoff <39736813+h3adex@users.noreply.github.com> Date: Wed, 13 Nov 2024 09:26:50 +0100 Subject: [PATCH] Docs: add docs to use aws s3 provider for stackit s3 (#583) * docs: add docs to use aws s3 provider for stackit s3 * review changes * fix indent --- docs/guides/aws_provider_s3_stackit.md | 91 +++++++++++++++++++ .../guides/aws_provider_s3_stackit.md.tmpl | 91 +++++++++++++++++++ 2 files changed, 182 insertions(+) create mode 100644 docs/guides/aws_provider_s3_stackit.md create mode 100644 templates/guides/aws_provider_s3_stackit.md.tmpl diff --git a/docs/guides/aws_provider_s3_stackit.md b/docs/guides/aws_provider_s3_stackit.md new file mode 100644 index 00000000..d8a39f4d --- /dev/null +++ b/docs/guides/aws_provider_s3_stackit.md @@ -0,0 +1,91 @@ +--- +page_title: "Using AWS Provider for STACKIT Object Storage (S3 compatible)" +--- +# Using AWS Provider for STACKIT Object Storage (S3 compatible) + +## Overview + +This guide outlines the process of utilizing the [AWS Terraform Provider](https://registry.terraform.io/providers/hashicorp/aws/latest/docs) alongside the STACKIT provider to create and manage STACKIT Object Storage (S3 compatible) ressources. + +## Steps + +1. **Configure STACKIT Provider** + + First, configure the STACKIT provider to connect to the STACKIT services. + + ```hcl + provider "stackit" { + region = "eu01" + } + ``` + +2. **Define STACKIT Object Storage Bucket** + + Create a STACKIT Object Storage Bucket and obtain credentials for the AWS provider. + + ```hcl + resource "stackit_objectstorage_bucket" "example" { + project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + name = "example" + } + + resource "stackit_objectstorage_credentials_group" "example" { + project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + name = "example-credentials-group" + } + + resource "stackit_objectstorage_credential" "example" { + project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + credentials_group_id = stackit_objectstorage_credentials_group.example.credentials_group_id + expiration_timestamp = "2027-01-02T03:04:05Z" + } + ``` + +3. **Configure AWS Provider** + + Configure the AWS Provider to connect to the STACKIT Object Storage bucket. + + ```hcl + provider "aws" { + region = "eu01" + skip_credentials_validation = true + skip_region_validation = true + skip_requesting_account_id = true + + access_key = stackit_objectstorage_credential.example.access_key + secret_key = stackit_objectstorage_credential.example.secret_access_key + + endpoints { + s3 = "https://object.storage.eu01.onstackit.cloud" + } + } + ``` + +4. **Use the provider to manage objects or policies** + + ```hcl + resource "aws_s3_object" "test_file" { + bucket = stackit_objectstorage_bucket.example.name + key = "hello_world.txt" + source = "files/hello_world.txt" + content_type = "text/plain" + etag = filemd5("files/hello_world.txt") + } + + resource "aws_s3_bucket_policy" "allow_public_read_access" { + bucket = stackit_objectstorage_bucket.test20.name + policy = <