add object storage and change README
This commit is contained in:
parent
a96de3678b
commit
6a745086bd
2 changed files with 133 additions and 0 deletions
25
07-object-storage.tf
Normal file
25
07-object-storage.tf
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
resource "stackit_objectstorage_bucket" "example" {
|
||||
project_id = module.project.project_info["project2"].project_id
|
||||
name = "project-core-testbucket"
|
||||
}
|
||||
|
||||
resource "stackit_objectstorage_credentials_group" "example" {
|
||||
project_id = module.project.project_info["project2"].project_id
|
||||
name = "example-credentials-group"
|
||||
}
|
||||
|
||||
resource "stackit_objectstorage_credential" "example" {
|
||||
project_id = module.project.project_info["project2"].project_id
|
||||
credentials_group_id = stackit_objectstorage_credentials_group.example.credentials_group_id
|
||||
expiration_timestamp = "2027-01-02T03:04:05Z"
|
||||
}
|
||||
|
||||
// Output the credentials for the object storage
|
||||
output "credentials" {
|
||||
value = {
|
||||
"access_key" = stackit_objectstorage_credential.example.access_key
|
||||
"credential_id" = stackit_objectstorage_credential.example.credential_id
|
||||
"secret_access_key" = stackit_objectstorage_credential.example.secret_access_key
|
||||
}
|
||||
sensitive = true
|
||||
}
|
||||
108
README.md
108
README.md
|
|
@ -0,0 +1,108 @@
|
|||
# π Infrastructure Deployment: Landing Zone, Core, and Commvault
|
||||
|
||||
This repository contains Terraform code to deploy the following infrastructure projects:
|
||||
|
||||
---
|
||||
|
||||
## π¦ Projects Overview
|
||||
|
||||
### 1. **Landing Zone**
|
||||
- Deploys a single **pfSense VM** as the central firewall/router.
|
||||
- Acts as the entry point for the environment.
|
||||
- Configures **WAN and multiple LAN networks**:
|
||||
- `wan_network`: `10.220.0.0/24`
|
||||
- `lan_network1`: `10.220.1.0/24`
|
||||
- `lan_network2`: `10.220.2.0/24`
|
||||
- `lan_network3`: `10.220.3.0/24` (non-routed)
|
||||
- Interfaces:
|
||||
- WAN interface with static IP `10.220.0.254`
|
||||
- LAN1β3 interfaces, each connected to corresponding networks
|
||||
|
||||
### 2. **Core**
|
||||
- Deploys a single **Virtual Machine** (VM) for core services or testing purposes.
|
||||
- Network setup includes:
|
||||
- `p2_lan_network`: `10.220.5.0/24` (routed)
|
||||
- `p2_wan_network`: `10.220.6.0/24` (routed)
|
||||
- Interfaces:
|
||||
- LAN interface with attached security group
|
||||
- WAN interface without additional security
|
||||
|
||||
### 3. **Commvault**
|
||||
- Deploys a managed **SKE (STACKIT Kubernetes Engine)** cluster.
|
||||
- Used for backup and disaster recovery scenarios via Commvault.
|
||||
|
||||
### 4. **Object Store**
|
||||
- Creates an **Object Storage Bucket**.
|
||||
- Relevant **access credentials** are provisioned for use with Commvault or other services.
|
||||
|
||||
---
|
||||
|
||||
## π Getting Started
|
||||
|
||||
### Prerequisites
|
||||
- Terraform β₯ 1.3
|
||||
- Valid STACKIT credentials
|
||||
- Access to STACKIT APIs (IaaS, Kubernetes, Object Storage)
|
||||
|
||||
### Deployment Steps
|
||||
|
||||
1. Clone this repository:
|
||||
```bash
|
||||
git clone https://professional-service.git.onstackit.cloud/professional-service-best-practices/landingzone.git
|
||||
cd <repo-name>
|
||||
```
|
||||
|
||||
2. Initialize Terraform:
|
||||
```bash
|
||||
terraform init
|
||||
```
|
||||
|
||||
3. Review and adjust variables if needed:
|
||||
```bash
|
||||
terraform.tfvars
|
||||
```
|
||||
|
||||
4. Plan and apply the configuration:
|
||||
```bash
|
||||
terraform apply
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## π Output
|
||||
|
||||
The deployment will output:
|
||||
- VM IP addresses
|
||||
- Kubernetes cluster information (kubeconfig)
|
||||
- Object Storage credentials (access/secret key)
|
||||
|
||||
> π Make sure to store credentials securely and **never commit them** to version control.
|
||||
|
||||
---
|
||||
|
||||
## π Notes
|
||||
|
||||
- This setup is optimized for a **test or POC environment**.
|
||||
- pfSense must be manually configured after deployment.
|
||||
- Kubernetes workloads (e.g. Commvault agents) are not included in this deployment but can be added later.
|
||||
- LVM striping (RAID0) can be used for temporary IOPS/performance improvement β but **requires attention to backups**.
|
||||
|
||||
---
|
||||
|
||||
## β οΈ Limitations
|
||||
|
||||
- The infrastructure is not auto-scaled or HA-enabled by default.
|
||||
- Commvault is assumed to be managed **externally** or installed manually.
|
||||
- No automated DNS or certificate management is configured.
|
||||
- `lan_network3` is non-routed and might require manual routing adjustments if used.
|
||||
|
||||
---
|
||||
|
||||
## π¬ Support
|
||||
|
||||
For issues, please create a Ticket or contact professional-service@stackit.cloud
|
||||
|
||||
---
|
||||
|
||||
**Author**: Michael Sodan
|
||||
**License**: MIT
|
||||
Loadingβ¦
Reference in a new issue